【问题标题】:wkhtmltopdf image as ObjectTypewkhtmltopdf 图像作为 ObjectType
【发布时间】:2013-01-23 04:38:05
【问题描述】:

我搜索了但找不到类似的帖子,所以如果我错过了,我深表歉意。

我在我的 PHP 脚本的命令行中使用 WKHTMLTOPDF,它运行良好,但有一个小问题。

我的项目背景:将假医疗表格生成html页面,并将html页面转换为pdf。 html 是一个基于简单医疗表格的简单表格(就像您在医生办公室填写的表格一样)。 html 页面是表格中的所有文本,没有图像。

我的html页面成功输出到pdf文件,但是当我检查标题信息时:

    obj
    /Type /Catalog
    /Pages 2 0 R
    /Outlines 9 0 R
    /PageMode /UseOutlines
    /Dests <<
    /__WKANCHOR_2 8 0 R

endobj
5 0 obj
<<
/Type /Page
/Parent 2 0 R
/Contents 12 0 R
/Resources 14 0 R
/Annots 15 0 R
/MediaBox [0 0 595 842]
>>
endobj

我真正需要的是将我的 HTML 作为图像存储在 PDF 中,以便标题返回为:

/Type /XObject
/Subtype /Image
/Name /Im0
/Filter [ /DCTDecode ]
/Width 1275
/Height 467
/ColorSpace 10 0 R
/BitsPerComponent 8
/Length 9 0 R

虽然我的 HTML 都是文本,但是否可以使用 WKHTMLTOPDF(或任何其他库)将我的 HTML 页面存储为 PDF 中的图像? PDF 需要专门以这种方式工作,因为我们的软件会从 PDF 中提取图像以显示为缩略图。

此时我已经编写了一个小代码 sn-p 来将我的 HTML 转换为 JPEG,然后再转换为 PDF,但我在该过程中遇到了一个完全不同的问题。

非常感谢任何帮助。我完全被困在这一点上,我乞求希望能解决这个问题。我已经阅读了 WKHTMLTOPDF 文档,但没有找到任何可行的信息。

【问题讨论】:

  • HTML-to-PDF 转换器通常在创建 PDF 之前创建 html 的位图图像,因为这会丢失很多信息和质量。因此,恐怕您将不得不使用其他路线,分别从 html 创建一个位图,然后创建一个仅包含该位图的 PDF。
  • @mkl 感谢您的意见。这就是我害怕的,但完全理解为什么会这样。走另一条路只是一个问题,因为我失去了 8.5 x 11 的字母大小,并且需要开发一种在转换为 PDF 时调整 jpeg 大小的方法。
  • 虽然非常圆润,但您可以做的另一件事是使用 GhostScript 将 PDF 转换为图像 (&gt; convert file.pdf file.jpg),然后将图像转换为 PDF。不确定这是否可行,或者您是否有权在服务器上安装 GS。可以肯定的是,图像的质量不会像您目前获得的 PDF 那样好。
  • 另外,wkhtmltopdf 有一个兄弟; wkhtmltoimage。输出应该非常相似,但是另一个会吐出图像,而另一个会吐出 PDF 文件。因此,您可以将相同的 HTML 提供给兄弟姐妹,他们会为您吐出这两个文件 - 也就是说,如果您可以解决“我们的软件将图像从 PDF 中拉出”的问题,并让它从备用文件中拉出。如果它是您的自制软件,请让开发人员添加一些从备用来源提取图像的方法:)
  • @Nenotlep 感谢您的意见。我采取了“兄弟”路线,现在让我的脚本使用 wkhtmltoimage 将 html 转换为 jpeg,然后再转换为 pdf。输出没有太大损失——如果有的话。无论如何,我已经让我的脚本来做需要的事情。感谢大家的意见。

标签: php image pdf http-headers wkhtmltopdf


【解决方案1】:

利用兄弟 WKHTMLTOIMAGE 和 ImageMagick,我将我的脚本编辑为:

wkhtmltoimage file.html file.jpeg
convert file.jpeg file.pdf

现在pdf中存储了一张图片,可以被其他开发者程序提取出来。

【讨论】:

    猜你喜欢
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    相关资源
    最近更新 更多