我一直在使用飞碟 http://code.google.com/p/flying-saucer//一段时间以来,取得了令人惊叹的成果。
我可以像这样通过 uri 设置文档
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(xhtmlUri);
这很好,因为它将解析相对于给定 URI 的所有相关 css 资源等。但是,我现在正在生成 xhtml,并希望将其直接呈现为 PDF(不保存文件)。适当的方法在文本渲染器 http://jarvana.com/jarvana/view/org/xhtmlrenderer/core-renderer/R8pre2/core-renderer-R8pre2-sources.jar!/org/xhtmlrenderer/pdf/ITextRenderer.java似乎是:
private Document loadDocument(final String uri) {
return _sharedContext.getUac().getXMLResource(uri).getDocument();
}
public void setDocument(String uri) {
setDocument(loadDocument(uri), uri);
}
public void setDocument(Document doc, String url) {
setDocument(doc, url, new XhtmlNamespaceHandler());
}
正如你所看到的,我现有的代码只给出了 uri 和ITextRenderer
所做的工作是创建Document
for me.
创建的最短方法是什么Document
来自我格式化的 xhtml 字符串?我更喜欢使用现有的 Flying Saucer 库,而不必导入另一个 XML 解析 jar(只是为了一致的错误和功能)。
以下作品:
Document document = XMLResource.load(new ByteArrayInputStream(templateString.getBytes())).getDocument();
之前,我曾尝试过
final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
dbf.setValidating(false);
final DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
Document document = documentBuilder.parse(new ByteArrayInputStream(templateString.getBytes()));
但当它尝试从下载 HTML docType 时失败http://www.w3.org http://www.w3.org(对于 java 库返回 503)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)