我有一本PDF格式的书,使用sed
无法更改其中的任何内容。我真的不能使用LibreOffice进行编辑,因为它是一个300页的文档,其中包含很多图像,并且在打开过程中PC会崩溃。我要做的就是仅在一个位置上更改一个或两个字符(例如,将“ +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文件会阻止编辑,因此我正在寻找一种绕过该方法的方法。
答案 0 :(得分:0)
我已经使用了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
应该这样做。