我有一个相当大的(约100MB)PDF文档,里面有很多图片(作为插图和背景图片),我想要一份没有图片的pdf副本,但是我不知道如何做到这一点。
我不是说要将其转换为纯文本,我希望保留段落/表格/多列的原样。
我对命令行很熟悉,并且有几台不同发行版的计算机可以使用。
我不是说要将其转换为纯文本,我希望保留段落/表格/多列的原样。
我对命令行很熟悉,并且有几台不同发行版的计算机可以使用。
-dFILTERIMAGE
即可。-dFILTERIMAGE
:生成一个去除所有光栅图像的输出。
-dFILTERTEXT
:生成一个去除所有文本元素的输出。
-dFILTERVECTOR
:生成一个去除所有矢量绘图的输出。
gs -o noIMG.pdf -sDEVICE=pdfwrite -dFILTERIMAGE input.pdf gs -o noTXT.pdf -sDEVICE=pdfwrite -dFILTERTEXT input.pdf gs -o noVCT.pdf -sDEVICE=pdfwrite -dFILTERVECTOR input.pdf
gs -o onlyIMG.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf gs -o onlyTXT.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf gs -o onlyVCT.pdf -sDEVICE=pdfwrite -dFILTERIMAGE -dFILTERTEXT input.pdf
下面的图片说明了结果:
上排,从左到右:所有的“文本”都被删除了;所有的“图像”都被删除了;所有的“矢量图”都被删除了。 下排,从左到右:只保留了“文本”;只保留了“图像”;只保留了“矢量图”。
cpdf -draft original.pdf -o version_without_images.pdf
虽然它不在软件仓库中,但你可以在他们的网站上找到一个下载(预编译版本或源代码)。
手册:
15.1 Draft Documents
The -draft option removes bitmap (photographic) images from a file, so that it can be printed with less ink. Optionally, the -boxes option can be added, filling the spaces left blank with a crossed box denoting where the image was. This is not guaranteed to be fully visible in all cases (the bitmap may be have been partially covered by vector objects or clipped in the original). For example:
cpdf -draft -boxes in.pdf -o out.pdf
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
-dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf
/screen
会将位图图像的分辨率设置为72dpi,除此之外还有其他功能。所以,如果您的图像分辨率较低,它可能会增加文件大小。这就是为什么我使用了“通常”这个词(意思是“不总是,但很常见”)。随意给任何你想要的东西点踩。 - Rmanofor s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done
。它将生成两个文本文件,您可以使用sdiff -sbB $[file1}.txt ${file2}.txt
进行比较。现在,您完全了解-dPDFSETTINGS=/screen
引入的所有不同设置! - Kurt Pfeifle/screen
中生成比/default
更大的文件——72dpi与150dpi,优化,丢弃EPS预览...但嘿,这不是个大问题。人们会测试并选择更好的解决方案。 - Rmano/screen
的结果非常糟糕。可能是我的记忆出错了,或者我把它和 /epub
混淆了。我给你的命令是根据记忆输入的,因为我相当确定它会显示我想要的内容。现在我重新运行了一遍,我再也看不到我期望的结果了:多年前我进行了更多的扩展测试。然后大量的(CID?/CFF?)字体被光栅化,导致生成的PDF文件大小膨胀。一旦我有更多时间,我必须再次重新审视这个问题... :-) - Kurt Pfeifle