<!ELEMENT book (chapter+)>
<!ATTLIST book name CDATA #REQUIRED>
<!ELEMENT chapter (chapter*)>
<!ATTLIST chapter name CDATA #REQUIRED>
<!ATTLIST chapter href CDATA #IMPLIED>
在这个方案当中,h2p-file具有十分重要的意义,它作为一种资源被提供下载,也可以在线使用,h2p-file的格式作为一种协议,可以被各大网站支持,
(2)h2p-tool
h2p-tool是处理h2p-file的客户端工具,目前h2p-tool的功能主要有以下三个方面
根据dtd校验h2p-file的合法性,
编辑h2p-file编辑功能包括新建、修改、保存,
根据h2p-file生成有书签的pdf文档,先根据。
目前h2p-tool一部分是用C#开发的,一部分是用Java开发的。不管h2p-tool用什么开发,通过什么方式使用(在线或离线的),只要能处理h2p-file即可。
h2p-tool的功能还可以有如下扩充:
合并h2p-file,解析h2p-file在线阅读(这一点类似于google reader),也可以不需要h2p-tool,直接用xsl展示h2p-file。
下图是h2p生成pdf的一个示例。
二、为什么要推广H2P
其实就是要回答h2p有什么价值。自从有了h2p构想以来,我一直在思考这个问题。
从以下几个方面说明我的思考:
(1)各大网站已经积累了丰富的资料,随着pdf的风行,导出pdf是很多用户的需求,提供pdf导出功能的网站还不多,实际上技术已很成熟,原因在于没有很好的模式。导出pdf是个性需求,网站无法知道用户需要把哪些导出成pdf,而且在服务器端生成pdf,不仅会增加服务器端压力。而且会增加管理员工作量。而如果网站只是提供h2p-file下载,由用户利用第三方工具(也即h2p-tool)自行编辑h2p-file,自行生成pdf,上面的问题就解决了,服务器端压力没有了,只需生成h2p-file,用户可以根据自己的需要对h2p-file进行编辑,生成pdf既满足了个性需求,同时把生成pdf的压力转移了用户,这点小压力对单个用户是可以接受的。
(2)如果网站想支持pdf导出的话,那么只需提供h2p-file,就像rss一样,网站要提供订阅功能,只需提供rss就行
(3)网站可以根据用户的请求动态的生成h2p-file,从而间接的实现根据请求动态生成pdf的功能,这一点意义非凡。
(4)网站提供h2p-file,会导致对网站内容的整理和挖掘,从而促进站内智能搜索的应用。
(5)满足了用户的便捷,就是赢利的开始。关于盈利,在网站广告投放这方面一点都不会受影响,pdf超强的表现力足可以完美的表现广告效果,在h2p-file里可以适当放一些广告链接,同时,h2p-tool上也可以投放广告,h2p-tool在生成pdf的时候也能再适当位置加入广告。把广告固化到pdf文件里,这种方式比在浏览器里显示的广告生命周期要长得多,因为pdf是只读的。
(6)最后一点,是意义上的而非价值上的,那就是如果h2p推广开了,被人们接受了,那么这将是第一个由中国的程序员发起并推广的一个协议,一个互联网应用模式。Bbs、blog、wiki、twitter、rss等等,耳熟能详的东西,有技术含量吗?真正有价值的是这些应用模式,正是这些应用模式推动着互联网的飞速发展。而搜索引擎却集优秀的应用模式和先进的理论思想与技术于一身。
(7)有可能带来其他方面的影响,比如网站内容的提炼和聚合。
三、H2P完善和推广
H2P刚刚产生,是个雏儿,尽管核心思想已经体现出来了,但在形式上和应用上还有需要大幅度的完善。可从以下几个方面展开:
(1)齐心协力共同制定和完善h2p-file的格式,使h2p应用更加便捷和丰富。h2p-file可以分成两个文件独立描述,也可以合为一个,前面已经阐述了。
(2)确定了h2p-file的格式,进一步完善和重新开发h2p-tool,h2p-tool可以有三个方向,一个方向就是目前的方向,开发一个客户端工具,并且使用浏览器的内核,把浏览器的功能集成进来,在java开发方面已经有了JDIC这么一个框架了;第二个方向就是类似google reader的方向,在线解析h2p-file,以树形结构显示连接,提供在线的便捷阅读;第三个方向采取最简单的方式,直接用xsl显示h2p-file。
(3)博克文章、论坛帖子一般至少有三分之一的内容是广告或图片,直接根据URL生成的pdf就显得很臃肿,这是这个方案的缺陷,解决这个问题最简单的思路就是网站针对h2p应用再提供一个URL,根据这个URL得到的内容主要是文字形式的内容,之所以说它简单,是因为现在的界面的输出大多采用的模板技术,在模板上稍作变动,就可以输出没有太多广告和图片的内容。但考虑到网站需要投放广告,可以允许有少量广告,从而就产生了h2p-file质量这个概念,图片越少广告越少,那么生成的pdf就越干净体积就越小,h2p-file质量就越高;反之,生成的pdf就像现在的报纸一样,实质内容淹没在广告里而且体积还很大,h2p-file质量就越低。
(4)如果上面的思路得到了采纳,那么根据一条URL生成单个pdf 的技术就能很好的解决。目前的h2p-tool在这一部分的开发用的是一个C#组件(生成的pdf有水印,我估计这个组件是调用了IE浏览器的功能)。之所以采用这个组件,是因为要保证生成的pdf展现效果和浏览器里的效果完全相同,这无异于做一个浏览器,难度可想而知。如果专门为h2p应用再提供一个URL,根据这个URL得到的内容主要是文字形式的内容,没有复杂的标签和样式,这种情况下,使用iText等框架生成pdf是可行的。Javaeye网站提供的pdf下载和电字书制作得到的pdf就是这种情况,提取博克文章的主体内容生成pdf。
(5)各网站对h2p的支持很简单,只需发布网站内容的h2p-file即可,h2p-file从此就以协议或资源的身份出现在互联网中。
以上三方面的内容分别阐述了h2p应用模式、h2p的意义和价值和h2p完善和发展的方向,回答了为什么要发起这个h2p倡议。敬请各网站管理员考虑我的意见,推动这个新的h2p应用,不仅会各网站带来新的赢利,而且这将是我们这些中国程序员的集体荣耀。
2009-8-7
Javaei网站
相关介绍:
投票:你认为h2p实用吗
H2P介绍
根据批量URL生成有书签的PDF文档的解决方案
pdf生成的解决方案(H2p)之H2P技术细节
pdf生成的解决方案(H2p)之H2P展望
相关推荐
H2可以被嵌入到应用程序中,作为应用程序的一部分运行,这种模式下数据库和应用程序紧密集成,便于管理和部署。 9. **连接池支持** 支持常见的Java连接池如C3P0、DBCP、HikariCP等,可以提高数据库连接的复用率,...
H2Database是一款轻量级、开源的嵌入式和服务器模式的Java数据库,适用于测试、开发和嵌入式系统中的数据存储。它以其高性能、易用性和灵活性而受到开发者的欢迎。本文将深入探讨H2Database的高级特性,帮助你更好地...
- **嵌入式使用**:由于其小巧的体积和简单的API,H2常被嵌入到其他Java应用程序中,作为应用程序的一部分运行。 总之,H2数据库是一个强大而灵活的解决方案,尤其适合于对性能有要求但又不需要大型数据库系统的...
控制台模式则允许独立于应用程序运行,提供了一个Web客户端管理工具,可以通过执行SQL语句和查看模式、表来进行数据库管理。 启动h2database嵌入模式通常涉及将h2database的jar文件添加到项目的类路径中,然后通过...
标题中的“行业数据-2005H2-2018H2中国城镇地区互联网普及率.rar”指的是一个压缩文件,其中包含了有关中国城镇地区从2005年下半年到2018年下半年互联网普及率的数据。这个压缩文件可能是由统计机构或研究团队收集和...
3. **多种模式**: H2支持多种数据库模式,包括单用户模式、多用户模式(TCP服务器)、内存模式(所有数据都存储在内存中)以及混合模式,这使得它能够适应不同的应用场景。 4. **兼容性**: H2数据库设计时充分考虑...
H2就不做很多介绍了。资源包内容列表是我进行H2预研是收集的H2资料,应该是最全面的的了: 1、h2.pdf (H2 API) 2、h2-1.3.173.jar (截止2013-8-15最新的H2.jar) 3、h2-2013-07-28.zip (截止2013-8-15最新的H2服务...
2005H2-2018H2中国农村地区互联网普及率.xls
H2数据库是一个由Java编写的高性能、轻量级的关系型数据库管理系统(RDBMS),它在许多场景下作为开发和测试的理想选择。由于其开源性质,H2数据库得到了全球开发者社区的支持,允许自由使用、修改和分发。下面将...
2005H2-2018H2中国城镇地区互联网普及率.xls
在内嵌模式下,H2数据库直接作为应用程序的一部分运行,无需额外的服务器进程。这对于开发和测试环境特别方便,因为数据库可以直接与应用一起启动和关闭。而服务器模式则允许远程客户端连接到数据库,提供了一种多...
在写的单元测试时,我们往往会遇到一个问题,测试用例所依赖的数据库数据被修改或删除了,或者在一个新的环境下所依赖的数据库不存在,或者数据库服务器挂了,导致单元测试无法通过,进而构建失败。在这种情况下,...
H2 Database是一款基于Java开发的开源内存数据库系统,它同时支持嵌入式模式和服务器模式运行,具备了小型、快速、易于使用的特点,并提供了JDBC接口用于数据库的连接。H2数据库适合嵌入到Java应用程序中,不需要...
H2数据库是一款开源、高性能、轻量级的Java关系型数据库,广泛应用于测试、开发以及嵌入式环境。它支持多种数据库模式,包括MySQL、Oracle等,并且提供了丰富的命令行工具和API,使得数据库的管理与操作变得简单高效...
2. **嵌入式模式**:H2可以作为一个嵌入式数据库运行,这意味着它可以直接作为应用程序的一部分,无需额外的服务器进程。这对于单用户或客户端应用来说非常方便,因为它简化了部署和管理。 3. **独立服务器模式**:...
1. **内存数据库**:H2数据库的一大特色是它的内存模式,这使得数据存储在内存中,读写操作速度非常快。然而,由于数据不持久化到磁盘,一旦数据库关闭,所有数据都会丢失。为了解决这个问题,H2提供了混合模式,...
H2数据库是一款轻量级、高性能的开源关系型数据库系统,设计用于嵌入式和服务器模式的应用。它以其简洁的API、高速度和灵活性而受到开发者的欢迎。H2数据库支持SQL标准,可以方便地与Java应用程序集成,尤其适合于...
H2数据库本身是一个轻量级、开源的Java数据库管理系统,广泛用于嵌入式应用和测试环境,而H2GIS则为其添加了对地理信息系统(GIS)功能的支持,使得用户能够存储、查询和分析具有空间特性的数据。 在Java开发中,H2...
**H2**是一种轻量级的开源关系型数据库管理系统,特别适用于嵌入式应用程序。它由Thomas Mueller开发,并且支持多种模式:既可以作为嵌入式数据库运行在应用程序内部,也可以作为一个服务器模式独立运行。 #### 二...