使用Flying Saucer从HTML创建PDF,渲染器问题

4
我正在尝试使用iText创建PDF文件,但是在这一行出现了错误:
ItextRenderer renderer = new ITextRenderer();

错误信息大致如下:
05-20 12:00:48.468: E/AndroidRuntime(6121): java.lang.VerifyError: org/xhtmlrenderer/pdf/ITextOutputDevice

它创建了文件,但文件有 bug(大小为0kb且无法打开)。
private void HTMLtoPDF(){
    try{
         String outputFile = "sdcard/firstdoc.pdf";
         OutputStream os = new FileOutputStream(outputFile);

         ITextRenderer renderer = new ITextRenderer();
         renderer.setDocumentFromString(getHtmlBuffer().toString());
         renderer.layout();
         renderer.createPDF(os);
         renderer.finishPDF();
         os.close();
         }catch (Exception e) {
         e.printStackTrace();
         }
}
private StringBuffer getHtmlBuffer() {
    StringBuffer buff = new StringBuffer();
    buff.append("<html xmlns='http://www.w3.org/1999/xhtml'>");
    buff.append("<body>");
    buff.append("<h2 style='color: #353535;font-size: 16px;margin: 0px;padding: 20px 0px;font-weight: bold;'>Test</h2>");
    buff.append("<div id='news-details' class='news-details'>");
    buff.append("<div class='news-details-data'>");
    buff.append("some japanes charactors");
    buff.append("</div></div>");
    buff.append("</body></html>");
    return buff;
}

我也遇到了同样的错误。有什么想法可以让它在Android上运行吗? - satyadeepk
@Tsunaze,你有没有找到其他的Android库来将HTML转换为PDF?你是如何解决这个问题的? - Rucha Bhatt Joshi
2个回答

2

我也在寻找一种Android HTML到PDF转换器,看了看Flying Saucer。我遇到了同样的问题,并注意到Flying Saucer不是一个Android库,而是一个JAVA库。它使用了Android不可用的Java类(例如:java.awt.*),所以该jar文件无法在Android设备上运行。


在Android中,是否有其他解决方案将HTML转换为PDF? - Rucha Bhatt Joshi

1

正确格式化您的HTML,我也遇到了同样的问题.. itext不接受未格式化的HTML字符串,您的PDF文件会受损..


我已经进行了更改,使得某些事情变得更加容易,但仍然出现相同的错误。 - Tsunaze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接