我有以下代码作为应用程序正常工作。我正在将代码转换为用于Web使用的applet。我正在从主applet静态运行这个类。
代码编译没有任何错误。代码创建输出文件。但是当它尝试创建Document时会抛出运行时错误java.lang.ClassNotFoundException com.itextpdf.text.DocListener
我已将DocListener包含在导入中,即使它是不必要的。我已将所有类文件放入自签名的jar文件中。我已经拒绝了java安全性,允许自我签名的applet在提示后运行(测试环境)。小程序运行正常,直到我尝试创建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();
}
}
答案 0 :(得分:0)
您需要将额外的jar(itextpdf.jar
)附加到applet标记中的存档属性,如上例所示:
<applet ... archive="yourApplet.jar,itextpdf.jar,otherjar.jar" />