Подтвердить что ты не робот

Использование iText для преобразования HTML в PDF

Кто-нибудь знает, можно ли конвертировать HTML-страницу (url) в PDF с помощью iText?

Если ответ "нет", это нормально, так как я перестану тратить время на то, чтобы попытаться его обработать и просто потратить немного денег на один из нескольких компонентов, которые, как я знаю, могут:)

Заранее благодарим за ваши ответы!

4b9b3361

Ответ 1

Я думаю, это именно то, что вы искали

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

http://code.google.com/p/flying-saucer

Основная задача Flying Saucer - отображать на XHTML и CSS 2.1 соответствующие спецификации как компонент Swing. Хотя он был первоначально предназначен для внедрения разметки в настольные приложения (например, в iTunes Music Store), Flying Saucer также расширил работу с iText. Это упрощает визуализацию XHTML для PDF файлов, а также изображений и экрана. Для Flying Saucer требуется Java 1.4 или выше.

Ответ 2

Я закончил использование ABCPdf из webSupergoo. Он работает очень хорошо, и примерно за 350 долларов он спас меня часы и часы, основываясь на ваших комментариях выше. Еще раз спасибо Daniel и Bratch за ваши комментарии.

Ответ 3

Самый простой способ сделать это - использовать pdfHTML. Это дополнение iText7, которое преобразует HTML5 (+ CSS3) в синтаксис PDF.

Код довольно прост:

    HtmlConverter.convertToPdf(
        "<b>This text should be written in bold.</b>",       // html to be converted
        new PdfWriter(
            new File("C://users/mark/documents/output.pdf")  // destination file
        )
    );

Чтобы узнать больше, перейдите к http://itextpdf.com/itext7/pdfHTML

Ответ 4

Ответ на ваш вопрос на самом деле в два раза. Прежде всего, вам нужно указать, что вы собираетесь делать с визуализированным HTML: сохранить его в новом PDF файле или использовать его в другом контексте рендеринга (т.е. Добавить его к другому документу, который вы создаете).

Первый сравнительно легко выполняется с использованием фреймворка Flying Saucer, который можно найти здесь: https://github.com/flyingsaucerproject/flyingsaucer

Последнее на самом деле представляет собой гораздо более всеобъемлющую проблему, которую необходимо классифицировать дальше. Используя iText, вы не сможете (по крайней мере, тривиально) объединить элементы iText (т.е. Paragraph, Phrase, Chunk и т.д.) Сгенерированным HTML. Вы можете избавиться от этого, используя метод ContentByte addTemplate и создав HTML для этого шаблона.

Если вы, с другой стороны, хотите штамповать сгенерированный HTML с чем-то вроде водяных знаков, дат или тому подобного, вы можете сделать это с помощью iText.

Итак, нижняя строка: вы не можете тривиально интегрировать отображаемый HTML в другие контексты генерации PDF, но вы можете визуализировать HTML напрямую в пустой документ PDF.

Ответ 5

Используйте itext libray:

Вот пример кода. Он отлично работает:

        String htmlFilePath = filePath + ".html";
        String pdfFilePath = filePath + ".pdf";

        // create an html file on given file path
        Writer unicodeFileWriter = new OutputStreamWriter(new FileOutputStream(htmlFilePath), "UTF-8");
        unicodeFileWriter.write(document.toString());
        unicodeFileWriter.close();

        ConverterProperties properties = new ConverterProperties();
        properties.setCharset("UTF-8");
        if (url.contains(".kr") || url.contains(".tw") || url.contains(".cn") || url.contains(".jp")) {
            properties.setFontProvider(new DefaultFontProvider(false, false, true));
        }

        // convert the html file to pdf file.
        HtmlConverter.convertToPdf(new File(htmlFilePath), new File(pdfFilePath), properties);

Maven зависимости

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext7-core</artifactId>
        <version>7.1.6</version>
        <type>pom</type>
    </dependency>

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>html2pdf</artifactId>
        <version>2.1.3</version>
    </dependency>

Ответ 6

Использование iText HTMLWorker

Пример

Ответ 7

Когда мне понадобилось преобразование HTML в PDF в начале этого года, я попробовал пробную версию Winnovative HTML для конвертера PDF (я думаю, что ExpertPDF - это тот же продукт). Он отлично работал, поэтому мы приобрели лицензию у этой компании. После этого я не углубляюсь в это.