文章 / 公众号历史文章
【下载链接更新,附制作教程】WPS三大件JSA/WPSJS加载项、多维表格所有在线文档离线PDF化
探索是艰难的,看似简单的一个网页html转PDF,还有很多学问。经过优化,【WPS多维表格开发文档.pdf】文件从91M,下降至8.9M,缩小90%大小,按理说,大小缩小了,渲染性能和搜索性能也会得到改善。 下载地址: 【WPS云文档】 WPSJS加载项和多维表格开发文档(全集共10份) https
探索是艰难的,看似简单的一个网页html转PDF,还有很多学问。经过优化,【WPS多维表格开发文档.pdf】文件从91M,下降至8.9M,缩小90%大小,按理说,大小缩小了,渲染性能和搜索性能也会得到改善。
下载地址:
【WPS云文档】 WPSJS加载项和多维表格开发文档(全集共10份)
https://kdocs.cn/l/cvsfgx6B5Dil
经过锲而不舍的努力,这一次,终于收获大满贯,所有在线文档都已下载完,并原样输出合订版PDF文件。前几天出口的多维表格文档,也终将成功转换为PDF并且可代码块智能高亮提示,简直比官网在线浏览不知道要强多少(在线浏览因导航条占位,有些代码还不能完全显示,有些又没有标记javascript语言引起不能高亮关键字)。
最后,所有合订版,都保留原样的舒服样式,并且有完美的书签功能保留,超级完美。
若有相关的数据采集定制服务,请加微信 190262897 详细咨询





最后,这里简单说下制作过程
1、采集数据过程
多维表格的采集,较为简单。每个页面网址不同,抓取到左侧导航栏的所有网址,然后遍历发起所有网址的打开,然后采集右侧的正文的html文本独立保存到每个文件里。
https://open.wps.cn/documents/app-integration-dev/guide/dbsheet/Api/api-instro.html

WPSJS加载宏、JSA宏这边的采集,就没这么顺利,是嵌入了多层frame架构。每个页面网址不变,采集困难度较高,有兴趣的可以过来挑战下。https://open.wps.cn/previous/docs/client/wpsLoad

2、数据整理加工
采集回来的是单页的html文本,最后整理成一个完整的html文件,里面包括所有内容。
使用字符串处理技术完成,html本质是字符串,所以门槛应该不够,有一些html知识,用一个空白模板,在body节点里面塞内容进来即可。

3、html转PDF
部分网页,使用wkhtmltopdf.工具即可。但实际发现,如果要代码块高亮,在多维表格的网页里,使用prism这样的js库,转换不出效果。
wkhtmltopdf.exe –load-error-handling ignore –encoding utf-8 “html文件路径” “pdf文件路径”
终极大法:使用浏览器的打印功能,另存为PDF文件。
对大文件另存为PDF,界面操作,貌似直接卡死,最后使用了无头浏览器的方式,使用pywright这样的库来完成,当然这个库也其他语言版本版本,例如我用的.NET版。

4、书签制作,请出PDF处理的隐形冠军WPS PDF
喜欢使用WORD的人,知道它有个目录导航功能,如果在PDF上也带上这种效果是最好的,当然PDF里的用书签功能就能实现。
在wkhtmltopdf的转换中,可以自带了自动根据网页结构,增加了书签效果。使用浏览器导出PDF就没有了。
一个偶然发现,原来WPS PDF客户端(WPS客户端自带),很贴心地有一个智能添加书签功能。低门槛制作。

顺带提一下,之前的多维表格文件是90M,后来缩减成9M的过程是:原来将所有单个html页面转成PDF文件,再使用WPS的PDF合并功能(性能非常好,也是易上手级别,能用界面谁愿意两眼摸黑用代码来完成),合并成一个合订本的PDF文件,大小巨大,后来,发现用无头浏览器能够抗住大文件导出,文件就缩减许多了。