Mic*_*yer 26 pdf file-conversion vector-graphics rasterizing image-conversion
是否有任何简单(可编写脚本)的方法将带有矢量图像的PDF转换为带有光栅图像的PDF?换句话说,我想用完全相同(非光栅化)的文本生成PDF,但每个矢量图像都用光栅化版本替换.
我偶尔会在我的Kindle上阅读有关技术文章的PDF文件,并且发现直接阅读PDF文件令人沮丧.值得庆幸的是,亚马逊将PDF 自动转换为Kindle格式,可以很好地回收我尝试过的大多数PDF文本部分.然而,虽然光栅图像似乎使转换过程变得很好,但矢量图像却被严重损坏.如果我可以轻松转换PDF以便所有矢量图像都被光栅化,那将会很棒.
我对任何可能的解决方案感兴趣,但基于Linux或Windows的解决方案更可取.
小智 10
我有一个类似的问题,并使用ImageMagics转换工具(http://www.imagemagick.org/script/index.php)解决了它.它带有Linux并在Windows/Cygwin或OS X上运行良好
convert -density 300 largeVectorFileFromR.pdf out.pdf
使用-density 300可以控制分辨率(作为DPI).
缺点:文本也被光栅化,我知道迈克尔不想要这个.
小智 10
经过几天搜索一些解决方案,基于" 从PDF文件中删除所有文本 "和" 如何将图片添加到现有的pdf文件? "我找到了一个(丑陋)可编写脚本的解决方案:
gs -o /tmp/onlytxt.pdf -sDEVICE=pdfwrite -dFILTERVECTOR -dFILTERIMAGE $INPUT_FILE && \
gs -o /tmp/graphics.pdf -sDEVICE=pdfwrite -dFILTERTEXT $INPUT_FILE && \
convert -density $DPI -quality 100 /tmp/graphics.pdf /tmp/graphics.png && \
convert -density $DPI -quality 100 /tmp/graphics.png /tmp/graphics.pdf && \
pdftk /tmp/graphics.pdf stamp /tmp/onlytxt.pdf output $OUTPUT_FILE && \
rm /tmp/onlytxt.pdf /tmp/graphics.pdf /tmp/graphics.png
Run Code Online (Sandbox Code Playgroud)
我们有三个变量INPUT_FILE,OUTPUT_FILE和DPI.我们通过Ghostscript分割文本和图形内容,将图形图像转换为光栅图像(PNG)并使用pdftk连接两者.
我一直在成功地使用它来转换巨大的矢量图像,用于科学论文.
这有点复杂,但您询问了任何可能的解决方案。此外,该解决方案不可自动化。
1)打开带有矢量图像的pdf Inkscape
。select
然后使用工具(F1
)选择整个图像
2)如果矢量图像由多个svg图形组成,请按Ctrl + G
(对象-->组)
3)剪切分组的svg图像Ctrl + x
4)打开一个新的InkScape窗口Ctrl + n
并粘贴图像Ctrl + v
5)选择文件-->导出位图(Shift + Ctrl + e
),也许你想增加dpi
6) 返回到第一个 InkScape 窗口,文件 --> 导入 ( Ctrl + i
) 并选择之前导出的位图
7)将位图放置到svg图像所在的位置
保存 pdf,矢量图像将替换为位图图像。