【发布时间】:2015-01-18 23:18:15
【问题描述】:
我正在使用 WickedPDF 和 Prawn 进行 Rails 项目。我正在使用 WickedPDF 将一些 HTML 转换为 PDF,然后使用 Prawn 向该 PDF 添加内容。
当我向上传的 PDF(不是我创建的 PDF)添加内容时,Prawn 能够毫无问题地添加内容。当我使用 WickedPDF 创建 PDF 时,Prawn 在将内容添加到新的 WickedPDF 生成的 PDF 时遇到问题。它添加了内容,但内容似乎被缩小了……很多(几乎看不到)。如果我从另一个程序(Gimp、LibreDraw 等)打开相同的 PDF 并导出为 PDF,则新的 PDF 也适用于 Prawn。所以我很肯定这与 WickedPDF 生成的 PDF 的格式有关。我需要 Prawn 来编辑由 WickedPDF 生成的 PDF,或者能够生成可由 Prawn 编辑的 PDF。
我搜索了其他解决方案,发现了 Prawnto(不再存在)、PDFKit(gem 安装程序什么也没做)、PDFcrowd(我付不起),现在我的想法已经不多了。我将查看 wkhtmltopdf 源代码,看看我是否可以进一步理解潜在问题(我对此表示怀疑,对 PDF 文件结构/格式了解不够),但如果有人遇到过这个问题并有任何其他想法。
编辑 1:从 wkhtmltopdf 创建 PDF 后会出现相同的结果。问题不在于 WickedPDF,而在于它使用的库。还没找到原因。
编辑 2:另一个有趣的结果。文本不仅缩小了。我只是将 Prawn 插入的文本的字体大小乘以 128,这样我就可以看到文本了。事实证明,它也被颠倒过来(关于 x 轴)。发生了一些险恶的事情。
【问题讨论】:
-
有趣的解决方案。 WickedPDF 只是
wkhtmltopdf库的包装器。看起来它在某种程度上是一个分辨率问题(不同的 DPI?)。另外,您可以尝试通过wkhtmltopdf手动生成一些pdf,看看会发生什么。 -
@blelump 是的。从命令行使用 wkhtmltopdf 生成 pdf 然后尝试使用 Prawn 编辑的结果是相同的。我意识到 PDFKit 和 WickedPDF 都是基于 wkhtmltopdf 构建的,所以我对其进行了测试。写问题的时候脑子里闪过。另一个有趣的事情是:我将字体大小乘以实际可以看到 Prawn 插入的文本。它不仅会缩小文本,还会将其上下翻转(围绕 x 轴)。
标签: ruby-on-rails pdf wkhtmltopdf prawn wicked-pdf