将HTML转换为PDF的最快方法是什么?

4
我有一些大小为4Mb+的“大”html文件。
然后,通过Pechkin(.NET Wrapper for WkHtmlToPdf static DLL)将其中一个文件转换为PDF,我可以安心睡觉3-5分钟。
输出的PDF文件大小为2Mb+,内部包含约500页。
var html = "...html...";
var data = HtmlToPdf2(res);
Console.WriteLine("HtmlToPdf2 done: " + sw.Elapsed);

...

private static byte[] HtmlToPdf2(string html)
{
    var pechkin = new SimplePechkin(new GlobalConfig());
    var pdf = pechkin.Convert(new ObjectConfig()
                            .SetLoadImages(true)
                            .SetZoomFactor(1.5)
                            .SetPrintBackground(true)
                            .SetScreenMediaType(true)
                            .SetCreateExternalLinks(true)
                            ,html);
}

我的秒表显示:

Start: 00:00:00.0007693
TransformXMLToHTML done: 00:00:03.6661490
HtmlToPdf2 done: 00:03:50.7784590
WriteAllBytes done: 00:03:50.7871326

当用户等待太久时,他们会哭泣。


3
您尝试将原始HTML传递到本地机器上的wkhtmltopdf(http://wkhtmltopdf.org/)命令行并获得可比较的结果了吗?您可以编写一个PowerShell脚本来在计时器中包装它。 - Kyle B.
Vash - Damian,我期望大约1到2分钟的东西。 - Ilya Klementiev
你为什么要将HTML页面转换为PDF文件?如果用户想将其打印为PDF,他们可以使用PDF打印机。 - Chris Marisic
1
到底是谁投了那个关闭票?这是一个完全有效的问题。同时,我也支持@KyleB.的建议。如果结果很接近,那么可能没有优化的方法。然而,如果将其传递给命令行可以更快地得到结果,我建议使用它。 - WGS
wkhtmltopdf 在渲染 HTML 页面时不是非常准确,我发现在更高的分辨率下渲染存在一些问题。如果准确性不是您关注的重点,我肯定会推荐您使用 Wkhtmltopdf。 - spetzz
显示剩余5条评论
1个回答

1
我认为在3-5分钟内创建一个500页的PDF文件是相当合理的。也许这可以作为批处理任务来完成,让用户有一段时间去做其他事情?

这是一个令人沮丧的方式,但如果我不解决这个问题,当然,我将不得不走这条路。谢谢! - Ilya Klementiev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接