当前位置: 首页 > 知识库问答 >
问题:

在itext7中将html转换为pdf时出错

东门深
2023-03-14

为了将html转换为pdf,我使用了IText7的API convertToDocument,传递参数模板的ByteArrayInputStream、PDFDocument和ConvertProperties。

相关代码段:

HtmlConverter.convertToDocument(new ByteArrayInputStream(templateWritten), pdfDocument, converterProps);

“PDF间接对象属于其他PDF文档。请将对象复制到当前PDF文档。”

转换属性的创建

private ConverterProperties addResourcesForInitiative(String templateKey, FontProvider fontProvider) {
//        CustomDefaultFontProvider cdfp = new CustomDefaultFontProvider();
        ConverterProperties converterprops = new ConverterProperties();
//        converterprops.setFontProvider(fontProvider);
        converterprops.setBaseUri(ConfigurationManager.getParamValue("resource.path") + templateKey + "/resources/");
        log.info("Properties for conversione are setted. Url of folder loaded " + converterprops.getBaseUri());
        return converterprops;
    }

在每次调用convertToDocument API之前创建对象

我是不是漏掉了什么?

谢谢大家的帮助

共有1个答案

慕容弘懿
2023-03-14

我也经历了同样的问题。它与Itext7生成pdf相关(但不是其副本),但“pdf间接对象属于其他pdf文档。将对象复制到当前pdf文档”除外。

  • fontprogram是一个类,它包含iText使用字体程序所需的所有信息。它可以在创建许多不同PDF文件的进程中重用。
  • pdffont是在单个文档上下文中使用fontprogram的类。每个pdffont对象正好属于一个pdfdocument

如果尝试使用pdffont对象创建另一个文档,则会出现错误:“PDF间接对象属于其他PDF文档。将对象复制到当前PDF文档。”

换句话说:您不能只重用pdffont对象,只能重用fontprogram对象。在重用ConverterProperties(或FontProvider)时,这可能是一个问题。诀窍不是在FontProvider中缓存pdffont对象,而是缓存FontProgram

我会在关于这个话题的门票中加入对这个问题的参考。

 类似资料:
  • 问题内容: 将PDF文档转换为HTML在浏览器中查看的最佳解决方案是什么?该站点有多个PDF文档,访问者可以单击HTML格式的视图,并且应在屏幕上以HTML文件的形式查看。 运行PHP,Linux,Apache的标准网站。 问题答案: pdftohtml可以正常工作:快速,稳定,但是html结果充其量是丑陋的。我已经在有很多工作简历的网站上使用了很长时间。 但是,这是提取文本内容的好方法。 或Go

  • 我想在pdf中更改一些超文本标记语言。我所有的html都是超文本标记语言字符串,但我不知道如何在中正确传递。 如果有人知道怎么做。。一定很好。多谢多姆

  • 问题内容: 我有一个HTML(不是XHTML)文档,可以在Firefox 3和IE 7中很好地呈现。它使用相当基本的CSS对其进行样式设置,并在HTML中很好地呈现。 我现在正在寻找一种将其转换为PDF的方法。我努力了: [DOMPDF]:表格有很大的问题。我考虑了我的大型嵌套表并对其进行了帮助(在此之前,它只消耗了128M的内存然后就死了-这就是我对php.ini中的内存的限制),但是它使表完全

  • 我想把HTMLdocument转换成PDF文件。为此,我毫无问题地将我的文档从HTML转换为。docx。把它从。docx到PDF我遵循以下链接:在java中将docx转换成PDF 但我有一个错误: 线程“JavaFX应用程序线程”java中出现异常。lang.NoSuchMethodError:org。阿帕奇。波伊。这是我最喜欢的部分。getPackageRelationship()Lorg/ap

  • 问题内容: 我是一名PHP开发人员,在我的一个项目中,我需要将一些HTML文档(大约30至50页)转换为PDF文档。 我的搜索找到了以下可能的解决方案。其中包括一些PHP库和一些命令行应用程序。每种都有自己的优点和缺点。 PHP库: fpdf(需要更多的转换努力) tcpdf(需要更多的转换努力) html2fpdf http://html2fpdf.sourceforge.net html2pd

  • 问题内容: 按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。