【发布时间】:2014-03-27 14:43:48
【问题描述】:
我有以下代码可以作为应用程序正常工作。我正在将代码转换为供 Web 使用的小程序。我从主小程序静态运行这个类。
代码编译没有任何错误。代码创建输出文件。但是当它尝试创建 Document 时会抛出运行时错误 java.lang.ClassNotFoundException com.itextpdf.text.DocListener
我已经在导入中包含了 DocListener,即使它是不必要的。我已将所有类文件放入一个自签名的 jar 文件中。我已拒绝 java 安全性以允许自签名小程序在提示后运行(测试环境)。小程序运行良好,直到我尝试创建 PDF 文档然后它生成运行时错误。
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;
import java.io.File;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocListener;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.html.simpleparser.HTMLWorker;
public class WFRPPDFWrite {
public static void WritePDF() throws DocumentException, IOException {
String htmltext = "<!DOCTYPE html><HTML><HEAD><TITLE>Test HTML</TITLE></HEAD><BODY></BODY></HTML>";
System.out.println("HTML: " + htmltext);
FileOutputStream PDFOut = null;
try {
System.out.println("Attempting to Write PDF");
PDFOut = new FileOutputStream(new File("HTMLOut.pdf"));
} catch (Exception fio){
fio.printStackTrace();
}
try {
System.out.println("PDF Write: 2");
Document doc = new Document();
System.out.println("PDF Write: 3");
PdfWriter.getInstance(doc,PDFOut);
System.out.println("PDF Write: 4");
doc.open();
System.out.println("PDF Write: 6");
HTMLWorker work = new HTMLWorker(doc);
System.out.println("PDF Write: 7");
work.parse(new StringReader(htmltext));
System.out.println("PDF Write: 8");
doc.close();
} catch(Exception doce) {
doce.printStackTrace();
}
System.out.println("PDF Write: 9");
PDFOut.close();
}
}
【问题讨论】:
-
如果你有
itextpdf.jar或类似的东西,你必须添加它来发布,例如: Post要显示的代码,如何在页面上附加小程序。 -
我将 itextpdf.jar 添加到 applet 标记中的存档属性中,并且 applet 能够创建 pdf。谢谢 TomaszDa
-
我将发表我的评论作为答案,您可以接受。