网页批量打印成PDF,并按条件合并成大PDF、生成页码

时间:2024-02-01 15:26:44

题记:因为老板要求将过去一年内系统中的订单合同内容进行打印,并按月进行整理成纸质文件。合同在系统(web系统)中以html形式显示,打印单份都是在网页中右键打印,订单量上千份,每笔订单有两份合同,如果手动打印的话,需要打印2000+次,因为还要按月份进行整理,还要页码,所以先要保存成PDF(因为有电子印章和CSS样式,没法直接保存成Word),还要插入页码。

 

第一步,用pechkin将网页保存为PDF

合同的网址为:http://www.XXX.com//Order/ids/35.html,35为订单的ID,需要打印订单的ID列表是已知的。

合同1的文件名为351.pdf,合同2的文件名为352.pdf

将所有ID的合同到下载到同一目录中。

用的是C#写的脚本,大概用了半个小时所有的PDF下载完成(要是手动的话,按一笔订单两份合同1分钟计算的话,1天480份,大概得两天多吧,还是不带休息的那种。。)。

下面是主要的代码

 

 

 

第二步,将PDF按照月份进行合并成一个大的PDF,并生成页码。

PDF有了,用PDF编辑器进行合并和生成页码,一看,所有的PDF编辑软件合并,生成页码居然都是收费的(费用不高,老板不愿出,我也不愿出,如果有用付费的PDF编辑器的朋友,也可以谈谈感受)

ItextSharp,隆重登场。

 

 创建输出的PDF和页码的字体

 

 因为还要统计每笔订单对应的页码,所以多了一个40Page.txt

40.txt里面是每月对应的订单ID,每生成一个月的大PDF后,40.txt的内容我都换成下个月的。这个合成速度很快,几秒钟就搞定一个月的订单。

 

然后就是统计列表,纸质打印,装订了,这个程序就干不了

 

总结:pechkin有默认的页边距,和直接用网页打印成PDF有区别,比用网页打印的要缩小了,上面的代码只供参考,因为我的代码也没有做整理,有需要经常做上面工作的朋友可以加微信