随笔-11  评论-39  文章-0  trackbacks-0
一切听起来是那么地疯狂:开发一个可以把HTML转化成为PDF的控件,不在现有的PDF控件上完成,因为这个关系到版权的问题。自从和老外合作后,发现自己也对版权变得敏感了,开发的东东里面,再也不想去在别人的基础上去调用,更多的时候是想着自己去实现。
通过两个多月的业余时间的开发,中间经历了N轮的大规模重构(因为原来的设计不太满足一些需求),现在控件越来越OO了,当想到一个调用,就有成千上万个对象在各司其则地计算,内心不由得有点发晕。虽然还有一些BUG,但是已经实现得差不多了。只差对CSS的样式块没有解析,和流化字体文件这两块了。现在想着把里面的一些东西记下来,不知道能不能坚持把它写完。
HTML转PDF的过程中,我把所要解决的问题列成以下几点:
一、PDF的生成
1、PDF文件结构
2、PDF内容结构
3、PDF图片转化
4、PDF字体的转化
二、HTML解析
1、HTML文件结构解析
2、样式解析
3、表格的处理
4、层的处理
三、HTML转PDF
下面将分文对这些问题进行解决。
posted on 2006-01-04 17:34 铁匠 阅读(3097) 评论(17)  编辑 收藏

评论:
#1楼  2006-01-04 17:52 | Koffer [未注册用户]
looking forward
  回复  引用    
#2楼  2006-01-04 18:05 | 黄象贵      
关注~
  回复  引用  查看    
#3楼  2006-01-04 19:19 | smalldust      
这可是一项浩大的工程。
我用IE(mshtml)的IHTMLDocument做过一个数据挖掘的工具,
不知道你在解析HTML的时候是否也用到了呢?
(在IE已经成为Win标准的一部分,使用mshtml不算使用第三方组件吧,呵呵)
  回复  引用  查看    
#4楼  2006-01-04 21:05 | Goodspeed      
非常期待
  回复  引用  查看    
#5楼 [楼主] 2006-01-05 08:44 | 铁匠      
smalldust: 这个工程的时间主要是花在了研究文件格式上了,纯代码行只有五千多行,生成的DLL只有96K.HTML的解析是我自己写了类来实现了,并没有使用HTMLDOCUMENT,因为我觉得这个调用是在COM的基础上的,在设计上感觉不太爽:),页且它的容错性也不太清楚.
谢谢大家的关注,我中午的时候接着写:)
  回复  引用  查看    
#6楼  2006-01-05 11:09 | HardRock      
PDF部分也完全自己实现吗?佩服
为什么不能使用iTextSharp呢?这个是LGPL的,不会担心存在什么侵权的问题
如果有兴趣的话,可以一起讨论iTextSharp。
  回复  引用  查看    
#7楼  2006-01-05 11:11 | 小春      
网上有关HTML转PDF的组件。文章。源代码也比较多了。我还是喜欢用现成的东东。
  回复  引用  查看    
#8楼 [楼主] 2006-01-05 12:16 | 铁匠      
HardRock:因为这个组件的最终应用是一个商用程序,所以这个应该会有不少的麻烦,而且所应用的地方是有权看源码的,所以想用开源的东西改改就用的是行不通的。在国外,软件公司侵权,会被人告得破产的。整个组件,除了里面有用到了一个压缩控件是第三方的外,其它的都是自己实现的。


小春:国内很容易侵权不会被法律追究的,但是这个拿到国外去是不行的:)
  回复  引用  查看    
#9楼  2006-01-05 13:42 | A.Z [未注册用户]
期待公开一下html分析部分我觉得这是重中之重,lz又是自己实现的,不要让大家失望啊
  回复  引用    
#10楼  2006-01-05 14:51 | ttyp      
这不是相当于设计了一个浏览器么?难度很大,参考下firefox
  回复  引用  查看    
#11楼 [楼主] 2006-01-05 15:03 | 铁匠      
ttyp,A.Z:
基本上可以说是和一个简单的浏览器所要的工作差不多,加上脚本引擎,应该能算是一个游览器了.事实上生成PDF的工作量比在界面画出这些内容还有复杂.这些将在我后面的文章中介绍到.谢谢大家关注.
  回复  引用  查看    
#12楼  2006-01-06 14:19 | HardRock      
那说明你没有看iTextSharp的版权介绍,LGPL和GPL的区别是什么?关于iTextSharp在商业上的使用已经说得很明了了。算了,我也无意争论什么,不过很佩服你的精神,PDF和HTML都是两个硬骨头,祝你好运了。
  回复  引用  查看    
#13楼 [楼主] 2006-01-08 18:17 | 铁匠      
HardRock:确实我对开源非常不了解。不过我这两块硬骨头我都已经啃下来了,现在差的是美化和让程序变得更健壮。
  回复  引用  查看    
#14楼  2006-01-26 11:09 | HardRock      
那恭喜你了。
iTextSharp在asp.net上的一些应用
http://aspspider.net/tonyfox/pdf

  回复  引用  查看    
#15楼  2006-03-17 09:43 | 第六世纪 [未注册用户]
如何下载呢?
  回复  引用    
#16楼 [楼主] 2006-03-17 13:40 | 铁匠      
#17楼  2006-05-25 17:19 | 过从心生 [未注册用户]
恭喜你了,HTML至PDF的转换可是块硬骨头啊!期待更多的文章讲解,谢谢
  回复  引用    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印