Men*_*los 7 html pdf itext flying-saucer xhtmlrenderer
我有包含以下链接的 HTML:
<p class="Results">Web :
SPLIT<a href="http://www.google.fr/">http://www</a>
SPLIT<a href="http://www.google.fr/">.google</a>
SPLIT<a href="http://www.google.fr/">.fr/</a>
</p>
Run Code Online (Sandbox Code Playgroud)
我们正在使用 .html 将 HTML 转换为 PDF flying-saucer。
我打开了以下结果的 PDF,但链接不可点击。似乎href没有添加 s。
如果我删除这个SPLIT词,链接是可点击的,但只是因为link detector如果它们是有效的 URL ,内置阅读器使它们可点击。
任何想法为什么我的链接在最终的 PDF 中被删除?
代码:
ITextRenderer itextRender = null;
Tidy tidy = new Tidy();
tidy.setXmlOut(true);
tidy.setShowWarnings(false);
// tidy.setXmlTags(false);
tidy.setInputEncoding(UTF_8_DN);
tidy.setOutputEncoding(UTF_8_DN);
tidy.setXHTML(true);//
tidy.setMakeClean(true);
dataStream = new ByteArrayInputStream(data);
stream = new ByteArrayOutputStream(32 * 1024);
Post process - Convert Html into Xhtml valid format
org.w3c.dom.Document w3cDoc = tidy.parseDOM(dataStream, stream);
itextRender = new ITextRenderer();
itextRender.setDocument(w3cDoc, null);
itextRender.layout();
itextRender.createPDF(stream);
Run Code Online (Sandbox Code Playgroud)
我做了各种实验,但都失败了。我尝试将样式添加display:block到我的链接中 - 这失败了。我尝试添加一个formwithget action和button/ submit- 这更失败,input type="button"或者submit在最终的 PDF 中被解释为文本字段。
return "<input type=\"button\" value=\"Click me\">" +
"<form action=\"http://www.example.com\" method=\"GET\">\n" +
" <input type=\"submit\" /> \n" +
"</form>"+
"</input><a href=\"" + url + "\" title=\"" + linkContent + "\" target=\"_blank\" style=\"display:block\">" + linkContent + "</a>";
Run Code Online (Sandbox Code Playgroud)
例如,Click Me按钮变成了一个可编辑的文本框: