- 浏览: 20456 次
- 性别:
- 来自: 武汉
文章分类
最新评论
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
发表评论
-
谷歌验证码
2013-04-09 12:12 957原创随笔】强大的谷歌开源免费验证码reCAPTCHA ... -
读取zip文件
2013-02-27 11:07 666package com.me.admin.test; impo ... -
spring mvc
2013-01-14 17:33 595Spring MVC 框架搭建及详解 您的评价: ... -
实现基于Spring框架应用的权限控制系统
2013-01-02 11:34 719实现基于Spring框架应用 ... -
url重写
2012-11-19 17:26 797>猎头职位: 陕西: 西安:senior java en ... -
发送邮件
2012-11-15 15:36 575package coffeecatwebmail; impo ... -
获得ip
2012-11-13 16:24 469public class IP { /** * * ... -
怎么修改mysql数据库的密码
2012-11-12 10:01 524GRANT ALL PRIVILEGES ON *.* TO ... -
密码加密
2012-11-08 10:55 478public class MD5 { public stat ... -
自己做的上線的網站
2012-10-09 10:12 600http://www.polyvision.com.hk/ ... -
有用文檔
2012-09-13 18:18 554<pre name="code" c ... -
java中的文件上傳
2012-08-06 14:38 647[Java] Spring2文件上传 ... -
關於java學習的友情鏈接
2012-08-06 14:26 428http://www.g4studio.org/forum-5 ... -
object C
2012-07-27 17:37 586http://www.verycd.com/entrie ... -
Struts2基于注解的Action配置
2012-07-18 16:49 643Struts2基于注解的Action配置 ... -
时间转换的单例模式
2012-07-18 10:21 632/* *时间转换 */ package com.loko ... -
s2s2h3搭建
2012-07-11 18:08 637SSH 环境搭建完整教程 一、SSH ... -
ssh搭建
2012-07-11 18:00 793分享 返回分享首页» 分享 ... -
stuts2配置
2012-07-11 17:49 501struts2环境配置 struts2框架 ... -
转码的方案
2012-07-10 17:48 4Eclipse编码格式修改 2010-07-14 2:54 ...
相关推荐
以下是一些关于“Java将PDF生成图片”的核心知识点: 1. **PDF处理库**:在Java中,我们可以使用第三方库如Apache PDFBox、iText和PDF Clown等来处理PDF文档。这些库提供了丰富的API,用于读取、解析和操作PDF文件...
在这个特定的案例中,我们关注的是一个经过修改的Delphi PDF生成控件,它已经解决了中文显示的乱码问题。这个控件的名称为llPDFLib,版本为v3.6,并且包含了完整的源代码,这对于开发者来说非常有价值,因为源码可以...
在iOS开发中,PDF生成是一项常见的需求,例如创建电子报告、产品手册或者用户指南等。这个"IOS源码应用Demo-PDF生成类(将文本,html网页生成pdf的类)"是一个实用的示例,可以帮助开发者理解如何在iOS应用中实现这...
**iText PDF生成方案** iText是一个开源的Java库,专门用于创建和修改PDF文档。在IT领域,尤其是在文档处理和报告生成方面,iText是一个非常实用的工具。本方案将详细探讨如何利用iText来生成PDF文件,以及相关的...
在IT领域,了解并掌握PDF生成器的使用是十分重要的技能之一。 PDF生成器的实现通常涉及到以下几个关键技术点: 1. **页面描述语言**:PDF文件基于PostScript页面描述语言,用于定义文档的布局、文本、图像和图形。...
PDF生成缩略图是将PDF文档中的页面转换成小尺寸的图像表示,通常用于预览、索引或在文件管理器中快速查看PDF内容。在IT领域,这涉及到PDF处理和图像处理技术。以下是一些关于如何在C#中生成PDF缩略图的关键知识点: ...
PDF生成器是一款针对Windows 7操作系统设计的软件工具,它主要功能是将各种文档格式转换为标准的PDF(Portable Document Format)文件。在Win7环境下,用户可以通过将PDF生成器设置为虚拟打印机来实现这一转换过程。...
PDF生成器是一款小巧而实用的软件工具,专为创建PDF文档设计。它的主要功能是将各种格式的文件,如Word文档、Excel表格、图片或HTML网页等,转换成标准的PDF格式,便于阅读、分享和打印。这款工具的大小仅为2M,这...
PDF(Portable Document Format)是一种广泛...这两个文件提供了一个很好的起点,可以帮助你进一步探索和实践PDF生成技术。在实际工作中,根据需求选择合适的库,结合这些代码示例,能够有效地完成PDF文件的生成任务。
1、 pdfWriter1():使用QpdfWriter和Qpainter进行纯文字版的pdf生成和绘制,并进行了分页显示。 Pdf生成在当前目录下的pdf_test.pdf 2、 pdfWriter2():使用QPdfwriter 和QPainter创建pdf报告,关键是对页面的布局...
Java生成PDF文件是一种常见的技术需求,特别是在开发报告生成、电子发票、文档自动化等领域。PDF(Portable Document Format)格式因其...通过深入学习这些库的API,你可以实现更高级的功能,以满足各种PDF生成的需求。
结合以上知识点,你可以创建一个C#应用程序,从JSON配置文件读取PDF生成的相关参数,如页面大小、字体样式等,然后使用iTextSharp或其他库生成PDF。同时,程序可以支持动态更新配置,以适应不同的PDF生成需求。 ...
这个库的独特之处在于它可以在资源有限的嵌入式系统上运行,这通常是一个挑战,因为PDF生成通常需要大量的计算和内存资源。MCU(微控制器单元)是小型、集成的计算机系统,常用于自动化和物联网设备,它们可能没有像...
Sphinx 中文搜索优化和pdf生成方法_20181103.pdf,由于 sphinx 编译 PDF 的过程中使⽤用了了 latexpdf 组件,该组件在 windows/macOS/Linux 上安装⽅方 式和使⽤用⽅方式均有不不同,建议直接使⽤用 Docker 环境来...
博客园博客PDF生成器是一款专为博客园用户设计的实用工具,它允许用户将自己在博客园上发表的文章集合导出为PDF格式的文档,方便离线阅读、备份或者分享。这款工具通常适用于那些希望保存自己的博客内容或者需要将一...
7. `System`:这表示项目引用了.NET Framework的基础类库,其中包括了各种系统级别的类型和功能,可能在PDF生成过程中需要用到。 在实际使用中,通过iTextSharp库,我们可以创建一个`Document`对象来表示PDF文档,...
二维码生成器和PDF生成器是两个在IT领域中常见的实用工具。在Java Web开发中,它们经常被用于创建可扫描的二维码以及制作专业的文档。以下将详细解释这两个工具及其使用方法。 首先,二维码(Quick Response Code)...
在Java开发中,生成PDF文档...总之,Java结合Itext库可以有效地生成PDF文档,并通过合理的工具类设计,实现高效、灵活的PDF生成功能。通过分页和添加水印,不仅可以确保内容的完整呈现,还能增加文档的安全性和专业性。
在IT行业中,生成PDF文档是一项常见的任务,特别是在报告、手册或者网页内容转化为印刷格式时。`flying-saucer-pdf` 是一个强大的Java库,它允许开发者将HTML内容转换为高质量的PDF文档。这个库特别适合那些需要从...
通过这个"生成PDF报表练习(LV2018)",你可以逐步学习和掌握LABVIEW中的PDF生成技巧,进一步提升你的程序设计能力。不断实践和探索,你会发现LABVIEW不仅是一个强大的编程工具,还是一个创造无限可能的平台。