【问题标题】:How to replace a word in an existing PDF using Ruby Prawn?如何使用 Ruby Prawn 替换现有 PDF 中的单词?
【发布时间】:2011-06-19 16:26:31
【问题描述】:

-你好,Sandeep。我是绝地大师尤达的学徒。我的主人认为 Ruby 社区的力量很强大,因此选择我来完成一个使用 Ruby 语言完成的简单任务:

我需要使用 Prawn PDF gem 来完成任务。我有一个名为 Dooku.pdf 的现有 pdf 文档 - 它包含有关 Evil Count Dooku 活动的敏感信息。在 Dooku.pdf 中有一个名为 {galaxy} 的文本。 {galaxy} 在 pdf 文档的每一页上始终位于相同的位置。

我需要打开 Dooku.pdf,将 {galaxy} 的每个实例替换为 {planet},然后保存/关闭 Dooku.pdf。如何使用 Prawn PDF gem 完成这项任务?

-愿原力与你同在。

【问题讨论】:

  • +1 用于提出创意问题,即使它有点过分。
  • 有点?这就像...超过顶部 640kb,这对任何人来说都应该足够了。

标签: ruby pdf prawn


【解决方案1】:

你不能。 Prawn 是用来写 PDF 的,而不是用来阅读的。

【讨论】:

  • Ruby 中有什么可以实现的吗?想法?
  • 所以您希望解析 PDF 文档,然后重新生成它,替换其中的某些部分?
【解决方案2】:

1) 我是一个星球大战迷,但该死的。

2) 你的“简单任务”甚至一点都不简单。覆盖现有文本并不难……但替换它完全是另一回事。忘记重排现有文本。几乎不可能。

如果覆盖它就足够了,那么您只需要在第一个字符串上绘制一个填充背景颜色的矩形,然后在它上面绘制第二个字符串。我对 Prawn PDF 不熟悉,所以我将把实现细节留给读者练习。

【讨论】:

  • +1 同意。 PDF 不用于内容生成或编辑,它们用于布局控制。只需在原始文本编辑器中打开一个,您就会明白 Mark 的含义。他们充满了 gobbledygook 和其他类似的胡言乱语。
  • 主要是将文本放在每个页面上的预定位置 - 就像页脚(空白点)。 {galaxy} 甚至不必存在。所以绘制框和放置文本没有问题。我只是想知道现有的PDF是否可以做到这一点。如果是这样,如何使用 Prawn PDF 完成这项任务。 @$!#$ 我听说帝国冲锋队...这个位置已经被入侵了。
  • 你尽了最大的努力! - 愿原力与你同在。
【解决方案3】:

迟到了,但在 Ruby 中,您可以调用 Applidok PDF 合并,它允许在任何现有 PDF 上写入用户数据(例如来自 Web 表单)。请参阅 Ruby 文档:http://doc.applidok.com/merge-ruby.html。

【讨论】:

  • 网站似乎已关闭。你知道新地点吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
  • 2014-04-15
  • 2017-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多