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

Rog*_*ger 18 pdf bash pdftk

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

%REPLACE%

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

有谁知道如何使用PDFTK等命令行应用程序执行此操作?

这种民间给了我一个重要的线索,但是我想的东西更直接.

谢谢.

Din*_*ngo 36

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

  1. 解压缩PDF的文本流

    pdftk file.pdf output uncompressed.pdf uncompress
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用sed将文本替换为另一个文本

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

    pdftk modified.pdf output recompressed.pdf compress
    
    Run Code Online (Sandbox Code Playgroud)

注意:这种方式每次都不成功,主要是由于字体子集化

  • 请注意,这仅在文本使用 PDF 中的“Tj”命令以及纯 ASCII 字符时才有效。一旦使用八进制、十六进制或字形引用,您就会迷失方向。 (3认同)
  • 使用 *pdfedit* 您可以有更多机会(如果字体完全嵌入)编辑文本内容 - http://pdfedit.cz/en/index.html (2认同)
  • pdfedit 也可以在没有 gui 的命令行中使用(请参阅其站点以获取命令行实用程序) (2认同)