如何使用PDFTK(或其他命令行应用程序)查找和替换现有PDF文件中的文本

时间:2012-03-26 11:52:42

标签: bash pdf pdftk

我的PDF文档的每个页面都有一个包含此字符串的行:

%REPLACE%

我想找到并替换另一个字符串。

是否有人知道如何使用某些命令行应用程序(如PDFTK?

)执行此操作

folk给了我一个重要的线索,但我想要更直接的东西。

感谢。

3 个答案:

答案 0 :(得分:36)

您可以尝试按如下方式修改PDF的内容

  1. 解压缩PDF的文本流

    pdftk file.pdf output uncompressed.pdf uncompress
    
  2. 使用 sed 将文字替换为其他

    sed -e "s/ORIGINALSTRING/NEWSTRING/g" <uncompressed.pdf >modified.pdf
    
  3. 如果此尝试成功,请使用 pdftk 重新压缩PDF

    pdftk modified.pdf output recompressed.pdf compress
    
  4. 注意:这种方式每次都不成功,主要是由于字体子集化

答案 1 :(得分:0)

changepagestring 只需一步即可完成,就像:

changepagestring -o -v infile.pdf search-regex replace-str outfile.pdf

然而,就像当前接受的答案一样,这是命中注定的,并且无法对所有文件按预期工作。

答案 2 :(得分:0)

对于仅在几页上进行小的更改,inkscape 可以做得很好。它还可以修复图表和表格边框中的一些问题。但是,必须单独处理每一页,并使用 pdfunite 将页面重新粘在一起。 (可以使用 pdfseparate 提取未更改的页面范围。)

灵感: https://tatica.org/2015/07/13/edit-pdf-inkscape/