使用FlyingSaucer&amp ;;生成的Acrobat PDF ITextRenderer似乎正在删除链接

时间:2016-11-10 17:25:46

标签: 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>

我们正在使用flying-saucer将HTML转换为PDF。

我打开由以下内容生成的PDF,但链接无法点击。 似乎没有添加href

如果我删除SPLIT字词,则链接是可点击的,但仅限于内置阅读器link detector如果它们是有效的网址,则可以点击它们。

为什么我的链接会在最终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);

更新

我做了各种实验但都失败了。 我尝试将样式display:block添加到我的链接中 - 这失败了。 我尝试使用formget 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>";

例如,Click Me按钮变为可编辑的文本字段:

enter image description here enter image description here

0 个答案:

没有答案