Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iText使用java将不完整的Html文件内容转换为pdf_Java_Itext_Html To Pdf_Pdf Conversion - Fatal编程技术网

iText使用java将不完整的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 =

我正在尝试使用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 = 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创建服务,我只会将其作为子流程使用,以达到我需要的最终结果。我也不打算让我的项目开源。