HtmltoPDF
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();
}
}
分享到:
相关推荐
为了解决这个问题,本文将介绍使用 iText 和 FlyingSaucer 两个第三方库来实现 Java 中的 HTML 转 PDF 图片显示。 使用 iText 库 iText 库是一个功能强大的开源库,提供了许多实用的功能,可以方便地将 HTML 转换...
本文将深入探讨如何利用iText库在Java环境中,高效且完美地将包含中文内容的HTML文件转换为PDF。 首先,iText是一个强大的PDF处理库,它提供了丰富的API,允许开发者创建、编辑和读取PDF文档。对于HTML到PDF的转换...
接着,我们设置了 PdfWriter 的 strictImageSequence 属性为 true,这有助于确保图片按照正确的顺序出现在 PDF 中。之后,我们打开文档并创建了一个 ITextRenderer 对象,这个对象负责将 HTML 解析为 PDF。 ...
由于描述中提到“不能转换水印、印章这类特殊类型”,这意味着转换工具可能不支持处理这些特殊元素,可能是因为它们在PDF中的表示方式较为复杂,或者涉及到版权问题。 在实际应用中,这样的转换服务可能会被集成到...
- CSS样式兼容性:确保HTML中的CSS样式正确地应用到PDF中可能需要一些调试工作,因为不是所有的CSS属性都在PDF中得到完全支持。 - 图像处理:图片的分辨率和大小可能需要调整以适应PDF格式,同时要考虑跨域问题。 - ...
对于链接,iTextPDF会将其转换为PDF中的超链接,但可能无法保留原始的HTML锚点。 此外,标签中的"xpdf"通常指的是XPDF工具集,它是一个命令行工具,用于处理PDF文档。虽然本示例未直接使用XPDF,但在某些场景下,如...
这个“Java使用iText将html转pdf并下载demo”的主题将深入讲解如何使用iText库实现这一功能。 首先,我们需要理解iText的基本用法。iText库提供了多种API,可以用来创建PDF文档、添加文本、图像、表格等元素。在...
本文将详细讲解如何使用Java实现这一功能,包括HTML转PDF以及在PDF中添加印章。 首先,我们需要一个库来处理HTML转PDF的任务。在Java中,一个常用的库是`Flying Saucer`,它能够将HTML渲染为PDF格式。`Flying ...
在Java编程环境中,将一个URL链接的内容转换为PDF文件是一个常见的需求,这通常涉及到网络请求、HTML解析以及PDF生成等多个步骤。以下是一个详细的步骤指南,涵盖了这个过程中的关键知识点: 首先,我们需要处理URL...
标题“java实现office、wps转pdf,pdf转word”指的是利用Java编程来实现在不同办公文档格式间的转换,特别是从Microsoft Office和WPS格式转换为PDF,以及从PDF反向转换为Word文档。 首先,让我们讨论从Office和WPS...
至于提供的压缩包文件"Java-html转pdf"和"Java-htmlתpdf",它们可能是示例代码、依赖库或者其他与转换相关的资源。要使用这些文件,你需要将它们解压缩,并按照项目的结构和需求进行整合。 总之,Java结合Flying ...
本项目提供了一个Java实现HTML转PDF的解决方案,适用于Eclipse开发环境。 1. **Java与PDF库** Java中用于生成PDF的库有很多,如iText、Flying Saucer、PDFBox等。其中,Flying Saucer是一个常用的库,它可以将HTML...
在Java编程环境中,将URL内容转换为PDF文件是一项常见的需求,尤其在数据抓取、文档保存或自动化报告生成等场景中。"java URL转PDF文件(完美支持中文)"的主题着重于如何利用Java库来实现这一功能,并且确保中文字符...
java实现html转pdf,包括解决base64图片以及中文不显示问题
然后,我们写入中文文本到PDF中。当然,你需要替换`"你的中文文本"`为你实际的TXT文件内容。 3. **使用Flying Saucer**: 如果你发现PDFBox在处理中文字符方面仍然存在问题,可以尝试使用Flying Saucer库,它基于...
2. **字体管理**:HTML中的某些字体可能在PDF中不支持。为解决这个问题,你可以通过`FontProvider`类指定自定义字体文件,并将其加载到`ITextRenderer`中。这样,HTML中的特殊字体在转换时会被正确呈现。 3. **设置...
使用java把html转换为标准的PDF文件,完美可运行 第一种:html的文件 第二钟:html格式的字符串 我们先来讲一下第一种情况: 1.市面上有很多的html转pdf的方法,但是不是受限于中文的限制就是受限于css样式的丢失...
综合来看,Java HTML转PDF插件主要涉及的是Java编程、PDF处理技术以及可能的Web渲染引擎,而压缩包中的文件则指向了Qt库,可能用于在Java应用中实现更复杂的HTML渲染和转换。在实际开发中,根据项目需求和资源,可以...
你也可以考虑使用专门为Java设计的HTML转PDF库,如PDFreactor、Flying Saucer或HtmlUnit,它们通常提供更丰富的API和更好的集成。 在实际项目中,你可能需要处理更复杂的情况,比如设置PDF页面大小、自定义CSS样式...