H2P简介

2009年7月22日,H2P诞生了

日食左 日食右

引言

    2009年7月22日,在这个特殊的一天,几百年不遇的一天,在中华大地的长江流域,发生壮观的日全蚀奇观,值此壮观的时刻,javaei推出H2P,H2P在这伟大的时刻诞生了。

一、什么是 h2p

    H2P —— html to pdf ,是批量把 html 转换成 pdf 的一种工具,准确的说是批量的根据 url 生成 pdf 的一种解决方案。

    为什么是批量的 url ?我们在网上经常阅读到很多优秀的博客文章或优秀的技术帖子,把其 url 加入到收藏夹或另存到本地保存为 html ,以便下次再看,或和其他人分享。保存到本地不是最好的方式,因为为了阅读方便,通常还要保存相关的图片、 rss 、 js 文件等资源,直接收藏其 url 通常是最简单的方式,这样就有很多的 url 。收藏太多的 url 也是个麻烦事,所以一些网站就提供了收藏功能。

    Pdf 是现在大家都喜欢的一种文档格式,小巧而且表现丰富,特别适合阅读和分享。所以现在有很多技术可以实现把 html 转换成 pdf 文档。也有一些网站提供在线的服务,就是根据输入的 url 生成对应的 pdf 。这里介绍的是根据一批 url 生成一个合并的 pdf 文档。

    我自己对这个目标很看好,想当初,买不起书,就在网上看一些连载的教程,想把这些教程保存下来很麻烦,一个个另存为不现实,后来总算可以利用迅雷等下载工具执行“下载全部连接”,去掉一些不是目标的链接,算是可以批量下载了,下载到本地也是一摊子文件和文件夹,尽管是这样,还是可以自动批量了。这里提到的根据一批 url 生成一个合并的 pdf 文档将带来革命性的影响。

    下面的问题是,这一批 url 怎么表示,工具是如何生成一个合并的 pdf 的。

 

二、 h2p 文件

h2p 文件是两个 xml 文件,其中一个是 href.h2p.xml ,一个是 outline.h2p.xml 。 href.h2p.xml 文件很简单,只是用来表示每一个具体的 url ,下面是一个样例:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE href-info PUBLIC "-//JavaEI/JavaEI h2p Configuration DTD href//CN" "http://www.javaei.com/dtd/javaei-h2p-href.dtd">

<href-info>

<href id="KxgYaRxG">

<value><![CDATA[http;//www.163.com]]></value>

</href>

<href id="53Bw5A32">

<value><![CDATA[http://www.sohu.com]]></value>

</href>

<href id="eyEis6ra">

<value><![CDATA[http;//news.163.com]]></value>

</href>

<href id="DMQoSN2t">

<value><![CDATA[http;//sports.163.com]]></value>

</href>

<href id="5vaf3LN7">

<value><![CDATA[http://news.sohu.com]]></value>

</href>

</href-info>

outline.h2p.xml 文件用来描述根据 url 生成的 pdf 是按照什么顺序合并的,以及按照怎样的层次结构生成书签(或者叫目录菜单),下面是一个样例:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE book PUBLIC "-//JavaEI/JavaEI h2p Configuration DTD outline//CN" "http://www.javaei.com/dtd/javaei-h2p-outline.dtd">

<book name=" 我的 PDF 书 ">

<chapter name="163" href="KxgYaRxG">

<chapter name="163 新闻 " href="eyEis6ra" />

<chapter name="163 体育 " href="DMQoSN2t" />

</chapter>

<chapter name="sohu" href="53Bw5A32">

<chapter name="sohu 新闻 " href="5vaf3LN7" />

</chapter>

</book>

这里的 href 值和 href.h2p.xml 文件中 href 标签的 id 值对应。

 

三、使用 h2p-tool

有了 h2p 文件后,就可以利用 h2p-tool 生成我们自己的 pdf 书了。

下面是简单的步骤。

修改 h2p.bat 文件

h2p/h2p.exe href.h2p.xml destdir

java -Xmx512m -Xms512m -classpath lib/run.jar run.Main javaei.pdf.H2PCreator lib outline.h2p.xml destdir

修改蓝色部分,其他请勿修改。

h2p/h2p.exe href.h2p.xml 文件所在路径 指定生成的 pdf 保存的目录

这个命令所做的工作是根据 href.h2p.xml 所描述的 url 生成每一个对应的 pdf ,这一步时间较长,因为工具需要根据 url 访问。

java -Xmx512m -Xms512m -classpath lib/run.jar run.Main javaei.pdf.H2PCreator lib outline.h2p.xml 文件所在路径 指定生成的 pdf 保存的目录

这个命令所做的工作是根据 outline.h2p.xml 所描述的信息把生成的每一个 pdf 合并,并生成书签

然后执行 h2p.bat

四、怎么获得 h2p 文件

获得 h2p 文件有三种方式:直接编写、 h2p-tool 工具生成、 javaei 网站下载。

( 1 )用文本工具直接编写 xml ,当然这种方式太原始,也最简单。

( 2 )使用 h2p-tool工具生成 h2p 文件。

运行 h2p-file-edit.bat 。

这个页签是用来根据 dtd 校验 h2p 文件是否合法

 

h2p 文件是否合法

这个页签录入和编辑(修改节点和删除节点) h2p 文件,树形结构就对应着书签的层次结构。每一个节点的信息由标题和超级链接组成,标题就是标签的标题。保存后会得到 outline.h2p.xml , href.h2p.xml 文件。

 

href.h2p.xml 文件

 

( 3 ) javaei 网站把各期的内容整理成了 h2p 文件。 Javaei 网站的内容本身就全是优秀博客优秀帖子的 url ,因此根据 url 生成 pdf 是 javaei 网站的必然需求,在“整理下载页面 http://www.javaei.com/content/download/index.html ”和“优秀在线连载页面 http://www.javaei.com/content/book/online.html ”都有 h2p 文件的下载。如果某些链接不是自己想要的,可以通过 h2p-tool 编辑。如下界面所示。

 

h2p-tool 编辑

 

五、根据 h2p 文件生成 pdf 样例。

下图是根据 h2p-tool生成的 h2p 文件生成的 pdf 文档的例子。

 

pdf 文档的例子

下图是根据 javaei 网站提供的 h2p 文件生成的 pdf 文档的例子2

 

六、h2p-tool要求的环境

(1).net framework 2.0

(2)jre5.0

七、h2p-tool下载地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值