使用itextpdf将html转换为pdf。 有几个图像需要转换。但是,有时图像地址不正确。 在这种情况下,我得到一个"文件不是公认的图像格式"错误,转换停止。
我发现异常,但我不知道如何继续绕过该图像进行转换。
有什么想法吗?
我的代码:
try {
Document document = new Document( com.itextpdf.text.PageSize.A4 );
String fileNameWithPath = filename;
FileOutputStream fos = new FileOutputStream( fileNameWithPath );
PdfWriter pdfWriter = PdfWriter.getInstance( document, fos );
document.open();
document.addCreationDate();
);
HTMLWorker htmlWorker = new HTMLWorker( document );
htmlWorker.parse( new StringReader( htmlText ) );
document.close();
fos.close();
return true;
}
catch(DocumentException e) {
e.printStackTrace();
return false;
} catch (FileNotFoundException e) {
e.printStackTrace();
return false;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}catch (Exception e) {
File file = new File(absoluteFilePath);
if(file.exists()) {
boolean isDeleted = file.delete();
Log.i(TAG, "PDF isDeleted: " + isDeleted);
}
Log.d(TAG, "Exception: " + e.getMessage());
e.printStackTrace();
return false;
}
}
我得到的错误:
03-27 22:54:27.065:D / rerore(27830):例外:文件:/不是 认可的图像格式。 03-27 22:54:27.065:W / System.err(27830): ExceptionConverter:java.io.IOException:file:/不是可识别的 图片格式。 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.Image.getInstance(Image.java:318)03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.Image.getInstance(Image.java:340)03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.html.simpleparser.ElementFactory.createImage(ElementFactory.java:425) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.html.simpleparser.HTMLWorker.createImage(HTMLWorker.java:454) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.html.simpleparser.HTMLTagProcessors $ 14.startElement(HTMLTagProcessors.java:431) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.html.simpleparser.HTMLWorker.startElement(HTMLWorker.java:193) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.xml.simpleparser.SimpleXMLParser.processTag(SimpleXMLParser.java:581) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.xml.simpleparser.SimpleXMLParser.go(SimpleXMLParser.java:323) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.xml.simpleparser.SimpleXMLParser.parse(SimpleXMLParser.java:607) 03-27 22:54:27.077:W / System.err(27830):at com.itextpdf.text.html.simpleparser.HTMLWorker.parse(HTMLWorker.java:147) 03-27 22:54:27.077:W / System.err(27830):at com.zagabun.yyy.MainActivity.createpdf(MainActivity.java:1039)03-27 22:54:27.077:W / System.err(27830):at com.zagabun.yyy.MainActivity $ 6.run(MainActivity.java:974)
这不是一个重复的问题,因为我已经审核了我的问题并删除了旧问题。
另外,现在我有一个无效图像的解决方案。我在运行HTMLWorker parse命令之前检查每个图像的URL。 但是,其他标签还有其他错误,我不确定如何使用iText 5进行错误处理。
任何人都可以帮忙吗?