`

pdf生成

    博客分类:
  • java
 
阅读更多

pd4ml技术html导出pdf,支持中文,兼容Linux

javapd4ml .


     java html导出pdf的文章有很多大多都使用的是itext,其实用过的都知道itext有时并不能满足我们的需求,不能兼容html的样式,而且从html页面导出的图片到pdf中也并不好处理。Flying Sauser实现html2pdf,纠错能力差,支持多种中文字体(部分样式不能识别),而且对html的格式也是十分的严格,如果使用一种模版的话使用Flying Sauser技术倒是不错的选择,但是对于不规则的html导出pdf就并不是那么的适用。这时我们就要考虑使用其他的技术,而PD4ML可以满足我们需求,PD4ML实现html2pdf,速度快,纠错能力强可以过滤不规则的html标记,支持多种中文字体,支持css。



Html代码 
1.package com.pd4ml.pdf;  
2. 
3.import java.awt.Insets;  
4.import java.io.File;  
5.import java.io.FileOutputStream;  
6.import java.io.StringReader;  
7. 
8.import org.zefer.pd4ml.PD4Constants;  
9.import org.zefer.pd4ml.PD4ML;  
10. 
11.import com.lowagie.text.FontFactory;  
12. 
13.public class ConverterPdf {  
14.    public static void main(String[] args) throws Exception {  
15.        ConverterPdf converter = new ConverterPdf();  
16.        converter.generatePDF_2(new File("F:/demo_ch_pd4ml_a.pdf"), "F:/Noname22.html");  
17.        File pdfFile = new File("F:/demo_ch_pd4mlssss.pdf");  
18.        StringBuffer html = new StringBuffer();  
19.        html.append("<html>")  
20.            .append("<head>")  
21.            .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")  
22.            .append("</head>")  
23.            .append("<body>")  
24.            .append("<font face=\"KaiTi_GB2312\">")  
25.            .append("<font color='red' size=22>显示中文</font>")  
26.            .append("</font>")  
27.            .append("</body></html>");  
28.        StringReader strReader = new StringReader(html.toString());  
29.        converter.generatePDF_1(pdfFile, strReader);  
30.    }  
31.    // 手动构造HTML代码  
32.    public void generatePDF_1(File outputPDFFile, StringReader strReader) throws Exception {  
33.        FileOutputStream fos = new FileOutputStream(outputPDFFile);  
34.        PD4ML pd4ml = new PD4ML();  
35.        pd4ml.setPageInsets(new Insets(20, 10, 10, 10));  
36.        pd4ml.setHtmlWidth(950);  
37.        pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));  
38.        pd4ml.useTTF("java:fonts", true);  
39.        pd4ml.setDefaultTTFs("SimHei", "Arial", "Courier New");  
40.        pd4ml.enableDebugInfo();  
41.        pd4ml.render(strReader, fos);  
42.    }  
43. 
44.    // HTML代码来自于HTML文件  
45.    public void generatePDF_2(File outputPDFFile, String inputHTMLFileName) throws Exception {  
46.        FileOutputStream fos = new FileOutputStream(outputPDFFile);  
47.        PD4ML pd4ml = new PD4ML();  
48.        pd4ml.setPageInsets(new Insets(5, 20, 20, 20));  
49.        pd4ml.setHtmlWidth(1000);  
50.        pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));  
51.        pd4ml.useTTF("java:fonts", true);  
52.        pd4ml.setDefaultTTFs("SimHei", "Arial", "Courier New");  
53.        pd4ml.enableDebugInfo();  
54.        pd4ml.render("file:" + inputHTMLFileName, fos);  
55.    }  
56.}  

附件中有源码,用到了pd4ml.jar,ss_css2.jar,fonts.jar(包太大全部文件在我的csdn上)下载地址:http://download.csdn.net/detail/sy456zsc/4480028


分享到:
评论

相关推荐

    Java将PDF生成图片

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

    delphi下pdf生成控件,已经进行修改,支持中文显示,完整源码

    在这个特定的案例中,我们关注的是一个经过修改的Delphi PDF生成控件,它已经解决了中文显示的乱码问题。这个控件的名称为llPDFLib,版本为v3.6,并且包含了完整的源代码,这对于开发者来说非常有价值,因为源码可以...

    IOS源码应用Demo-PDF生成类(将文本,html网页生成pdf的类).zip

    在iOS开发中,PDF生成是一项常见的需求,例如创建电子报告、产品手册或者用户指南等。这个"IOS源码应用Demo-PDF生成类(将文本,html网页生成pdf的类)"是一个实用的示例,可以帮助开发者理解如何在iOS应用中实现这...

    itext的PDF生成方案

    **iText PDF生成方案** iText是一个开源的Java库,专门用于创建和修改PDF文档。在IT领域,尤其是在文档处理和报告生成方面,iText是一个非常实用的工具。本方案将详细探讨如何利用iText来生成PDF文件,以及相关的...

    PDF生成器

    在IT领域,了解并掌握PDF生成器的使用是十分重要的技能之一。 PDF生成器的实现通常涉及到以下几个关键技术点: 1. **页面描述语言**:PDF文件基于PostScript页面描述语言,用于定义文档的布局、文本、图像和图形。...

    pdf生成缩略图

    PDF生成缩略图是将PDF文档中的页面转换成小尺寸的图像表示,通常用于预览、索引或在文件管理器中快速查看PDF内容。在IT领域,这涉及到PDF处理和图像处理技术。以下是一些关于如何在C#中生成PDF缩略图的关键知识点: ...

    PDF生成器for win7

    PDF生成器是一款针对Windows 7操作系统设计的软件工具,它主要功能是将各种文档格式转换为标准的PDF(Portable Document Format)文件。在Win7环境下,用户可以通过将PDF生成器设置为虚拟打印机来实现这一转换过程。...

    PDF生成器包含注册码

    PDF生成器是一款小巧而实用的软件工具,专为创建PDF文档设计。它的主要功能是将各种格式的文件,如Word文档、Excel表格、图片或HTML网页等,转换成标准的PDF格式,便于阅读、分享和打印。这款工具的大小仅为2M,这...

    pdf生成源码

    PDF(Portable Document Format)是一种广泛...这两个文件提供了一个很好的起点,可以帮助你进一步探索和实践PDF生成技术。在实际工作中,根据需求选择合适的库,结合这些代码示例,能够有效地完成PDF文件的生成任务。

    QT5生成PDF

    1、 pdfWriter1():使用QpdfWriter和Qpainter进行纯文字版的pdf生成和绘制,并进行了分页显示。 Pdf生成在当前目录下的pdf_test.pdf 2、 pdfWriter2():使用QPdfwriter 和QPainter创建pdf报告,关键是对页面的布局...

    java+pdf生成.zip

    Java生成PDF文件是一种常见的技术需求,特别是在开发报告生成、电子发票、文档自动化等领域。PDF(Portable Document Format)格式因其...通过深入学习这些库的API,你可以实现更高级的功能,以满足各种PDF生成的需求。

    C#实现PDF的自主生成

    结合以上知识点,你可以创建一个C#应用程序,从JSON配置文件读取PDF生成的相关参数,如页面大小、字体样式等,然后使用iTextSharp或其他库生成PDF。同时,程序可以支持动态更新配置,以适应不同的PDF生成需求。 ...

    pdflib mcu生成pdf的库

    这个库的独特之处在于它可以在资源有限的嵌入式系统上运行,这通常是一个挑战,因为PDF生成通常需要大量的计算和内存资源。MCU(微控制器单元)是小型、集成的计算机系统,常用于自动化和物联网设备,它们可能没有像...

    Sphinx 中文搜索优化和pdf生成方法_20181103.pdf

    Sphinx 中文搜索优化和pdf生成方法_20181103.pdf,由于 sphinx 编译 PDF 的过程中使⽤用了了 latexpdf 组件,该组件在 windows/macOS/Linux 上安装⽅方 式和使⽤用⽅方式均有不不同,建议直接使⽤用 Docker 环境来...

    博客园博客PDF生成器

    博客园博客PDF生成器是一款专为博客园用户设计的实用工具,它允许用户将自己在博客园上发表的文章集合导出为PDF格式的文档,方便离线阅读、备份或者分享。这款工具通常适用于那些希望保存自己的博客内容或者需要将一...

    自动生成PDF文件,C#源码

    7. `System`:这表示项目引用了.NET Framework的基础类库,其中包括了各种系统级别的类型和功能,可能在PDF生成过程中需要用到。 在实际使用中,通过iTextSharp库,我们可以创建一个`Document`对象来表示PDF文档,...

    二维码生成器和pdf生成器

    二维码生成器和PDF生成器是两个在IT领域中常见的实用工具。在Java Web开发中,它们经常被用于创建可扫描的二维码以及制作专业的文档。以下将详细解释这两个工具及其使用方法。 首先,二维码(Quick Response Code)...

    java生成pdf工具类

    在Java开发中,生成PDF文档...总之,Java结合Itext库可以有效地生成PDF文档,并通过合理的工具类设计,实现高效、灵活的PDF生成功能。通过分页和添加水印,不仅可以确保内容的完整呈现,还能增加文档的安全性和专业性。

    flying-saucer-pdf 生成pdf解决图片问题 解决中文问题

    在IT行业中,生成PDF文档是一项常见的任务,特别是在报告、手册或者网页内容转化为印刷格式时。`flying-saucer-pdf` 是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。这个库特别适合那些需要从...

    LABVIEW 生成PDF报表练习

    通过这个"生成PDF报表练习(LV2018)",你可以逐步学习和掌握LABVIEW中的PDF生成技巧,进一步提升你的程序设计能力。不断实践和探索,你会发现LABVIEW不仅是一个强大的编程工具,还是一个创造无限可能的平台。

Global site tag (gtag.js) - Google Analytics