`
sealbird
  • 浏览: 586324 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java生成pdf方案总结

阅读更多
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环境中创建和使用PDF417条码的方法。通常,这会涉及到...

    java生成PDF工具代码

    在Java开发中,生成PDF文档...这个“java生成PDF工具代码”应该包含了以上所述的一些解决方案,特别是针对中文换行的定制代码。如果你正在面临同样的问题,通过研究和理解这些代码,你将能够为你的项目实现相同的功能。

    生成PDF417条码的JAVA包

    Java包提供的功能是生成PDF417条码,这对于需要在应用程序中集成条码生成能力的开发者来说非常有用。 此Java包包含了反编译和原始文件,这表明它可能是一个开源项目,允许用户查看和修改源代码以适应特定需求。反...

    Java将PDF生成图片

    以下是一些关于“Java将PDF生成图片”的核心知识点: 1. **PDF处理库**:在Java中,我们可以使用第三方库如Apache PDFBox、iText和PDF Clown等来处理PDF文档。这些库提供了丰富的API,用于读取、解析和操作PDF文件...

    JAVA在线生成pdf包含jar文件

    以上就是关于“JAVA在线生成pdf包含jar文件”的主要知识点,涵盖了解决方案的选择、库的使用、代码实现以及可能遇到的问题和解决方案。理解并掌握这些知识,将有助于开发者在实际项目中高效地生成PDF文档。

    java 多个pdf合并,目录生成(支持自定义目录),页码生成(源码)

    本项目提供了一个纯Java实现的解决方案,它能有效地完成多个PDF文件的合并,并且支持自定义目录的生成以及页码的添加。 首先,`PDFUtil.java`是这个项目的核心类,它包含了处理PDF的关键方法。PDFUtil可能包含了...

    JAVA生成PDF报表[归纳].pdf

    【JAVA生成PDF报表技术详解】 在企业信息系统中,报表生成是一项至关重要的功能,尤其是在B/S架构下,报表的展示和下载需求尤为突出。JAVA作为后端开发的主要语言,提供了多种生成PDF报表的解决方案,其中iText是一...

    动态生成PDF文档的Java实现

    ### 动态生成PDF文档的Java实现 #### 概述 PDF(Portable Document Format)是Adobe公司公布的一种用于全球电子文档分发的开放式标准。它是一种支持多种压缩方式的文件格式,能够确保文档在不同软件平台上的一致性...

    java生成pdf需要的包(支持中文,表格换行亲测)

    这里提到的“java生成pdf需要的包(支持中文,表格换行亲测)”是一个解决方案,它整合了几个关键的库:FreeMarker、Flying Saucer和iText。 1. **FreeMarker**: FreeMarker是一个基于模板的Java模板引擎,常用于...

    利用freemarker 模板生成pdf ,利用easypoi 生成excel(带图片,水印,分页)

    2. Java代码示例,演示如何加载数据模型并使用Freemarker和Flying Saucer生成PDF。 3. EasyPOI的使用示例,包括如何添加图片、设置水印和实现分页的Excel表格。 4. 可能还有配置文件和依赖库,用于项目的构建和运行...

    java将图片生成pdf

    在Java编程环境中,将图片转换为PDF文档是一项常见的任务,特别是在报告、文档制作或数据可视化中。本教程将深入探讨如何使用...通过熟练掌握这些基础知识,你将能够构建出更复杂的PDF生成解决方案,满足各种业务需求。

    java根据模板导出PDF详细教程(包含统计图)

    总的来说,通过Java结合iText和FreeMarker,我们可以实现动态生成PDF的功能,满足数据可视化的需求。这在报告生成、数据分析、报表展示等场景中非常实用。不过,实际开发中还需要考虑错误处理、模板的复杂性、性能...

    pdf生成器,由于java eclipse

    总之,这个工具包为Java开发者提供了一个在Eclipse环境下生成PDF的解决方案,结合了iText库的强大功能和GUI的易用性。开发者可以利用这个工具包快速构建自定义的PDF生成应用,满足各种业务需求。

    java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密

    总而言之,Java结合iText库可以实现一套完整的PDF处理方案,包括电子签字、盖章、防伪二维码、水印和文件加密,为PDF的安全使用提供了强大的支持。在实际项目中,这些功能可以根据业务需求进行灵活组合和定制,以...

    itextpdf.zip(JavaPDF文件生成)

    总的来说,iTextPDF是Java开发PDF文档的强大工具,它提供了一整套完整的解决方案,无论是简单的文本输出还是复杂的文档布局,都能轻松应对。通过熟练掌握iTextPDF,开发者可以在Java应用程序中实现专业级的PDF生成和...

    flying-core Java生成pdf 的jar

    要使用"Flying Saucer Java生成pdf的jar",首先你需要在项目中引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.xhtmlrenderer &lt;artifactId&gt;flying-saucer-renderer ...

    java生成pdf包,IText2.1.7

    总结,iText 2.1.7是Java生成PDF文档的重要工具,配合iTextAsian.jar和iReport.jar,可以满足复杂需求,包括支持亚洲语言和可视化报告设计。虽然这个版本相对较老,但其基本功能依然强大,对于许多项目来说仍然是一...

    Java 生成PDF文档的示例代码

    Java 生成PDF文档的示例代码 Java 生成PDF文档是许多开发者需要掌握的技术,以下是 Java 生成PDF文档的示例代码,主要介绍了使用 iText、Apache PDFBox、docx4j 等框架生成 PDF 文档的方法。 Java 生成PDF文档的...

Global site tag (gtag.js) - Google Analytics