iText PDF创建错误

Roh*_*lai 0 java pdf netbeans itext

我正在使用iText使用NetBeans 8.2从我的Java文件创建PDF文件.我从这里下载了iText JAR文件.我的iText版本是7.0.2.

这是部分代码(我只包括我的Java文件中与iText相关的导入文件和代码):
Attendance.java

import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

.
.
.
.

try {
    OutputStream output = new FileOutputStream(new File("C:\\Users\\dell\\Desktop\\Attendance.pdf"));
    DefaultListModel model1 = (DefaultListModel)present.getModel();            
    Document doc = new Document();
    PdfWriter.getInstance(doc, output);
    doc.open();
    for (int i = 0; i < 68; i++) {
        doc.add(new Paragraph((String) model1.getElementAt(i)));
    }                      
} catch (FileNotFoundException ex) {
    Logger.getLogger(Attendance.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)

问题:

我收到以下3个错误:

  1. 没有为Document找到合适的构造函数(没有参数)

文档错误

  1. 找不到符号:getInstance(Document,OutputStream)

的getInstance

  1. 找不到符号:open()

打开

我已经遵循了很多像这样的教程,但不管怎样他们都没有遇到我面临的错误,即使我使用了相同的代码.如果有人使用iText做这样的事情,任何建议将不胜感激.如果您需要更多信息,请与我们联系.

Mic*_*mey 5

你正在混合使用iText 5教程和iText 7代码.您正在使用iText 7,但是您正在查看描述如何使用iText 5的非官方教程.iText 7是对iText 5的完全重写,API完全不同.

请在官方网站上查看以下教程:

这里可以找到一个hello world示例,如下所示:

//Initialize PDF writer
PdfWriter writer = new PdfWriter(dest);
//Initialize PDF document
PdfDocument pdf = new PdfDocument(writer);
// Initialize document
Document document = new Document(pdf);
//Add paragraph to the document
document.add(new Paragraph("Hello World!"));
//Close document
document.close(); 
Run Code Online (Sandbox Code Playgroud)

如您所见,它与您使用的iText 5代码完全不同.

重要提示:请 务必前往官方网站获取信息!有许多网站包含的示例会给您错误的建议,特别是关于数字签名(过时的示例)和合并PDF(错误的方法).

至于下载iText,请始终从下载中心页面开始,因为它包含指向最新版本的链接,包括附加组件的兼容性矩阵.

  • 您可能还想指出source forge不是下载当前iText版本的最佳网站. (2认同)