bash - 无法使用sed命令编辑pdf文件

标签 bash pdf sed

我有一本 PDF 格式的书,我无法使用 sed 更改其中的任何内容。我真的不能用 LibreOffice 来编辑它,因为它是一个 300 页的文档,有很多图像,而且我的电脑在打开时会崩溃。我需要做的就是只在一个地方更改一两个字符(例如,将“+2”更改为“+3”,其中“+2”在整本书中只出现一次)所以解决方案应该是基本的.

我解压缩它然后尝试在其上使用 sed,sed 没有改变任何东西,虽然 echo $? 会返回 0 .

pdftk file.pdf output uncompressed_file.pdf uncompress
sed -i 's/foo/bar/g' uncompressed_file.pdf
pdftk uncompressed_file.pdf output corrected_file.pdf compress

这段代码适用于另一个文件,我怀疑某些 PDF 文件会阻止编辑,我正在寻找绕过它的方法。

最佳答案

我已经使用 shell 命令来执行此操作。

qpdf --stream-data=uncompress $1 uncompressed.pdf
sed -i "s/("$2")/("$3")/g" uncompressed.pdf
qpdf --stream-data=compress uncompressed.pdf $1

所以如果这是 myShell.sh,那么一个命令行,例如,

myShell.sh yourFile.pdf +2 +3

应该这样做。

关于bash - 无法使用sed命令编辑pdf文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749404/

相关文章:

linux - 我没有从这个 if 语句和使用退出代码的回显提示中得到预期的结果

linux - 使用sed在模式后第n行的文件中插入字符串

pdf - 如何在 Prestashop 中生成 pdf?

java - 编辑浏览器嵌入的pdf并将pdf直接保存到服务器

java - iText pdf具有相同内容的多个页面

c - 如何防止 c 解释 sed

linux - 如何自动为大列表中的每个项目添加双引号和逗号?

mysql - BASH 脚本 - 通过 ssh 连接并运行 mysql 命令

linux - Bash:在后台运行一个可执行文件

bash - 在 bash 中以某种方式格式化数字