java生成pdf方案总结
文章分类:Java编程
java生成pdf方案很多,常用的如下:
1. 利用jacob生成pdf:这种方法调用office的本地方法实现对pdf API的操作,只能在windows平台使用
2. 利用openoffice生成pdf:openoffice是开源软件且能在windows和linux平台下运行
3. itext + flying saucer生成pdf:itext和flying saucer都是免费开源的,且与平台无关,结合css和velocity技术,可以很好的实现。
我们重点介绍第三种方案。它实现的步骤是非常简单的:
1.新建一个ITextRenderer类
2.添加字体
3.设置ITextRenderer的源文档
4.调用layout()方法
5.调用createPdf()方法
6.关闭输出流
代码如下:
Java代码
1.package com.hank.pdfhtml;
2.
3./**
4. * @author Hank
5. * 2009-12-30
6. */
7.
8.import java.io.File;
9.import java.io.FileNotFoundException;
10.import java.io.FileOutputStream;
11.import java.io.IOException;
12.import java.io.OutputStream;
13.import java.net.MalformedURLException;
14.import java.net.URL;
15.
16.import org.xhtmlrenderer.pdf.ITextFontResolver;
17.import org.xhtmlrenderer.pdf.ITextRenderer;
18.
19.import com.lowagie.text.DocumentException;
20.import com.lowagie.text.pdf.BaseFont;
21.
22.public class Html2Pdf {
23. private static void addFonts() throws DocumentException, IOException{
24. if(null == renderer) {
25. return;
26. }
27.
28. // 添加所需的字体
29. ITextFontResolver fontResolver = renderer.getFontResolver();
30.
31. URL fontsUrl = Html2Pdf.class.getResource("/com/hank/fonts/");//该文件夹下放所需字体文件
32. File fonts = new File(fontsUrl.getPath());
33. File[] fileList = fonts.listFiles();
34. for(int i=0; i < fileList.length; i++){
35. fontResolver.addFont(fileList[i].getAbsolutePath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
36. }
37.
38. }
39.
40. public static String print2Pdf(String inputFile) {
41. String url = null;
42. try {
43. url = new File(inputFile).toURI().toURL().toString();
44. } catch (MalformedURLException e) {
45. return null;
46. }
47.
48.
49. String outputFile = inputFile.substring(0, inputFile.lastIndexOf(".")) + ".pdf";
50.
51. OutputStream os = null;
52. try {
53. os = new FileOutputStream(outputFile);
54. } catch (FileNotFoundException e) {
55.
56. return null;
57. }
58.
59. ITextRenderer renderer = null;
60. try {
61. renderer = new ITextRenderer();
62. } catch (Exception e) {
63. return null;
64. }
65.
66. renderer.setDocument(url);
67.
68. // 解决图片的相对路径问题
69. renderer.getSharedContext().setBaseURL("file:/D:/working/HtmlTemp/image/");
70.
71. renderer.layout();
72. try {
73. renderer.createPDF(os);
74. } catch (DocumentException e) {
75. return null;
76. }
77.
78. try {
79. os.close();
80. } catch (IOException e) {
81. return null;
82. }
83.
84. return outputFile;
85. }
86.
87. public static void main(String args[]){
88. String inputFile = "D:/working/HtmlTemp/test.html"; //必须符合W3C标准
89. Html2Pdf.print2Pdf(inputFile);
90. }
91.}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/strawbingo/archive/2010/10/14/5941203.aspx
分享到:
相关推荐
Java作为一种广泛使用的编程语言,拥有丰富的库和框架来生成PDF417条码。在给定的博文链接中,虽然没有提供具体的内容,但我们可以推测作者可能分享了如何在Java环境中创建和使用PDF417条码的方法。通常,这会涉及到...
在Java开发中,生成PDF文档...这个“java生成PDF工具代码”应该包含了以上所述的一些解决方案,特别是针对中文换行的定制代码。如果你正在面临同样的问题,通过研究和理解这些代码,你将能够为你的项目实现相同的功能。
Java包提供的功能是生成PDF417条码,这对于需要在应用程序中集成条码生成能力的开发者来说非常有用。 此Java包包含了反编译和原始文件,这表明它可能是一个开源项目,允许用户查看和修改源代码以适应特定需求。反...
以下是一些关于“Java将PDF生成图片”的核心知识点: 1. **PDF处理库**:在Java中,我们可以使用第三方库如Apache PDFBox、iText和PDF Clown等来处理PDF文档。这些库提供了丰富的API,用于读取、解析和操作PDF文件...
以上就是关于“JAVA在线生成pdf包含jar文件”的主要知识点,涵盖了解决方案的选择、库的使用、代码实现以及可能遇到的问题和解决方案。理解并掌握这些知识,将有助于开发者在实际项目中高效地生成PDF文档。
本项目提供了一个纯Java实现的解决方案,它能有效地完成多个PDF文件的合并,并且支持自定义目录的生成以及页码的添加。 首先,`PDFUtil.java`是这个项目的核心类,它包含了处理PDF的关键方法。PDFUtil可能包含了...
【JAVA生成PDF报表技术详解】 在企业信息系统中,报表生成是一项至关重要的功能,尤其是在B/S架构下,报表的展示和下载需求尤为突出。JAVA作为后端开发的主要语言,提供了多种生成PDF报表的解决方案,其中iText是一...
### 动态生成PDF文档的Java实现 #### 概述 PDF(Portable Document Format)是Adobe公司公布的一种用于全球电子文档分发的开放式标准。它是一种支持多种压缩方式的文件格式,能够确保文档在不同软件平台上的一致性...
这里提到的“java生成pdf需要的包(支持中文,表格换行亲测)”是一个解决方案,它整合了几个关键的库:FreeMarker、Flying Saucer和iText。 1. **FreeMarker**: FreeMarker是一个基于模板的Java模板引擎,常用于...
2. Java代码示例,演示如何加载数据模型并使用Freemarker和Flying Saucer生成PDF。 3. EasyPOI的使用示例,包括如何添加图片、设置水印和实现分页的Excel表格。 4. 可能还有配置文件和依赖库,用于项目的构建和运行...
在Java编程环境中,将图片转换为PDF文档是一项常见的任务,特别是在报告、文档制作或数据可视化中。本教程将深入探讨如何使用...通过熟练掌握这些基础知识,你将能够构建出更复杂的PDF生成解决方案,满足各种业务需求。
总的来说,通过Java结合iText和FreeMarker,我们可以实现动态生成PDF的功能,满足数据可视化的需求。这在报告生成、数据分析、报表展示等场景中非常实用。不过,实际开发中还需要考虑错误处理、模板的复杂性、性能...
总之,这个工具包为Java开发者提供了一个在Eclipse环境下生成PDF的解决方案,结合了iText库的强大功能和GUI的易用性。开发者可以利用这个工具包快速构建自定义的PDF生成应用,满足各种业务需求。
总而言之,Java结合iText库可以实现一套完整的PDF处理方案,包括电子签字、盖章、防伪二维码、水印和文件加密,为PDF的安全使用提供了强大的支持。在实际项目中,这些功能可以根据业务需求进行灵活组合和定制,以...
总的来说,iTextPDF是Java开发PDF文档的强大工具,它提供了一整套完整的解决方案,无论是简单的文本输出还是复杂的文档布局,都能轻松应对。通过熟练掌握iTextPDF,开发者可以在Java应用程序中实现专业级的PDF生成和...
要使用"Flying Saucer Java生成pdf的jar",首先你需要在项目中引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.xhtmlrenderer <artifactId>flying-saucer-renderer ...
总结,iText 2.1.7是Java生成PDF文档的重要工具,配合iTextAsian.jar和iReport.jar,可以满足复杂需求,包括支持亚洲语言和可视化报告设计。虽然这个版本相对较老,但其基本功能依然强大,对于许多项目来说仍然是一...
Java 生成PDF文档的示例代码 Java 生成PDF文档是许多开发者需要掌握的技术,以下是 Java 生成PDF文档的示例代码,主要介绍了使用 iText、Apache PDFBox、docx4j 等框架生成 PDF 文档的方法。 Java 生成PDF文档的...