package cn.spring.test.htmltopdf;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;
public class HtmltoPDF {
public static void main( String[] args ) throws Exception{
// htmlToPdf();
// htmlToPdf2();
htmlToPdf3();
}
// 不支持中文
public static void htmlToPdf() throws Exception
{
String inputFile = "D:/Test/flying.html";
String url = new File( inputFile ).toURI().toURL().toString();
String outputFile = "D:/Test/flying.pdf";
OutputStream os = new FileOutputStream( outputFile );
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument( url );
renderer.layout();
renderer.createPDF( os );
os.close();
}
// 支持中文
public static void htmlToPdf2() throws Exception {
String outputFile = "F:/TestDemo/demo_3.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
StringBuffer html = new StringBuffer();
// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">").
append("<head>")
.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
.append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")
.append("</head>")
.append("<body>");
html.append("<div>支持中文!</div>");
html.append("</body></html>");
renderer.setDocumentFromString(html.toString());
// 解决图片的相对路径问题
// renderer.getSharedContext().setBaseURL("file:/F:/teste/html/");
renderer.layout();
renderer.createPDF(os);
System.out.println("======转换成功!");
os.close();
}
public static void htmlToPdf3() throws Exception{
String inputFile = "F:/TestDemo/test.html";
String outFile = "F:/TestDemo/test.pdf";
OutputStream os = null;
os = new FileOutputStream(outFile);
ITextRenderer renderer = new ITextRenderer();
ITextFontResolver fontResolver = renderer.getFontResolver();
fontResolver.addFont("C:/Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
String url = new File( inputFile ).toURI().toURL().toString();
System.out.println("=============url: "+url);
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
System.out.println("======转换成功!");
os.close();
}
}
分享到:
相关推荐
Java HTML 转 PDF 图片不显示问题解决方案详解 在 Java 开发中,经常需要将 HTML 转换为 PDF,并希望在生成的 PDF 中正确显示 HTML 中的图片。但是,由于 HTML 和 PDF 的格式差异,可能会遇到图片不显示的问题。...
Java HTML 转 PDF 插件是用于将HTML文档转换为PDF格式的工具,这在很多场景下非常有用,比如报告生成、电子书制作、网页保存等。在Java开发环境中,有多种库和框架可以实现这个功能,如iText、Flying Saucer、PDFBox...
总的来说,`JAVA HTML转pdf`涉及到的关键知识点包括:`iTextPDF`库的使用,`Html2Pdf`扩展库,HTML读取与解析,PDF生成,以及可能的自定义配置。通过熟练掌握这些内容,你可以方便地在Java应用程序中实现HTML到PDF的...
这个“java html转pdf工具类”提供了一种便捷的方法来实现这个功能。以下是一些关于这个主题的重要知识点: 1. **iText和 Flying Saucer**: 这两个是Java中最常用的库,用于将HTML转换为PDF。iText是一个强大的PDF...
调用 layout() 方法布局页面,然后调用 createPDF() 方法将解析后的 HTML 内容写入到已打开的 PDF 文档中。最后,我们关闭文档以完成转换过程。 在实际应用中,可能会遇到 HTML 中的图片路径问题。如果图片是相对...
"java html转pdf 最简单方法"这个标题恰好指向了这个主题。在描述中提到,该方法可以将网站上的图片、文字以及格式完整地保留下来并生成PDF文档,这涉及到网页内容的解析和格式转换技术。 Java中有多种库可以实现...
Java HTML转PDF是一种常见的需求,特别是在web应用中,我们可能需要将网页内容导出为PDF格式,便于打印或离线阅读。在这个过程中,pd4ml是一个强大的库,它能够帮助我们实现HTML到PDF的转换,并且能很好地保留HTML...
总之,使用iTextPDF库在Java中实现HTML到PDF的转换是一项实用的技能,但需要注意库对HTML和CSS的支持限制。根据实际需求,可能需要对HTML源码进行调整,或者考虑使用其他兼容性更强的库来实现更丰富的转换效果。
1. 使用Flying Saucer进行HTML转PDF: 首先,引入Flying Saucer的相关依赖到你的项目中。然后,你可以创建一个`ITextRenderer`对象,设置输出流,加载HTML文件,最后渲染生成PDF。 2. 添加印章图片: HTML中可以...
使用java把html转换为标准的PDF文件,完美可运行 第一种:html的文件 第二钟:html格式的字符串 我们先来讲一下第一种情况: 1.市面上有很多的html转pdf的方法,但是不是受限于中文的限制就是受限于css样式的丢失...
Java后端实现HTML转PDF是常见的需求,尤其在生成报告、文档或网页打印场景中。PD4ML是一款高效且功能强大的Java库,专门用于将HTML内容转换为高质量的PDF文档。这个工具类的出现,使得开发者能够利用Java方便地处理...
本项目提供了一个Java实现HTML转PDF的解决方案,适用于Eclipse开发环境。 1. **Java与PDF库** Java中用于生成PDF的库有很多,如iText、Flying Saucer、PDFBox等。其中,Flying Saucer是一个常用的库,它可以将HTML...
总的来说,Java提供了强大且灵活的工具,如Flying Saucer,来实现从HTML和CSS构建的网页直接转换为PDF,保持样式和图片的完整性。在实际应用中,开发者可以根据需求选择合适的库,结合HTML和CSS的知识,创建高质量的...
总的来说,Java实现Word、Excel转PDF和HTML涉及对各种库的理解和使用,包括Jacob、Apache POI等。实际应用时,需要根据项目需求选择最适合的工具和技术,并注意处理转换过程中可能出现的格式和样式丢失问题。同时,...
至于提供的压缩包文件"Java-html转pdf"和"Java-htmlתpdf",它们可能是示例代码、依赖库或者其他与转换相关的资源。要使用这些文件,你需要将它们解压缩,并按照项目的结构和需求进行整合。 总之,Java结合Flying ...
PD4ML是一个Java库,专门用于将HTML内容转换为高质量的PDF文档。本篇将深入探讨如何使用PD4ML实现在Java环境中处理中文乱码问题,并提供相关文件的背景和用途。 首先,我们要理解为何会出现中文乱码。在处理非ASCII...
core-renderer-9176297.jar core-renderer-R8 (1).jar itext-asian-5.2.0.jar itextpdf-5.5.9.jar itext-pdfa-5.5.9.jar itext-xtra-5.5.9.jar xmlworker-5.5.9.jar 你要的jar 这里都有