首页 > 解决方案 > 无法使用 sed 命令编辑 pdf 文件

问题描述

我有一本 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 文件会阻止编辑,我正在寻找绕过它的方法。

标签: bashpdfsed

解决方案


我使用了一个 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

应该这样做。


推荐阅读