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

Bash 如何使用PDFTK(或其他命令行应用程序)查找和替换现有PDF文件中的文本,bash,pdf,pdftk,Bash,Pdf,Pdftk,我的PDF文档的每一页上都有一行字符串: %REPLACE% 我想找到并替换为另一个字符串 有人知道如何使用命令行应用程序(如PDFTK)来实现这一点吗 这给了我一个重要的线索,不过我想要更直接的 谢谢。您可以尝试修改PDF的内容,如下所示 解压缩PDF的文本流 pdftk file.pdf output uncompressed.pdf uncompress 使用sedsed将文本替换为其他文本 sed -e "s/ORIGINALSTRING/NEWSTRING/g" <uncom

我的PDF文档的每一页上都有一行字符串:

%REPLACE%

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

有人知道如何使用命令行应用程序(如PDFTK)来实现这一点吗

这给了我一个重要的线索,不过我想要更直接的


谢谢。

您可以尝试修改PDF的内容,如下所示

  • 解压缩PDF的文本流

    pdftk file.pdf output uncompressed.pdf uncompress
    
  • 使用sedsed将文本替换为其他文本

    sed -e "s/ORIGINALSTRING/NEWSTRING/g" <uncompressed.pdf >modified.pdf
    
  • 注意:这种方法并非每次都成功,主要原因是字体子集设置将在一个步骤中完成,非常简单:

    changepagestring-o-v infle.pdf搜索正则表达式替换str outfile.pdf


    然而,与当前接受的答案一样,这是命中或未命中的,并不能像预期的那样适用于所有文件。

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

    灵感:

    我无法使用从Google Docs导出的PDF文件(即使我选择arial作为唯一字体)。我担心我只能使用其他应用程序来编写页面,然后尝试您编写的非常简单和精彩的代码…使用pdfedit,您可以有更多机会(如果字体完全嵌入)编辑文本内容-pdfedit也可以在没有gui的命令行中使用(有关命令行实用程序,请参阅其网站)请注意,这仅在文本使用PDF格式的
    Tj
    命令以及纯ASCII字符时有效。一旦使用八进制、十六进制或雕文参考,您就迷路了。这是否回答了您的问题?
    pdftk modified.pdf output recompressed.pdf compress