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

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
41
задан Joris Schellekens 27 October 2017 в 18:47
поделиться

5 ответов

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

6
ответ дан Mark 27 November 2019 в 00:56
поделиться

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

-2
ответ дан Mark Melville 27 November 2019 в 00:56
поделиться

Возможно, Вы могли попробовать:

http://www.allcolor.org/YaHPConverter/

-2
ответ дан 27 November 2019 в 00:56
поделиться

Использование itext библиотека:

Вот пример кода. Это работает превосходное:

        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);

зависимости Знатока

    <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>
0
ответ дан 27 November 2019 в 00:56
поделиться

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

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

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

29
ответ дан 27 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: