加载静态内容pdf2Html Itext 7

时间:2019-01-16 21:01:18

标签: itext itext7 converters static-content pdfhtml

下午好。 我正在尝试使用Itext 7的PdfHTML插件将HTML的静态内容加载到PDF会话中。 此时,我只是按照their Website上的样例示例做一个hello world示例:

我的代码无论如何都不会偏离它。唯一的不同是,我正在设置ConverterProperties对象,并将其添加到调用中。

ConverterProperties converterProperties = new ConverterProperties()
                .setBaseUri("https://randomURIforReelzBro.com/");
        HtmlConverter.convertToPdf(new FileInputStream("src/htmldocs/randomHTMLforReelzBro.html"), new FileOutputStream(dest), converterProperties);

该内容存在于我的vpn上,我可以从IDE的运行时访问它。
因此,如果将URI的完整路径放在浏览器中,则可以清楚地看到内容(在本例中为JPEG)。但是,转换后的PDF看不到它。我是否缺少简单的东西?根据Itext网站上的文档,这应该是相对路径。我应该只包括html页面使用的所有内容资源所共有的路径部分吗?如果您有任何想法请告诉我。如果我发现了问题,那么我将为所有其他为此问题苦苦挣扎的人写下答案。

做一些实验后,Jar似乎对本地托管的内容有非常随机的响应。我以为https和http可能有所不同,但是我找到了每个加载的示例和其他未加载的示例。所有内容都加载到浏览器中(显然)。另外,设置基本URI似乎对结果没有任何影响吗?我会说这很奇怪。有任何想法吗?特别是来自IText团队的人吗?

1 个答案:

答案 0 :(得分:0)

研究了这个问题后,结果发现由于图像位于Table Data元素的背景标记中,因此htmlToPDF甚至找不到图像。
元素中的背景图片已弃用,因此我认为Itext 7对其不起作用。
将图片迁移到标题中的样式标签后:

<style>
    .blueimage1 {background-image: url("https://randomstaticcontent.screwy/random.gif"); }
    .blueimage2 {background-image: url("https://randomstaticcontent.screwy/randomA1.gif"); }
</style>

iText 7能够找到静态内容并创建PDF。
这个故事的寓意是,在通过IText运行之前,在HTML中搜索不推荐使用的标签。