`
294676001
  • 浏览: 10417 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

package com.pd4ml.pdf; 

import java.awt.Insets; 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.StringReader; 

import org.zefer.pd4ml.PD4Constants; 
import org.zefer.pd4ml.PD4ML; 

import com.lowagie.text.FontFactory; 

public class ConverterPdf { 
    public static void main(String[] args) throws Exception { 
        ConverterPdf converter = new ConverterPdf(); 
        converter.generatePDF_2(new File("F:/demo_ch_pd4ml_a.pdf"), "F:/Noname22.html"); 
        File pdfFile = new File("F:/demo_ch_pd4mlssss.pdf"); 
        StringBuffer html = new StringBuffer(); 
        html.append("<html>") 
            .append("<head>") 
            .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />") 
            .append("</head>") 
            .append("<body>") 
            .append("<font face=\"KaiTi_GB2312\">") 
            .append("<font color='red' size=22>显示中文</font>") 
            .append("</font>") 
            .append("</body></html>"); 
        StringReader strReader = new StringReader(html.toString()); 
        converter.generatePDF_1(pdfFile, strReader); 
    } 
    // 手动构造HTML代码 
    public void generatePDF_1(File outputPDFFile, StringReader strReader) throws Exception { 
        FileOutputStream fos = new FileOutputStream(outputPDFFile); 
        PD4ML pd4ml = new PD4ML(); 
        pd4ml.setPageInsets(new Insets(20, 10, 10, 10)); 
        pd4ml.setHtmlWidth(950); 
        pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4)); 
        pd4ml.useTTF("java:fonts", true); 
        pd4ml.setDefaultTTFs("SimHei", "Arial", "Courier New"); 
        pd4ml.enableDebugInfo(); 
        pd4ml.render(strReader, fos); 
    } 

    // HTML代码来自于HTML文件 
    public void generatePDF_2(File outputPDFFile, String inputHTMLFileName) throws Exception { 
        FileOutputStream fos = new FileOutputStream(outputPDFFile); 
        PD4ML pd4ml = new PD4ML(); 
        pd4ml.setPageInsets(new Insets(5, 20, 20, 20)); 
        pd4ml.setHtmlWidth(1000); 
        pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4)); 
        pd4ml.useTTF("java:fonts", true); 
        pd4ml.setDefaultTTFs("SimHei", "Arial", "Courier New"); 
        pd4ml.enableDebugInfo(); 
        pd4ml.render("file:" + inputHTMLFileName, fos); 
    } 
} 

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

 

分享到:
评论
4 楼 jwei0791 2017-09-01  
使用你的DEMO,会提示下面的。
not yet in cache: java:fonts/pd4fonts.properties
3 楼 bsysman 2014-05-20  
2 楼 亦梦?亦真! 2013-08-01  
博主,您打包的那个下载下来只有256K啊,而且解压不成攻
1 楼 y.long 2012-08-09  

相关推荐

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

    此外,PD4ML的跨平台性,特别是其对Linux操作系统的兼容性,使其成为Java开发者在各种系统环境下生成PDF的理想工具。 1. **HTML到PDF的转换**:PD4ML的核心功能是将HTML文档或网页内容转换为PDF格式。它解析HTML...

    解决PD4ML导出pdf中文乱码问题

    在IT行业中,PDF(Portable Document Format)...总之,解决PD4ML导出PDF中文乱码问题需要综合考虑编码设置、字体支持以及代码中的处理逻辑。通过调整这些因素,可以确保PDF文档正确地显示中文字符,从而提升用户体验。

    使用PD4Ml将html转pdf需要

    此外,PD4ML支持自定义字体映射,这在处理中文、特殊字符或定制的Web字体时特别有用。开发者可以通过提供一个字体目录和映射文件,让PD4ML知道如何正确渲染HTML中的字体。 对于CSS样式的支持,PD4ML会尽可能地保留...

    利用PD4ML将html生成pdf 所需jar包及样例

    通过解析HTML和CSS,PD4ML可以忠实于源代码地将网页内容转换为PDF格式,支持表格、图片、链接、字体样式等元素。 要开始使用PD4ML,第一步是获取相应的jar包。在提供的压缩包中,你应该能找到名为“PD4ML”的JAR...

    PD4ML 实测Java将HTML导出为PDF 成功解决中文乱码问题

    最后,我们来看"Pdf4Html.java",这应该是一个示例程序或者模板代码,演示了如何使用PD4ML API将HTML转换为PDF,并解决中文乱码问题。在这个Java源文件中,可能会包含如下关键步骤: 1. 引入必要的库:导入PD4ML和...

    pd4ml导出pdf(支持中文)

    【pd4ml导出PDF(支持中文)】技术解析 在IT行业中,生成PDF文档是一项常见的需求,特别是在数据报告、用户手册或者网页内容保存等方面。pd4ml是一个强大的Java库,它允许开发者将HTML内容直接转换为高质量的PDF...

    pd4ml转换html至pdf

    在Java项目中使用pd4ml,首先需要下载相关的jar包,包括pd4ml主库以及可能需要的字体包(以支持中文等多语言显示)。这些jar文件可以直接添加到项目的类路径中,或者如果使用Maven或Gradle构建系统,可以通过配置...

    PD4ML JAR包 PDF生成

    PD4ML是一款强大的Java库,专门用于将HTML内容转换为高质量的PDF文档。这款库以其易用性和灵活性著称,使得开发人员能够轻松地在Java应用程序中集成PDF生成功能。在"PD4ML JAR包 PDF生成"这个主题中,我们将深入探讨...

    PD4ml所有jar包依赖,HTML转PDF。

    在Java开发环境中,PD4ml是一个非常实用的工具,尤其是在需要将网页内容、报告或者邮件正文导出为PDF格式时。 首先,我们来详细了解PD4ml的工作原理。PD4ml的核心是它对HTML和CSS的解析能力。它使用了一个内置的...

    pd4ml html转pdf

    **pd4ml** 是一个基于Java的库,用于将HTML内容转换为高质量的PDF文档。这个库特别适合Java开发者在项目中实现从网页或者HTML文本生成PDF的需求。它支持多种CSS样式,使得转换后的PDF能尽可能地保持与原始HTML相似的...

    pd4ml_pdf_pd4ml_PD4ML的jar包_

    3. **图像处理**:PD4ML能够嵌入HTML中的图像到PDF中,支持JPEG、PNG、GIF等多种图像格式。同时,它还可以根据需要调整图像的大小和质量,以适应PDF的输出要求。 4. **表格和列表**:PD4ML可以正确处理HTML中的表格...

    利用PD4ML将html 生成PDF 并展示(前台、后台、jar包)

    PD4ML是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。本教程将详细讲解如何利用PD4ML在前台和后台环境中将HTML生成PDF,并介绍所需的资源和示例代码。 首先,我们需要理解PD4ML的基本工作原理...

    用PD4ML把HTML转pdf(包含页眉,页脚,页数,插入图片)

    至于插入图片,PD4ML支持从URL、文件系统或内存中加载图片,并将其嵌入到PDF中。在HTML中,你可以使用`&lt;img&gt;`标签,指定`src`属性为图片的路径或URL。PD4ML在转换时会自动处理这些图像,确保它们在PDF中正确显示。...

    使用pd4ml将html转pdf的相关jar和代码

    `pd4ml`是一个Java库,专门用于将HTML内容转换为高质量的PDF文档。本篇文章将详细阐述`pd4ml`的工作原理、使用方法以及如何通过提供的代码示例进行实际操作。 `pd4ml`的核心功能是解析HTML并将其转换为PDF格式。它...

    pd4ml html转pdf 解决了中文乱码

    1.html 转 pdf 会保留原有样式 css,用到时直接...2.windows,linux下都没有问题,解决了中文乱码 3.在html中用&lt;font face='KaiTi'&gt;&lt;/font&gt;包含body face值可以改,但要和fontspd4下的fonts.properties里边设定的值一致

    pd4ml将HTML文件转换成PDF文件

    【pd4ml将HTML文件转换成PDF文件】 pd4ml是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。这个工具在IT领域非常有用,因为很多应用程序需要将网页或者HTML报告导出为PDF格式,以便于打印、存档...

    pd4ml在线转pdf

    【pd4ml在线转pdf】是一个工具或服务,主要用于将HTML内容转换成PDF格式的文档。这个工具可能基于Java开发,因为提到了“jar包”,这通常是Java应用程序的可执行文件。pd4ml是一个流行的Java库,它允许开发者将HTML...

Global site tag (gtag.js) - Google Analytics