首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >渲染图像XmlWorkerHelper(itextpdf)

渲染图像XmlWorkerHelper(itextpdf)
EN

Stack Overflow用户
提问于 2015-05-30 19:27:36
回答 2查看 481关注 0票数 1

请帮帮我。

我在使用itextpdf 5.5.6和itext 5.5.6在pdf im中渲染图像时遇到问题。

我的代码是:

代码语言:javascript
复制
    .
    .
    .


    URL url = new URL("http://some.html");

    URLConnection uc = url.openConnection();
    InputStreamReader inputStreamReader = new InputStreamReader(uc.getInputStream());
     XMLWorkerHelper worker = XMLWorkerHelper.getInstance();

     worker.parseXHtml(pdrwriter, doc, inputStreamReader);

     doc.close();
        //close the writer
     pdrwriter.close();

我的html有:

代码语言:javascript
复制
<table><tr><td><img src="http://mysite/logo.jpg" /></td</tr></table>

我得到了错误:发现无效的嵌套标记td,需要结束标记img。

我试过了

代码语言:javascript
复制
<table><tr><td><img src="http://mysite/logo.jpg"></img</td</tr></table> 

sam错误..

你知道怎么做吗?感谢您的帮助!

EN

回答 2

Stack Overflow用户

发布于 2015-05-30 19:34:32

这是错误的:

代码语言:javascript
复制
<table><tr><td><img src="http://mysite/logo.jpg" /></td</tr></table>

它应该是:

代码语言:javascript
复制
<table><tr><td><img src="http://mysite/logo.jpg" /></td></tr></table>

这也是错误的:

代码语言:javascript
复制
<table><tr><td><img src="http://mysite/logo.jpg"></img</td</tr></table>

它应该是:

代码语言:javascript
复制
<table><tr><td><img src="http://mysite/logo.jpg"></img></td></tr></table> 
票数 1
EN

Stack Overflow用户

发布于 2015-12-28 13:10:15

如果您正在解析的HTML文件存储在与工作目录不同的目录中,iText将无法创建图像对象。我们必须提供一个ImageProvider接口的实现,告诉iText在遇到img标记时该怎么做。此接口具有以下方法。

代码语言:javascript
复制
Image retrieve(final String src);
String getImageRootPath();
void store(String src, Image img);
void reset();

您可以编写自己的类来实现这四个方法,也可以子类化AbstractImageProvider。更倾向于选择后者。

XML Worker将使用AbstractImageProvider类的store()方法来缓存在映射中遇到的所有Image对象。当为具有相同src的图像调用retrieve()方法时,这些对象将被重用。如果你不缓存图片,你的PDF就会变得臃肿。相同的图像位和字节将多次写入PDF。ImageProvider ()方法清除缓存;它在克隆reset时使用。最后,getImageRootPath()方法没有实现。您必须自己实现它,就像下面的代码片段中所做的那样

代码语言:javascript
复制
htmlContext.setImageProvider(new AbstractImageProvider() {

public String getImageRootPath() {

    return "src/main/resources/html/";

}
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30545588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档