寻求html 到 PDF最好的开源CONVERTER

w
wzh
楼主 (未名空间)

有谁知道那种CONVERTER是最好的将HTML转换成PDF。GOOGLE了一下,有许多这样的
CONVERTER,较好的不开源,开源的多数不行,连基本的TABLE都转换不全。有那位有经验的大侠,指正那款最好。花了不少时间在网上寻找,不太成功。
f
fantasist

最简便的办法:chrome里打开html,直接print,选择save pdf

效果不一定好,Firefox非常差别用
z
zongxiong

文本格式转换首推Calibre,开源的

【 在 wzh (@[email protected]) 的大作中提到: 】
: 有谁知道那种CONVERTER是最好的将HTML转换成PDF。GOOGLE了一下,有许多这样的
: CONVERTER,较好的不开源,开源的多数不行,连基本的TABLE都转换不全。有那位有经
: 验的大侠,指正那款最好。花了不少时间在网上寻找,不太成功。

e
eidos

可以用headless chrome在程序中转换吗?

【 在 fantasist (一) 的大作中提到: 】
: 最简便的办法:chrome里打开html,直接print,选择save pdf
: 效果不一定好,Firefox非常差别用

w
wzh

多谢各位的回复,我可能没有讲清楚,我在找一款能将HTML(STRING FILE)转换成PDF的API .NET,再用PDF API显示。网络上有许多免费的和收费的API,用了一款免费开源的API TheArtOfDev.HtmlRenderer.PdfSharp,很糟糕,连一个基本的TABLE都RENDER不好。不知那款开源的可以。

教训是以前选择了微软糟糕的RDLC文本,LOADING和RENDER RDLC或PDF及其慢,要想出
一个大约300页的REPORT,需要三四分钟,几乎无法容忍的慢。化了大约三四个月
的时间研究看是否能够改进RDLC的PERFORMANCE,最后微软的技术支持回信说,RDLC文
本就是那样的慢,无法提高。可改进RDLC的技巧有限。

RDLC文本实在坑爹,如果几页的REPORT还可以,如果上百页,或几百页的REPORT,千万不要用RDLC,几乎不能忍受的慢。将你的软件开发推到无解的地步。这么慢的软件几乎没有客户感兴趣。

所以,改用HTML显示REPORT,选择打印成PDF。请有经验的大侠们推荐一款由HTML到PDF的开源API,免得再走弯路,先谢了!

f
fantasist

headless chrome是什么?
你大概是希望有命令行形式的工具批量处理?Chromium是开源项目,理论上自己改代码能实现,但工程量恐怕不小,主要是得熟悉代码库。我之前无聊的时候编译着玩,
setup麻烦不说,在PC上编译一次要花几个小时……我觉得有可能的话还是用别人造好
的工具吧,花点钱也值得。
【 在 eidos (从观念到生活) 的大作中提到: 】
: 可以用headless chrome在程序中转换吗?

d
danielfeng

工具太多了

WeasyPrint和pdfkit都行,可以做成微服务调用,语言无关

HTML转PDF这个核心功能,Python只要10到20行代码即可做成微服务,还是异步高并发的

【 在 wzh (@[email protected]) 的大作中提到: 】
: 多谢各位的回复,我可能没有讲清楚,我在找一款能将HTML(STRING FILE)转换成PDF的
: API .NET,再用PDF API显示。网络上有许多免费的和收费的API,用了一款免费开源的
: API TheArtOfDev.HtmlRenderer.PdfSharp,很糟糕,连一个基本的TABLE都RENDER不好
: 。不知那款开源的可以。
: 教训是以前选择了微软糟糕的RDLC文本,LOADING和RENDER RDLC或PDF及其慢,要想出
: 一个大约300页的REPORT,需要三四分钟,几乎无法容忍的慢。化了大约三四个月
: 的时间研究看是否能够改进RDLC的PERFORMANCE,最后微软的技术支持回信说,RDLC文
: 本就是那样的慢,无法提高。可改进RDLC的技巧有限。
: RDLC文本实在坑爹,如果几页的REPORT还可以,如果上百页,或几百页的REPORT,千万
: 不要用RDLC,几乎不能忍受的慢。将你的软件开发推到无解的地步。这么慢的软件几乎
: ...................

l
lightroom

或者你可以考虑html to latex to pdf. 尤其你懂latex
w
wzh

谢谢各位大侠的指正,其实我开发的这款软件犯了两大错误。(1)不该单机版,应该
做SAAS型的软件,实在没有资源去改动,只能将错就错,没有回头路,等有钱有人时再说。(2)选择错了文本RDLC,本以为微软提供的文本RDLC应该不会对一些基本的工程
报告有困难,没想到走进了死胡同。

D
DarkSky

iText early version is open source.
w
wzh


【 在 DarkSky (d(@[email protected])b) 的大作中提到: 】
: iText early version is open source.

这个开源的API和TheArtOfDev.HtmlRenderer.PdfSharp差不了多少.

不过HTML文本转化成PDF真是飞快!

实在不行就这能花钱了,这些化钱买的LICENSE不知REDISTRIBUTION有没有限制。

r
repast

html 如果是在 react 里面做的,有很方便的方案比如 https://react-pdf.org/

【 在 wzh (@[email protected]) 的大作中提到: 】
: 有谁知道那种CONVERTER是最好的将HTML转换成PDF。GOOGLE了一下,有许多这样的
: CONVERTER,较好的不开源,开源的多数不行,连基本的TABLE都转换不全。有那位有经
: 验的大侠,指正那款最好。花了不少时间在网上寻找,不太成功。

c
chunjuan

他应该说的是puppeteer这种
我做过类似的 npm下下来记得有直接编译好的chromium
效果还不错 不过如果是300页图文表格的话 速度未必快
【 在 fantasist (一) 的大作中提到: 】
: headless chrome是什么?
: 你大概是希望有命令行形式的工具批量处理?Chromium是开源项目,理论上自己改代码
: 能实现,但工程量恐怕不小,主要是得熟悉代码库。我之前无聊的时候编译着玩,
: setup麻烦不说,在PC上编译一次要花几个小时……我觉得有可能的话还是用别人造好
: 的工具吧,花点钱也值得。

c
chunjuan

那就别折腾了 调整下print css
生成个临时文件让用户开浏览器然后打印pdf? 反正chrome可以存pdf

我弄过几个网站这样的 ff打印总是各种问题 chrome基本可以做到没肉眼可见错误

【 在 wzh (@[email protected]) 的大作中提到: 】
: 谢谢各位大侠的指正,其实我开发的这款软件犯了两大错误。(1)不该单机版,应该
: 做SAAS型的软件,实在没有资源去改动,只能将错就错,没有回头路,等有钱有人时再
: 说。(2)选择错了文本RDLC,本以为微软提供的文本RDLC应该不会对一些基本的工程
: 报告有困难,没想到走进了死胡同。

w
wzh


【 在 chunjuan (👍春卷🐱更多春卷👍) 的大作中提到: 】
: 他应该说的是puppeteer这种
: 我做过类似的 npm下下来记得有直接编译好的chromium
: 效果还不错 不过如果是300页图文表格的话 速度未必快

我的REPORT不是在浏览器上实现的,我开发不是网络版工程软件。这个report是基于机械工程的ASME CODES,300页纸是一个正常的REPORT长度,REPORT中有许多基于ASME
CODES计算公式(方程)和表格,少有图。最大型复杂的设备的计算,估计有600页左右。

由于RENDER和LOADING RDLC速度问题,我是分段打印和LAODING的,10页一次,几乎没
有RDLC页面里的计算,全部在后面程序里完成,将结果和方程传到RDLC。但结果还是太慢,估算了一下,230页的一个报告,要化两三分钟完成RDLC到PDF文件的转换,尽管加了一个进度条显示,我自己都无法忍受,用户体验太差了!!

做了一个简单的视频,我临时在YOUTUBE上打开,可以看到整个过程。HTML道是飞快,
160页的一个报告只要14秒左右,但选用了一款不成熟的开源API,形成的PDF文本几乎
不能用。为了不犯同样的错误,所以上此版寻求最佳的API从HTML到PDF建议。也同时忠告慎用RDLC文本,长的REPORT千万别用!
https://youtu.be/EqaZdFQjgP8


c
chunjuan

做得好厉害! 哈哈 这个视频还加个音乐

其实还有个思路 你这个玩意儿卖多少钱 如果卖得贵 里面捆绑一个pdf995的pdf
printer 交点授权费 自己不用折腾?
【 在 wzh (@[email protected]) 的大作中提到: 】
: 我的REPORT不是在浏览器上实现的,我开发不是网络版工程软件。这个report是基于机
: 械工程的ASME CODES,300页纸是一个正常的REPORT长度,REPORT中有许多基于ASME
: CODES计算公式(方程)和表格,少有图。最大型复杂的设备的计算,估计有600页左右。
: 由于RENDER和LOADING RDLC速度问题,我是分段打印和LAODING的,10页一次,几乎没
: 有RDLC页面里的计算,全部在后面程序里完成,将结果和方程传到RDLC。但结果还是太
: 慢,估算了一下,230页的一个报告,要化两三分钟完成RDLC到PDF文件的转换,尽管加
: 了一个进度条显示,我自己都无法忍受,用户体验太差了!!
: 做了一个简单的视频,我临时在YOUTUBE上打开,可以看到整个过程。HTML道是飞快,
: 130页的一个报告只要10秒左右,但选用了一款不成熟的开源API,形成的PDF文本几乎
: 不能用。为了不犯同样的错误,所以上此版寻求最佳的API从HTML到PDF建议。也同时忠
: ...................

w
wzh

加音乐是因为全部报告从RDLC到PDF那段(CLIP)太慢了,怕别人以为死机了^_^。

我上此版来就是想找一款靠谱的API,像这种RDLC garbage文本实在坑人,伤不起!用
它打个RECEIPT、INVOICE什么的,估计还行。

d
danielfeng

单机程序一样可以用网页实现,你搜Electron就知道,可能性能和表现力都秒杀你现有方案,还能直接用Node的轮子

【 在 wzh (@[email protected]) 的大作中提到: 】
: 我的REPORT不是在浏览器上实现的,我开发不是网络版工程软件。这个report是基于机
: 械工程的ASME CODES,300页纸是一个正常的REPORT长度,REPORT中有许多基于ASME
: CODES计算公式(方程)和表格,少有图。最大型复杂的设备的计算,估计有600页左右。
: 由于RENDER和LOADING RDLC速度问题,我是分段打印和LAODING的,10页一次,几乎没
: 有RDLC页面里的计算,全部在后面程序里完成,将结果和方程传到RDLC。但结果还是太
: 慢,估算了一下,230页的一个报告,要化两三分钟完成RDLC到PDF文件的转换,尽管加
: 了一个进度条显示,我自己都无法忍受,用户体验太差了!!
: 做了一个简单的视频,我临时在YOUTUBE上打开,可以看到整个过程。HTML道是飞快,
: 160页的一个报告只要14秒左右,但选用了一款不成熟的开源API,形成的PDF文本几乎
: 不能用。为了不犯同样的错误,所以上此版寻求最佳的API从HTML到PDF建议。也同时忠
: ...................

w
wzh


【 在 danielfeng (公孙欠扁) 的大作中提到: 】
: 单机程序一样可以用网页实现,你搜Electron就知道,可能性能和表现力都秒杀你现有
: 方案,还能直接用Node的轮子
: 右。

木已成舟,要改方案用Electron framework已经有点晚了。据我所知,要想将一款大型工程软件写成跨平台INTERNET版的APP,目前还有些难度,比如ANSYS,SOLIDWORKS,
PRO/E很少有写成INTERNET版的。再说对Electron framework不熟悉。只能在现有的文
本基础上做小改动,没钱的时候做熟悉的事情,等有时间和资源再做大改动,从RDLC转向HTML就够痛苦的了。

g
guvest

Pandoc API ?

https://pandoc.org/using-the-pandoc-api.html

【 在 eidos(从观念到生活) 的大作中提到: 】

: 可以用headless chrome在程序中转换吗?

w
wzh

在此,多谢各位大侠们的指点!仔细拜读了各位大侠们的指正和建议,本人已经有个大概的思路,选择那种API免费开源的或收费的API。