0

我正在使用 ITextRenderer 从 html 解析 pdf,如下所示:

private void createPdf(File file, String content) throws IOException, DocumentException {
        OutputStream os = new FileOutputStream(file);
            content = tidyUpHTML(content);
            ITextRenderer renderer = new ITextRenderer();
            renderer.setDocumentFromString(content);
            renderer.layout();
            renderer.createPDF(os);
        os.close();
}

现在,如果 html 包含图像的本地路径,它不会显示在 pdf 中。但是,如果 img 标签的 src-value 是在线图像的 URL,它确实有效。

如下:不显示在pdf上:

<img src="C:\path\to\image\image.png" />

是否在 pdf 上正确显示:

<img src="http://flagpedia.net/data/currency/jpy/100jpy.jpg" />

本地文件的路径是正确的,例如,如果我将该路径复制粘贴到我的网络浏览器,它会显示图像。

如何让它显示在pdf上?

更新:这一切都在 WildFly10 应用程序服务器上的 JSF / Primefaces Web 应用程序中运行。因此,文件系统的直接路径似乎不起作用。那么,我应该使用war中的哪个目录来使用静态资源,比如这张图片。目前它在webapp/resources/images.

4

1 回答 1

0

以下是使用JSF2.0或更新时的操作方法,其中包含<h:graphicImage>组件。

myimage.png在文件夹中有图像webapp/resources/images/

现在我添加组件如下:

<h:graphicImage library="images" name="myimage.png" />

现在在浏览器中,我检查了该元素以获取 url,并将该 url 作为src-attribute 的值插入到<img>-tag 中,如下所示:

<img src="http://localhost:8080/myproject//javax.faces.resource/myimage.png.xhtml?ln=images"/>

瞧!现在我在 html 模板中使用带有 url 的静态图像,该图像将被解析为所述 pdf 并且图像也可以在 pdf 中使用。我希望这个技巧可以帮助某人。

于 2016-12-09T11:57:18.737 回答