iText使用java将不完整的Html文件内容转换为pdf
我正在尝试使用iText lib(4.2.0)将html文件转换为pdf。但问题是它并没有将所有html内容打印成pdf格式,只是部分打印了一些数据。下面是将html转换为pdf的代码iText使用java将不完整的Html文件内容转换为pdf,java,itext,html-to-pdf,pdf-conversion,Java,Itext,Html To Pdf,Pdf Conversion,我正在尝试使用iText lib(4.2.0)将html文件转换为pdf。但问题是它并没有将所有html内容打印成pdf格式,只是部分打印了一些数据。下面是将html转换为pdf的代码 InputStream il = new FileInputStream("/tmp/test.html"); // step 1 Document document = new Document(); // step 2 PdfWriter writer =
InputStream il = new FileInputStream("/tmp/test.html");
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("/tmp/pdf.pdf"));
writer.setInitialLeading(12.5f);
// step 3
document.open();
HtmlPipelineContext htmlContext = new HtmlPipelineContext(null);
htmlContext.setTagFactory(Tags.getHtmlTagProcessorFactory());
// CSS
CSSResolver cssResolver = new StyleAttrCSSResolver();
InputStream csspathtest =new FileInputStream("/tmp/test.css");
CssFile cssfiletest = XMLWorkerHelper.getCSS(csspathtest);
cssResolver.addCss(cssfiletest);
Pipeline<?> pipeline = new CssResolverPipeline(cssResolver,
new HtmlPipeline(htmlContext,
new PdfWriterPipeline(
document, writer)));
XMLWorker worker = new XMLWorker(pipeline, true);
XMLParser p = new XMLParser(worker);
p.parse(il);
// step
document.close();
InputStream il=newfileinputstream(“/tmp/test.html”);
//第一步
文档=新文档();
//步骤2
PdfWriter writer=PdfWriter.getInstance(文档,新文件输出流(“/tmp/pdf.pdf”);
writer.setInitialLeading(12.5f);
//步骤3
document.open();
HtmlPipelineContext htmlContext=新的HtmlPipelineContext(null);
setTagFactory(Tags.getHtmlTagProcessorFactory());
//CSS
CSSResolver CSSResolver=新样式AttrCSSResolver();
InputStream csspathtest=新文件InputStream(“/tmp/test.css”);
CssFile cssfiletest=XMLWorkerHelper.getCSS(csspathtest);
cssResolver.addCss(cssfiletest);
管道管道=新的cssResolver管道(cssResolver,
新的HtmlPipeline(htmlContext,
新PdfWriterPipeline(
文件,作者),;
XMLWorker=newxmlworker(管道,true);
XMLParser p=新的XMLParser(worker);
p、 解析(il);
//台阶
document.close();
这是示例html文件您确定iText 4.2.0有一个
XMLWorker
吗?iText 4.2.0从未由iText软件发布过,也不会得到认可或支持。上一次官方发布的copyleft较弱的版本是2.1.7。XMLWorker直到5.x.x才存在。为了能够使用XMLWorker,您的iText和XMLWorker版本必须相同。哦,那么我想我应该寻找替代方案,因为我只想使用开源API。我想我会尝试PdfBox,但请帮助我使用任何其他我可以使用的库。:)ThanksiText 5.x仍然是。我很确定你的意思是,你不喜欢许可证从MPL/LPGL更改为AGPL。你可能应该这样做。这意味着我可以在我的项目内部使用它,并给予应有的信任?我不会出售我的工具或外包其pdf创建服务,我只会将其作为子流程使用,以达到我需要的最终结果。我也不打算让我的项目开源。