`

html2pdf 实现思路和代码

阅读更多

主要代码参考了 这篇帖子http://www.iteye.com/topic/509417 ,写的非常不错。尤其看他的的解决问题的思路特别受启发,我在看这篇帖子之前也看到了flying-saucer ,并且下载了jar包做了例子,但是没有成功我就匆忙放弃了,又踏上了寻找的路途。 以后要记得看 要找的项目的介绍,如果合适,就去看文档,文档里面一般是非常全面的。

首先itext就不用说了,自己去google。 直接上saucer的介绍:

 

Flying Saucer takes XML or XHTML and applies CSS 2.1-compliant stylesheets to it, in order to render
 to PDF (via iText), images, and on-screen using Swing or SWT. The library implements (basically) the
 entirety of CSS 2.1 and aims to be fully compliant with the W3C specification; it includes a small
 handful of CSS 3 features.

 意思: saucer支持 xml和xhtml css2.1,并且可以生成pdf,图片,这个貌似是 java可视化界面。

这个库实现了 全部css2.1并致力于 符合w3c标准,同时包含一些css3的属性,如 @page,可以用来定制 pdf的宽高和margin。

又从下面看到,它没有支持传统的html,只支持xhmtl和css; 它支持xhtml+css要弱于 xml+css。

看来还可以生成image,这也是个不错的东东。

 

我第一次实验saucer时 就用了 html,悲剧啊 

还有它对中文支持情况,如果你打算在html中使用中文,就必须在 css中全局定义 字体。并在 代码中 添加该字体文件。否则是不能显示中文的。

 

上代码

 

public static void main(String[] args) throws Exception {  
	        String inputFile = "index11.html";  
	        System.out.println(new File(inputFile).getAbsolutePath());
	        String url = new File(inputFile).toURI().toURL().toString();  
	        String outputFile = "firstdoc.pdf";  
	        OutputStream os = new FileOutputStream(outputFile);  
	        ITextRenderer renderer = new ITextRenderer();  
	        renderer.setDocument(url);
	  
	        // 解决中文支持问题  
	        ITextFontResolver fontResolver = renderer.getFontResolver();

	        fontResolver.addFont("C:/Windows/Fonts/SIMSUN.TTC



", BaseFont.IDENTITY_H, 
BaseFont.NOT_EMBEDDED);   // 你可以把该文件放到项目中,这样打包后就不用依赖机器环境了
			

// 我这里指定为sinsun 是因为我在css中指定 了字体为 宋体

	        // 解决图片的相对路径问题    (这里我发现不用指定 ,图片显示也会正常,只是图片必须要指定为相对路径)
	       // renderer.getSharedContext().setBaseURL("file:/D:/grails-work/html2pdf/");  
	          
	        renderer.layout();  
	        renderer.createPDF(os);  
	          
	        os.close();  
	}  
  

 

rar中有html和css图片,还有生成的pdf,也有需要的jar,可以自行测试。仅在此记录一下,我也正在看 文档,有了新的想法,再加

分享到:
评论

相关推荐

    贪吃蛇游戏实现思路及源代码.pdf

    本文将探讨如何使用HTML5来实现贪吃蛇游戏,包括游戏的实现思路、关键代码解析以及涉及的技术点。 首先,游戏的操作是通过键盘的上、下、左、右按键来控制贪吃蛇的移动。当贪吃蛇吃到食物后,它的长度会增加一个...

    代码之美(中文完整版).pdf

    本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。 第1章 正则表达式匹配器 。 1.1 编程实践 1.2 实现 1.3 讨论 1.4 其他的方法 1.5 构建 1.6 小结 第2章 Subversion中...

    非html5实现js版弹球游戏示例代码共22页.pdf.z

    【标题】与【描述】提及的是一个名为"非html5实现js版弹球游戏示例代码共22页.pdf.z"的压缩文件,这显然是一款使用JavaScript编写的、不依赖HTML5特性的弹球游戏的源代码示例。通常,这种游戏会利用JavaScript的DOM...

    java实现自动静默打印功能(csdn)————程序.pdf

    下面将详细介绍实现思路、技术知识、技术细节和具体代码实现。 一、实现思路 要实现自动打印功能,我们需要考虑以下几个方面: 1. 读取本地打印机服务 2. 服务端打印肯定不行,需要一个客户端 3. 应用程序需要和...

    js实现拖拽的基本思路.pdf

    在实现拖拽功能时,使用JavaScript可以完成通过鼠标来操作页面元素位置的交互效果。基本思路如下: 1. 为元素绑定事件处理器:首先需要选择一个可以拖拽...在实际编码过程中,需要根据上述思路和逻辑修正并完善代码。

    ASP校园论坛的设计与实现(源代码+论文).zip

    源代码部分可能包括HTML、CSS、JavaScript以及ASP文件,而论文可能以PDF或DOC格式存在。 总的来说,这个项目为学习ASP Web开发和理解论坛系统设计提供了宝贵的资源。通过研究源代码和论文,不仅可以提升编程技能,...

    html+css文档.pdf

    该文档涵盖了 Html+Css 编辑工具、代码格式、编码规则、文件存放位置、制作思路等方面的规定和建议。 一、基本概要 Html+Css 规范文档的基本要求是网页制作的最基本要求,即页面效果与 PSD 设计稿效果达到统一。...

    毕业答辩-ASP《计算机专业英语》网上教学系统设计与实现(源代码论文).rar

    8. 源代码和论文:源代码是系统实现的详细过程,可以帮助其他开发者理解系统架构和编程思路;论文则会详细介绍项目的背景、目标、设计方法、实施过程和效果评估,对于学习和研究具有参考价值。 9. 安全性与优化:...

    Vue导出页面为PDF格式的实现思路

    总结来看,本文不仅提供了一个Vue项目中页面内容导出为PDF的完整实现思路,也详细介绍了在实现这一功能时可能会用到的技术和库。对于希望通过Vue实现相似功能的开发者来说,这是一篇非常有价值的参考资料。

    java 打印pdf文件 也可批量打印

    ### Java打印PDF文件及批量打印实现 #### 一、引言 在企业级应用开发中,经常需要处理各种文档操作,其中包括PDF文件的打印。Java作为一种广泛应用的企业级开发语言,提供了多种方式来实现这一功能。本文将详细...

    Vue网页html转换PDF(最低兼容ie10)的思路详解

    在Vue项目中,将HTML转换为PDF并确保IE10兼容性是一项挑战,但通过使用html2canvas和jsPdf,我们可以成功地实现这一目标。需要注意的是,这个过程可能需要对原始HTML和CSS进行一些调整,以适应转换的需求。同时,...

    基于HTML5的简单骰子游戏的设计与实现.pdf

    2.JavaScript和JQuery代码的使用:本文使用JavaScript和JQuery代码设计并实现了游戏规则和功能,展示了JavaScript和JQuery代码在游戏开发中的应用。 3.游戏规则及功能的设计:本文设计并实现了游戏规则及功能,即小...

    JAVA动态生成word和pdf.doc

    JAVA 动态生成Word和PDF JAVA动态生成Word和PDF是JAVA开发中的一种常见需求,这里将详细介绍JAVA动态生成Word和PDF的几种方案。 生成Word 1. Jacob方案:Jacob是Java-COM Bridge的缩写,在Java与微软的COM组件...

    office转pdf代码java1

    在这篇博文中,作者提供了详细的步骤和代码示例,可以帮助你快速上手并实现Office文档到PDF的转换。 #### 三、PDF处理相关技术 1. **IcePDF库** IcePDF是另一个强大的库,用于处理PDF文档。它支持多种功能,...

    毕业设计完整版基于ASP的学生信息管理系统的设计与实现(源代码+论文).zip

    “论文”则意味着包含了对该系统设计和实现的理论分析,是理解项目的重要辅助资料。 【压缩包子文件的文件名称】:虽然具体文件内容未列出,但通常一个这样的项目会包含以下几部分: 1. 设计文档:详细说明系统的...

    HTML5 Canvas游戏开发实战.pdf

    《HTML5 Canvas游戏开发实战》主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。...

    PDF文件转换成html并加水印

    PDF文件转换成html并加水印,之前做的ppt转html在线预览有兼容性问题,所以换了一种思路,先将ppt转成pdf,再转成html文件,即可实现在线预览,代码支持大部分pdf文件转换成html,这是最近做项目碰到的问题后的解决...

Global site tag (gtag.js) - Google Analytics