我正在寻找一种快速有效的方法来从我的网站创建 pdf。pdf 将包含图像以及一些我可以作为 html 传递的文本。pdf 可能只是我传递的 html 的打印格式。类似于 CutePDF 所做的事情。可能吗?如何?请分享你的想法。
4 回答
尝试使用wkhtmltopdf
which 服务于大多数情况。你必须安装这个小 exe / rpm。它首先使用webkit
引擎渲染 并将网页转换为pdf html
。headless browser mode
安装后,您可以通过 java/php 应用程序调用它。它值得安装。
这是链接:http ://code.google.com/p/wkhtmltopdf/ 。
PS:我不为wkhtmltopdf
:) 工作,我在我的一个项目中尝试了其他几个像 itext 一样的工具,但效果不如这个工具。
真的有可能在我做之前一周。我曾使用 java、servlet 和 jsp 来做同样的事情。
脚步 :
- 读取 html 文件并将其保存在字符串中。
- 使用 ITextRenderer 将 html 转换为 pdf
- 使用 setDocumentFromString() 从字符串中设置渲染文档
- 然后使用 createPDF() 方法创建 pdf
- 您可以将pdf存储在指定路径或输出流中,我使用了输出流
示例代码:
Visit http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html
protected void doProcess(HttpServletRequest request,
HttpServletResponse response){
response.setContentType("application/pdf;");
response.setHeader("Content-Disposition", "attachment; filename=Filenametodownload.pdf");
String reportContent = "<html><body><b>This is sample HTML</b></body></html>";
ServletOutputStream sos =null;
try {
sos = response.getOutputStream();
} catch (IOException e1) {
e1.printStackTrace();
}
String st = System.getProperty("user.dir");
// ITextRenderer is only works fine with compailed version of core-renderer.jar
//Jar available in http://wo-repository.doit.com.br/content/repositories/thirdparty/org/xhtmlrenderer/core-renderer/R8-final/
ITextRenderer renderer = new ITextRenderer();
//System.out.println(reportContent);
renderer.setDocumentFromString(reportContent);
renderer.layout();
try {
renderer.createPDF(sos);
} catch (DocumentException e) {
e.printStackTrace();
}
try {
sos.close();
session.removeAttribute("ReportContent");
} catch (IOException e) {
e.printStackTrace();
}
}
注意:包括 itext.jar 和 core-renderer.jar
试试这个方法你可以做到...一切顺利...
如果你想在服务器端进行 HTML->PDF 转换,并且你的服务器代码已经在 Java 或 C#/.NET 中,你可以使用iText 中的XMLWorker。这是一个演示页面和一些文档(已过时,但应该很快更新)。
OTOH,如果您想在客户端进行转换,那么PDF打印机呢?我个人最喜欢的是PDFCreator。请注意,使用 PDF 打印机只是您的解决方案,不适用于浏览您网站的任何用户。
如果您不想安装 WKHTMLTOPDF 之类的工具,但仍需要完整的 CSS、HTML 和 Javascript 功能,您可以使用Sprint PDF。这是一个带有大量选项的在线 API。