【发布时间】:2013-02-22 19:31:06
【问题描述】:
我有一个包含文本、图像的 html 页面,我正在将 HTML 内容解析为 iText 以生成 PDF。在生成的 PDF 中,未显示包含的图像,并且仅显示文本。
如果我通过像 D:/Deiva/CRs/HTMLPage/article-101-horz.jpg 这样的绝对路径,则图像将被打印。但是,如果我尝试从服务器打印图像,例如
http://localhost:8085/content/dam/article-101-h1.jpg or 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 格式显示图像的解决方案。
提前致谢。
天神
【问题讨论】:
标签: java itextsharp itext relative-path html-to-pdf