moderncv - pdf 文件大小太大

moderncv - pdf 文件大小太大

我设法弄清楚了如何创建一份完全用现代简历风格。我使用 moderncv 类本身来制作简历和附件(使每个文档成为一个部分,其中嵌入一到几张扫描图像)。对于求职信,我使用基于 moderncv 的提议好的来自穆鲁尼克斯线。

我的问题是附件 pdf 的文件大小。我有很多证书和文件要展示。我扫描了它们并将它们从 pdf 转换为 png,然后使用

\usepackage{float}
\floatstyle{boxed} 
\restylefloat{figure}

以漂亮的方式展示它们。

但是,如果只选择 18 张图片,pdf 的大小为 14 MB,而所有图片加起来为 28 MB。因此,我使用以下方法减小了文件大小:瘸子然后将图像缩放到 1.5 而不是 0.6 - 但结果是不可接受的低分辨率(图像质量差)。

有没有办法摆脱这个困境,即有没有办法将 pdf 文件大小减小到 2-3 MB,并在 moderncv 文档中嵌入大约 18 个几乎整页的 png 图像 - 而不会丢失可读性和过多的图像质量?

编辑:我尝试了黑白,效果很好(!):

-rw-r--r-- 1 tj users  1288744 25. Sep 20:27 scan1.png
-rw-r--r-- 1 tj users    70618  6. Okt 15:19 scan1b.png
-rw-r--r-- 1 tj users   496796  6. Okt 18:02 scan1c.png
-r-xr-xr-x 1 tj users  1743427 25. Sep 14:26 scan 1.pdf

scan1 是从 pdf 到 png 的默认转换,scan1b 是缩小图像尺寸的结果(不幸的是,无法读取),scan1c 是黑白的 scan1 - 不到一半的大小,相当不错。

答案1

没有软件包makemypdfsmaller.sty可以在不删除信息的情况下减小 PDF 文件大小。但是,您可以采取以下措施:

减少图像数量

你真的需要包含 18 张图片吗?也许 16 或 12 张就够了。

减小图像尺寸

您可以使用 imagemagick(或 gimp 等)来缩小图像尺寸。您必须试验哪些值是可以接受的。

convert -geometry 75% input.png output.png

减少颜色数量

尤其是当图像包含白色背景上的文本或只有几种颜色(如证书通常所含)时,您可以显著减小图像大小。尝试不同的值,例如 4、8、16

convert -colors 16 input.png output.png

optipng在文件上运行

optipng减少颜色数量后,程序可以将文件缩小约 1% 到 4%。虽然不多,但无损。压缩率最高的最慢设置是-o7

optipng -o7 input.png

增加 PDF 压缩

设置\pdfcompresslevel9。这也无济于事,但也许有助于将其压缩到刚好适合文件大小限制。

缩小最终 PDF

如果您已经创建了 PDF 或无法再访问图像,则可以使用 ghostscript 降低最终 PDF 的分辨率。例如,使用设置-dPDFSETTINGS=/ebook。这是一个例子。

gs \
  -sOutputFile=output_file.pdf    \
  -sDEVICE=pdfwrite               \
  -dNOPAUSE                       \
  -dBATCH                         \
  -dPDFSETTINGS=/ebook            \
  input_file.pdf

/ebook将分辨率设置为 150 DPI。其他设置为 /screen(75 DPI) 或/print(300 DPI)。

答案2

在尝试将所有简历 PDF 文件(求职信、简历、附件)合并为一个 PDF 文件时,我发现使用下面的合并脚本也是缩小 PDF 文件的完美方法,所以我想分享它,你可以找到原始这里它将总大小超过 5 MB 的文件缩小为一个小于 1 MB 的文件:

gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite
\ -sOutputFile=output.pdf file1.pdf file2.pdf file3.pdf

如果经常使用它,你可以考虑创建如下的 bash 脚本:

#!/bin/sh
gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$@"

然后你可以简单地使用它:

mergepdf output.pdf file1.pdf file2.pdf file3.pdf

将 a4 更改为 letter 或您正在使用的任何其他纸张尺寸。

相关内容