iText z html'a do pdf'a

0

Witam, widziałem podobny temat, ale dość przedawniony, więc piszę nowy wątek

Potrzebuje przekonwertować plik .html do .pdf. Znalazłem sposób z biblioteką iText, ale mam problem z polskimi znakami, ponieważ wyświetla się tylko polskie ó. Prosiłbym o wskazówkę, ponieważ trochę czasu już na tym siedzę.

    private Paragraph parse() {
        try {
            HtmlToString();
            StringReader strReader = new StringReader("<html>śćęłó test</html>");
            StyleSheet styles=new StyleSheet();
            styles.loadTagStyle("body","font","Arial");
            ArrayList<?> p = HTMLWorker.parseToList(strReader, styles);
            BaseFont bf = BaseFont.createFont("c:/windows/fonts/arialuni.ttf",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
            Paragraph paragraph = new Paragraph("");
            for (int k = 0; k < p.size(); ++k) {
                paragraph.add(p.get(k));
            }
            return paragraph;

        } catch (DocumentException ex) {
        } catch (IOException ex) {
        }
        return null;
    }

    public void generujPDF() throws DocumentException, IOException{
        Document doc = new Document(PageSize.A4);       
        FileOutputStream out = new FileOutputStream(new File("test.pdf"));
        PdfWriter.getInstance(doc, out);
        doc.open();
        BaseFont bf = BaseFont.createFont("c:/windows/fonts/arialuni.ttf",BaseFont.IDENTITY_H,BaseFont.EMBEDDED);
        FontSelector fs = new FontSelector();
        fs.addFont(new Font(bf));
        Paragraph par = parse();    
        doc.add(par);
        doc.close();
    }         
0

Robiłem takie rzeczy korzystając z tego co darmowe (LGPL). Jest to tego świetna biblioteka: flying saucer na LGPL: http://code.google.com/p/flying-saucer/. Wykorzystuje jeszcze stare (tzn. na przyjaznej licencji LGPL, nie AGPL) oprogramowania iText. Ogólnie to integrowałem to z JEE. Polecam jeśli wystarcza Ci CSS2. Co do polskich znaków i tak będzies musiał podłączyć font, ale nie jest to takie trudne.

Działało to tak, że na wejściu podawałem strumień HTML i CSS. Na wyjściu otrzymywałem ByteArrayOutputStream z pdf. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0