android – 使用Flying Saucer,渲染器问题从html创建pdf
作者:互联网
我正在尝试使用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;
}
解决方法:
我也在寻找一个Android HTML到PDF转换器,并研究飞碟.我遇到了同样的问题,并注意到Flying Saucer不是Android库,而是JAVA Library.它使用Android不可用的Java类(例如:java.awt.*),因此jar不能在Android设备上运行.
标签:android,rendering,flying-saucer 来源: https://codeday.me/bug/20190703/1369757.html