JApplet的html文件形式,在JApplet中使用iText将html文件转换为pdf

首先,我在你的问题中看到了这个错误:

Errorjava.security.AccessControlException: access denied ("java.lang.RuntimePermission" "getenv.windir")

您需要对applet进行签名才能访问您的文件系统。另见link和this。

其次,我尝试过以下代码:

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import com.itextpdf.text.Document;

import com.itextpdf.text.pdf.PdfWriter;

import com.itextpdf.tool.xml.XMLWorkerHelper;

public class main {

public static void main(String[] args) {

File f = new File("C:/tmp/data.htm");

File pdf = new File("C:/tmp/data.pdf");

Document pdfDocument = null;

PdfWriter pdfWriter = null;

try {

pdfDocument = new Document();

pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(pdf));

pdfDocument.open();

XMLWorkerHelper.getInstance().parseXHtml(pdfWriter, pdfDocument,

new FileInputStream(f));

pdfDocument.close();

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

如果文件data.htm(原始数据)是htmlx,请正常工作。但是如果data.htm不是xml,我会收到这个错误:

com.itextpdf.tool.xml.exceptions.RuntimeWorkerException: Invalid nested tag head found, expected closing tag meta.

at com.itextpdf.tool.xml.XMLWorker.endElement(XMLWorker.java:134)

at com.itextpdf.tool.xml.parser.XMLParser.endElement(XMLParser.java:395)

at com.itextpdf.tool.xml.parser.state.ClosingTagState.process(ClosingTagState.java:70)

at com.itextpdf.tool.xml.parser.XMLParser.parseWithReader(XMLParser.java:235)

at com.itextpdf.tool.xml.parser.XMLParser.parse(XMLParser.java:213)

at com.itextpdf.tool.xml.parser.XMLParser.parse(XMLParser.java:174)

at com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(XMLWorkerHelper.java:220)

at com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(XMLWorkerHelper.java:185)

at main.main(main.java:44)

您可以尝试使用此示例吗?不同之处在于我的示例不是applet,而是java独立版。

此致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值