主要代码参考了 这篇帖子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,可以自行测试。仅在此记录一下,我也正在看 文档,有了新的想法,再加
分享到:
相关推荐
本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。 第1章 正则表达式匹配器 。 1.1 编程实践 1.2 实现 1.3 讨论 1.4 其他的方法 1.5 构建 1.6 小结 第2章 Subversion中...
2.实现思路: 1> 使用html2canvas.js将网页转换为图片 2> 使用jsPdf.debug.js将canvas生成的图片转换为pdf文件 具体实现: 要这样实现首先要引入两个插件: html2canvas.js jsPdf.debug.js 注: 因为ie...
《HTML5 Canvas游戏开发实战》主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读者不仅知其然,而且知其所以然。...
PDF文件转换成html并加水印,之前做的ppt转html在线预览有兼容性问题,所以换了一种思路,先将ppt转成pdf,再转成html文件,即可实现在线预览,代码支持大部分pdf文件转换成html,这是最近做项目碰到的问题后的解决...
利用pdf.js 获取pdf文档并解析成分页的形式显示的demo进行改编,将单个显示图片的分页方式改为全部平铺显示的方式,利用js的for循环方式,动态添加canvas,思路已经说的明白,如果自己不能解决,可获取此demo,如果...
第一部分通过一系列中大型案例全方位对html 5的各个重要知识点进行了详细的讲解,每个案例包含案例概述、页面效果展示、案例所涉及主要知识点(精要)、源代码剖析4个部分,读者既能根据书中的步骤动手实践,又能...
资源名称:jQuery源码分析系列...其独特而又优雅的代码风格改变了Javascript程序员的设计思路和编写程序的方式。 有需要的朋友可以下载看看资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
所以我们可以在服务端启动puppeteer浏览器,打开目标网址,使用chrome浏览器自带的转换功能进行html到pdf的转换。 服务端生成核心代码 首先要安装puppeteer,npm安装可能会出错,最好使用cnpm淘宝镜像安装。 输入 ...
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
《javascript dom编程艺术:第2版》讲述了javascript、dom 和html5 的基础知识,着重介绍dom 编程技术背后的思路和原则:平稳退化、渐进增强和以用户为中心等。这些概念对于任何前端web 开发工作都非常重要。本书将...
以自由使用、开放源代码面向对象框架在其中实现了许多用于并发通信软件Software核心模式ACE提供了组丰 富可复用C包装外观(Wrapper Facade)和框架组件可跨越多种平台完成通用通信软件Software任务其中包括:事 件多路...
本书兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。本书从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以然。 第1篇 初探浏览器安全 1 1...
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
DWZ富客户端框架设计目标是简单实用、扩展方便灵活、快速开发、RIA思路...看demo每个组件演示效果和代码(留意组件html结构)。建议用firebug看html结构、CSS和调试JS都非常方便。初学者可以看看dwz.ui.js和dwz.ajax.js
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...
iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件; Apache PDFBox,生成、合并PDF文档; docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。 比较: iText开源协议为AGPL,而其他两个框架协议均为...
Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...