【问题标题】:wkhtmltopdf page heightwkhtmltopdf 页面高度
【发布时间】:2012-04-15 01:12:35
【问题描述】:

我正在使用强大的工具 wkhtmltopdf 将 HTML 渲染成漂亮的 PDF 文档(从 PHP 执行)。我现在需要知道我将呈现的 HTML 页面是否适合 PDF 中的“一页”。我发现 wkhtmltopdf 将使用我当前的设置在一页上呈现约 1100 像素的高度。

我想出了首先使用 wkhtml2image 的想法。然后我可以得到可以正常工作的图像尺寸。

不幸的是,图像的渲染需要很长时间,因为我必须循环进行,所以我正在寻找一种更快的方法来做到这一点。

您知道任何可以使用 webkit 呈现 HTML 并返回结果文档尺寸的工具吗?也可以使用 JavaScript 作为助手(将尺寸写入可以提取的 div 中),但我找不到可以完成工作的工具。

有什么想法或替代方法吗?

【问题讨论】:

  • 一个想法:您可以使文档中的所有图像无效,并可能更快地渲染它。您是否尝试将所有出现的 jpeg/gif/png 替换为“无效”?只是一个想法。
  • @Janus - 这可能会使布局分崩离析,或者如果整个页面是一个图像,即图形怎么办...不是一个好主意...
  • 您必须修补 wkhtmltopdf 并重新修补 QT 才能做到这一点,否则它将无法正常工作。我假设这是很多工作。至少有一个基于 wkhtmltopdf 的 Web 服务可以满足您的需求。它有一个位于htm2pdf.co.uk/html-to-pdf-api 的 API,可以为您提供帮助。

标签: php html webkit wkhtmltopdf


【解决方案1】:

据我所知,在生成 PDF 文件本身之前没有可靠的方法来计算页数。这是由于 WebKit 呈现线条的方式以及页面如何被破坏或其他原因 (more info here)。

但是,您可以使用其他工具来计算已生成 PDF 文件中的页数。

您还可以在HTML2PDF in PHP - convert utilities & scripts - examples & demos 上查看@我关于 WKHTMLTOPDF 的另一篇广泛的帖子。也许你会在那里找到有用的信息,而我的代码也有对已生成的 PDF 文件进行页面计数的功能(在加密它的过程中 - FPDF/FPDI 实现)。

【讨论】:

  • 嗨,这就是我对 wkhtml2image 所做的事情。不幸的是它太慢了。我很想找到一种工具,它可以在没有输出但以像素为单位的高度进行渲染。
  • 不,您正在将内容转换为位图数据,这不一样...您可能会让 wkhtmltopdf 以低 DPI 呈现页面,这可能会提高速度...
  • 嗨,我刚试过这个。我付出了很多努力来使 wk 尽可能快。以下是我尝试过的事情:禁用图像、降低 dpi 质量、禁用 javascript、禁用 pdf 压缩。此外,我将源文件和输出文件放在 ramdisk 上。经过所有这些优化后,它的运行速度与以前大致相同。执行后有一个滞后,一开始没有输出。一旦出现第一个输出(加载第 1/6 页),事情就会进展得很快。不幸的是,就我的目的而言,它仍然很慢。
  • 这个问题很难告诉你更多...这取决于您的服务器配置、硬件、您正在使用的文档以及其他 1000 个问题...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2013-07-28
  • 2013-03-28
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多