减少 pgfplots 生成的大图像的 pdf 文件大小

减少 pgfplots 生成的大图像的 pdf 文件大小

我使用 pgfplots 创建了一个图。该图嵌入在文档中。文档的总大小约为 26 MB,而图为 12.5 MB。

该图包含大量数据,因此 pdf 文件非常大,实际上有 12.4 MB(注意:这也是由于我使用了 tikz 的间谍库)。这导致 pdf 阅读器在查看包含该图的页面时变得有点慢。我遇到的最大问题是当我想使用 Adob​​e Acrobat 打印 .pdf 时。当我尝试使用 Envince 打印它时没有出现任何问题。由于该文档很可能会被发布,所以我想修复这个问题,因为(不幸的是)很多人都在使用 Adob​​e Acrobat。

现在我想知道减少文件大小的最佳方法是什么

  1. 我可以选择从图中删除数据
  2. 我可以选择将 pdf 转换为图像格式,如 .jpg 或 .png
  3. 尝试减小 .pdf 文件的大小,http://www.wikihow.com/Reduce-PDF-File-Size,我试过
  4. ...?

现在我想知道最好的方法是什么。

选项 1 实际上不可行,因为我想保留数据,大多数图都彼此叠加,并且由于每个图都具有一定的不透明度级别,您可以看到它们捆绑处的浓度。

选项 2 是可行的,但是这样我会失去矢量格式。在 pdf 查看器中放大会变得像素化。包含该图的文档很可能会被发布,所以我不确定是否需要这个。

选项 3 我尝试过这个但它只能将文件大小减少几 MB,从 12.5 MB 减少到 9 MB,所以没有那么多。

对于有兴趣的人,可以参阅该图的 pdf 文件:https://dl.dropboxusercontent.com/u/20782274/pato_scenario_1_dataloss06_output.pdf

答案1

打印导出单幅图像 PDF 的步骤:

  1. 将其转换/导出为 svg

    inkscape -l reduce_temp.svg pato_scenario_1_dataloss06_output.pdf

  2. 生成 HiDPI 图像:1200dpi - 常见的家用打印机分辨率,4800 - 不会看到太大差别

    inkscape --export-png=reduce_out_1200.png --export-dpi=1200 reduce_temp.svg

    inkscape --export-png=reduce_out_2400.png --export-dpi=2400 reduce_temp.svg

    inkscape --export-png=reduce_out_4800.png --export-dpi=4800 reduce_temp.svg

  3. 将其转换为pdf:

    convert reduce_out_1200.png reduce_out_1200.pdf

    convert reduce_out_2400.png reduce_out_2400.pdf

    convert reduce_out_4800.png reduce_out_4800.pdf

结果:

 ls -lh reduce_* pato_scenario_1_dataloss06_output.pdf 
-rw-r----- 1 miroslav miroslav  12M Feb 10 15:44 pato_scenario_1_dataloss06_output.pdf
-rw-r--r-- 1 miroslav miroslav 657K Feb 10 16:10 reduce_out_1200.pdf
-rw-r--r-- 1 miroslav miroslav 918K Feb 10 16:07 reduce_out_1200.png
-rw-r--r-- 1 miroslav miroslav 1.5M Feb 10 16:10 reduce_out_2400.pdf
-rw-r--r-- 1 miroslav miroslav 2.0M Feb 10 16:09 reduce_out_2400.png
-rw-r--r-- 1 miroslav miroslav 3.2M Feb 10 16:11 reduce_out_4800.pdf
-rw-r--r-- 1 miroslav miroslav 4.3M Feb 10 16:08 reduce_out_4800.png
-rw-r--r-- 1 miroslav miroslav  26M Feb 10 16:05 reduce_temp.svg

如果您想要 PDF 中的图像带有文本描述,即不仅仅在 PDF 中绘制图像,请按照以下步骤操作:

这还有一个缺点,它将文本转换为光栅。它适合打印,但不适合在 PC 上查看。

  1. 生成 PDF/SVG 绘图图像
  2. 将它们转换为 HiDPI png 图像
  3. 将这些图像包含在 TeX 文件中

您可以看到,即使在 1200DPI、1500% 比例下它也能提供(几乎)无损转换: 在此处输入图片描述

此外,它保持图像的大小,100%比例:

在此处输入图片描述

计算机中文本+图像+固定视图的流程

  1. 产生仅绘制图表不含任何文字的图像
  2. 将它们转换为 HiDPI png 图像
  3. 创建图形 - 添加描述、绘图轴等... 在 TeX 文件中将 PNG/光栅图像粘贴到其上。创建起来有点困难,但并非不可能。

相关内容