0

我有一个 pdf,我想用它作为模板来创建一个新的 pdf。目标是将图像放置在原始 pdf 中的特定占位符矩形内。原始 pdf 的创建在我的控制之下,但占位符矩形/边界可能位于 pdf 中的任何位置。我正在考虑使用虚拟图像(相同尺寸)作为原始 pdf 中的占位符矩形。

Prawn gem支持将图像放置在页面内的给定绝对/相对位置。

问题在于,由于矩形或虚拟图像可能位于原始 pdf 中的任何位置,我不知道以下内容使用什么值

pdf.image "/path/to/image", :at => [x,y]虾叫

有没有办法在原始pdf中获取图像的坐标。我的原始理解告诉我,必须渲染整个 pdf 才能知道这一点。那正确吗 ?如果是,那么在内存中渲染 pdf(无头)并获取各种 pdf 对象(如边界矩形、图像等)的坐标的好方法是什么。

只要我可以以编程方式触发它,我就不受语言/运行时的限制。

有什么其他方法可以解决这个问题?

4

1 回答 1

1

不是答案(例如我不知道 Ruby 语言),而是代替任何其他人,因为我还不能发表评论,这就是我的想法。

如果上述条件为真(占位符和替换图像的大小完全相同 + 相同颜色模型,例如 RGB 24 bps)并且您控制模板创建(因此您可以将占位符存储在未压缩的 PDF 中),它可能与原始替换一样快速和肮脏在被视为字节字符串的文件中。例如用红色填充的占位符,然后搜索模式 (0xFF0000) x W*H 并将其替换为原始图像数据。当然,你可以得到任何你喜欢的方式,例如:

转换 my_image.jpg RGB:- | ...

如果此解决方案太脏或条件不准确,则解析页面内容流以构造类似

宽度 0 0 高度 xy cm
/name 做

它也不是最干净的,但是对于大量简单的页面描述, xy是您要查找的坐标。

此外,如果您控制模板创建,为什么不将附加信息存储在 pdf 中,例如 Info 字典中的自定义键,然后在使用模板时将它们读回。

于 2013-10-12T11:36:11.350 回答