我需要一种在不失真的情况下将高质量的PDF图形插入Word的方法。
这些图大部分是通过Python和Matplotlib生成的科学图。主要问题是图形中的文本标签无法正确呈现。
我知道您可以将PDF插入为对象,将EPS文件插入为图像,但是这些数字在Word中显示得很差。
因此,我目前的工作流程是使用Inkscape将图形导出为300DPI的PNG文件。但是,图形质量仍然不能令人满意,当我增加DPI时,质量没有明显的提高。
有人知道将高质量图形插入Word的好方法吗?
对于光栅图像,您必须在清晰度和尺寸之间找到折衷方案。如果您知道文档将以600 DPI打印,则可以决定导入具有该定义的图像。但是,如果明天您将拥有一台高清打印机,则应该重新启动。如果增加DPI,则文档将增加大小,并且您的系统将需要更多资源。
如果可以使用矢量图像,则不会出现与图像定义有关的问题,但是会发现与安装的字体有关的问题,或者可以有更大的文件,以防例如绘制10亿个数据。 ..
当您必须在word中导入文件时,您可以:
转到源代码:您可以直接在生成图的脚本中替换或添加所需的格式(以及最终的大小)。从matplotlib站点读取[ 1 ]。最好以矢量图形格式 [ 1b ]保存。
plt.savefig(pp, format='pdf')
plt.savefig(pp, format='png')
plt.savefig(pp, format='svg')
甚至
fig.savefig('test.pdf')
fig.savefig('test.png')
使用imagemagick [ 2 ]或Inkscape [ 2b ]或gimp [ 2b ]将pdf转换为png(或其他光栅格式,tiff,jpg ...)或svg(或其他矢量图形格式)。
这取决于它是否是带有矢量图形[ 3 ]的PDF 。
在第一种情况下,您应该发现一些罕见的渲染或字体问题,但没有定义问题。
在后一种情况下,您必须为最终图像选择浓度和尺寸。
阅读更多有关此答案的内容,例如[ 4 ]。
您将完成类似于以下内容的编写:
convert file.pdf file.svg # If pdf with vector
convert -density 600 file.pdf -resize 4961x7016 mypic.png # With fixed grid
注意
如果PDF文件是使用具有特定定义(例如300 DPI)的光栅图像创建的,则任何将DPI增加到400或600的程序都不会取得太大的成功。:-)
作为经验法则(通常有效) )您可以假定在光栅pdf中有字符串/image
。
因此,例如在Linux下,您可以运行grep
并计算该字符串的出现次数:
grep -c -i "/image" *pdf
MyRasterPdf.pdf:3 # > 0 if raster pdf
MyVectorPdf.pdf:0 # = 0 if vector pdf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句