Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
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 ");
}
}
}
Я закончил тем, что использовал ABCPdf от webSupergoo. Это работает действительно хорошо, и приблизительно за 350$ это сохранило меня часы и часы на основе Ваших комментариев выше. Еще раз спасибо Daniel и Bratch для Ваших комментариев.
Когда мне был нужен HTML к преобразованию PDF ранее в этом году, я попробовал суд над HTML Winnovative к преобразователю PDF (я думаю, что ExpertPDF является тем же продуктом, также). Это работало отлично так, мы купили лицензию в той компании. Я не вхожу в него слишком подробно после этого.
Использование 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>
Я думаю, это именно то, что вы искали
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 или выше.