WEB开发网
开发学院软件开发Java 根据批量URL生成有书签的PDF文档的解决方案 阅读

根据批量URL生成有书签的PDF文档的解决方案

 2009-09-24 00:00:00 来源:WEB开发网   
核心提示: 目的是要根据批量URL生成有书签的PDF文档,实现这个目的分两步走:先解决根据一个URL生成一个PDF文档,根据批量URL生成有书签的PDF文档的解决方案(2),再解决多个PDF合并并生成书签的问题,(1)根据一个URL生成一个PDF文档根据一个URL生成一个PDF文档看似很容易,Xml描述分两

目的是要根据批量URL生成有书签的PDF文档,实现这个目的分两步走:先解决根据一个URL生成一个PDF文档,再解决多个PDF合并并生成书签的问题。

(1)根据一个URL生成一个PDF文档

根据一个URL生成一个PDF文档看似很容易,因为我们有iText,pdfbox这些开源框架,实则不简单,因为要保证生成的pdf文档打开后的效果要和浏览器里的要一样,这无异于做一个浏览器,目前的浏览器尚且存在兼容的问题,所以自己写一个根据html生成pdf的想法很难实现。那么另一个思路就是利用一些网站来实现这个目的,经过尝试,有些网站是需要提供URL和email,人家把生成好的pdf发到你邮箱,这种形式无法通过代码来访问,也就无法批量处理;有些网站只需提交url,就把生成的pdf响应给客户端,这种形式可以通过程序来批量处理,但是生成的pdf与浏览器里的效果相差太远;还有一些网站根本就不支持中文。通过探索,终于找到一个网站提供的C#做的dll可以达到这个要求,利用这个dll,写个简单的C#程序就可以批量的生成pdf了,而且效果相当完美,美中不足的是生成的pdf里有人家的水印。

(2)多个PDF合并并生成书签

多个PDF合并并生成书签可以轻松的用iText搞定,合并是有一定的顺序的,并且书签是树形结构的,因此合并的顺序,书签的层次结构是需要事先确定好的。所以对批量的URL要进行一定的描述,那么很自然的选择xml。

三、实现

我现在越来越觉得,只要不是基础设施的东西,技术上都很简单,关键是你有没有想法。这个实现先从xml描述开始。

Xml描述分两步,先简单的描述一批URL(这里叫做href.h2p.xml),再来描述层次关系(这里叫做outline.h2p.xml)。h2p就是html to pdf的意思

先看href.h2p.xml

Tags:根据 批量 URL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接