我有一个包含文本和图片的 HTML 页面,并将 HTML 内容解析为 iText 以生成 PDF。在生成的 PDF 中,包含的图片无法显示,只显示文本。
如果我传递绝对路径,例如 D:/Deiva/CRs/HTMLPage/article-101-horz.jpg,则可以打印出图片。但是,如果我尝试从服务器打印图像,例如:
http://localhost:8085/content/dam/article-101-h1.jpg 或 http://www.google.co.in/intl/en_ALL/images/logos/images_logo_lg.gif
那么它在生成的 PDF 中就无法打印出来。
注意:我正在使用 itextpdf-5.2.1.jar 来生成 PDF。
我的 HTML 代码(Article.html):
<html>
<head>
</head>
<body>
<p>Generate PDF with image using iText.</p>
<img src="http://localhost:8085/content/dam/article-10-h1.jpg"></img>
<img src="http://www.google.co.in/intl/en_ALL/images/logos/imgs_logo_lg.gif"></img>
<img class="right horz" src="D:/Deiva/CRs/HTMLPage/article-101-horz.jpg"></img>
</body>
</html>
我正在使用以下 Java 代码生成 PDF:
private void createPDF (){
String path = "D:/Deiva/Test.pdf";
PdfWriter pdfWriter = null;
//create a new document
Document document = new Document();
try {
//get Instance of the PDFWriter
pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(path));
//document header attributes
document.addAuthor("betterThanZero");
document.addCreationDate();
document.addProducer();
document.addCreator("MySampleCode.com");
document.addTitle("Demo for iText XMLWorker");
document.setPageSize(PageSize.LETTER);
//open document
document.open();
InputStream is = new FileInputStream("D:/Deiva/CRs/Oncology/Phase5/CR1/HTMLPage/Article.html");
// create new input stream reader
InputStreamReader isr = new InputStreamReader(is);
//get the XMLWorkerHelper Instance
XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
//convert to PDF
worker.parseXHtml(pdfWriter, document, isr);
//close the document
document.close();
//close the writer
pdfWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
请建议一种在PDF中显示图像的解决方案。谢谢提前。
Deiva
public String getImageRootPath() { return "src/main/resources/html/"; }
}); - sanjiv ranjan