4

我正在尝试使用 itext 创建一个 pdf,但在线上出现错误:

ItextRenderer renderer = new ITextRenderer();

错误是这样的:

05-20 12:00:48.468: E/AndroidRuntime(6121): java.lang.VerifyError: org/xhtmlrenderer/pdf/ITextOutputDevice

它创建文件,但文件是一个错误(大小为 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;
}
4

2 回答 2

2

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

于 2014-01-29T08:47:12.483 回答
1

正确格式化您的 HTML,我也有同样的问题.. itext 不接受未格式化的 HTML 字符串,您的 pdf 被损坏..

于 2013-05-20T10:09:58.653 回答