Java 从包含图像和文本的html生成PDF
我正在寻找一种快速有效的方法,从我的网站创建pdf。pdf将有图像和一些文本,我可以作为html传递。pdf可以是我传递的html的打印格式。类似于CutePDF的功能。可能吗?怎么用?请分享您的想法。尝试使用适用于大多数情况的Java 从包含图像和文本的html生成PDF,java,html,imagemagick,pdf-generation,Java,Html,Imagemagick,Pdf Generation,我正在寻找一种快速有效的方法,从我的网站创建pdf。pdf将有图像和一些文本,我可以作为html传递。pdf可以是我传递的html的打印格式。类似于CutePDF的功能。可能吗?怎么用?请分享您的想法。尝试使用适用于大多数情况的wkhtmltopdf。你必须安装这个小的exe/rpm。它首先使用webkit引擎以headless浏览器模式呈现html,并将网页转换为pdf。安装后,可以通过java/php应用程序调用它。它值得安装 以下是链接: 注:我不为wkhtmltopdf:)工作,我在我的
wkhtmltopdf
。你必须安装这个小的exe/rpm。它首先使用webkit
引擎以headless浏览器模式呈现html
,并将网页转换为pdf。安装后,可以通过java/php应用程序调用它。它值得安装
以下是链接:
注:我不为wkhtmltopdf
:)工作,我在我的一个项目中尝试了其他几个类似itext的工具,但没有像这个工具那样有效 如果您想在服务器端进行HTML->PDF转换,并且假设您的服务器代码已经是Java或C#/.NET格式,那么可以使用from iText。这里有一个和一些(已经过时,但应该很快更新)
OTOH,如果你想在客户端进行转换,PDF打印机怎么样?我个人最喜欢的是。请注意,使用PDF打印机只是您的一种解决方案,不适合任何浏览您网站的用户。如果您不想安装WKHTMLTOPDF之类的工具,但仍然需要完整的CSS、HTML和Javascript功能,您可以使用。这是一个在线API,提供了大量的选项。在我做这件事的前一周,这真的是可能的。我用java、servlet和jsp做了同样的事情
步骤:
读取html文件并将其置于字符串中
使用ITextRenderer将html转换为pdf
使用setDocumentFromString()从字符串设置呈现文档
然后使用createPDF()方法创建pdf
- 您可以将pdf存储在指定的路径或输出流中,我已经使用了输出流
示例代码:
访问http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html
受保护的无效数据处理(HttpServletRequest请求,
HttpServletResponse(响应){
response.setContentType(“application/pdf;”);
setHeader(“内容处置”、“附件;文件名=Filenametodownload.pdf”);
String reportContent=“这是示例HTML”;
ServletOutputStream sos=null;
试一试{
sos=response.getOutputStream();
}捕获(IOE1){
e1.printStackTrace();
}
字符串st=System.getProperty(“user.dir”);
//ITextRenderer仅适用于core-renderer.jar的Compiled版本
//罐子可在http://wo-repository.doit.com.br/content/repositories/thirdparty/org/xhtmlrenderer/core-renderer/R8-final/
ITextRenderer=newitextrenderer();
//System.out.println(报告内容);
renderer.setDocumentFromString(reportContent);
layout();
试一试{
createPDF(sos);
}捕获(文档异常){
e、 printStackTrace();
}
试试{
sos.close();
删除属性(“报告内容”);
}捕获(IOE){
e、 printStackTrace();
}
}
注意:包括itext.jar和core-renderer.jar
试着用你能做到的方式。。。祝您一切顺利。是的。。它呈现,当你在浏览器中呈现html时,它会生成具有精确外观和感觉的pdf(chrome使用webkit)。+1我们从2年前开始在生产中使用wkhtmltopdf
,这非常棒。您可以看看tooSure,它将尝试phantomjs
。。看起来很有趣。
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();
}
}