重新缩放 PDF 文件

重新缩放 PDF 文件

我有一堆 PDF 文件,我一直用它们来制作 PNG 文件,宽度为 320 像素。我的做法是在 LaTex 中创建宽度为 4.44444 英寸的 PDF,然后在 Zamzar 上转换为 PNG。

我想知道是否有办法使用我的 LaTex 文件制作宽度为 640 像素的双倍比例 PNG。PNG 应该与以前相同,但适当放大(即不仅仅是将每个像素变成 4 个相同的像素)。

有什么办法可以做到这一点?

谢谢

答案1

为什么不直接使用 LaTeX 创建更大的 PDF 文件呢?您可以使用几何学包中设置页面大小,然后使用 \scalebox 或 \resizebox图形包可将文档的任何部分缩放到您想要的大小。(如果里面的所有内容都是文本或矢量图形,那么它将是良好的拉伸,而不是像素重复:如果里面的内容包含光栅图形,则无论如何您都无能为力。)

最后,如果您已经制作了 PDF 并想缩放 PDF,可以使用pdf页面包。例如:

  \documentclass{article}
  \usepackage{pdfpages}
  \begin{document}
  \includepdf[pages=-,scale=2,fitpaper]{myold.pdf}
  \end{document}

用 pdflatex 编译。

您还可以使用绝对高度和宽度来代替比例。有关更多信息,请参阅上面链接的软件包文档。

你为什么要使用 Zamzar?如果你使用 LaTeX,你肯定安装了 dvipng,它可以将普通 LaTeX 创建的 dvi 转换为 PNG。你几乎可以确定安装了 ghostscript,它可以将 PDF 或 PS 转换为 PNG 或各种其他格式。(如果你告诉我你使用的是什么操作系统,我会告诉你要使用哪个 ghostscript 命令。)你可能还安装了 ImageMagick,它可以做更多的事情。还有大量其他免费软件可以使用,其中一些可以为你处理缩放。例如,你可以使用GIMP如果您想要一个图形界面来执行此操作。

答案2

您可以使用 Ghostscript 重新缩放 PDF 页面。这是我昨天用来将 A4 大小的 PDF 缩放到 A6 大小的方法,同时仅选择第 22-27 页作为输出:

gswin32c.exe ^
  -o A6-output.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFFitPage ^
  -g2975x4210 ^
  -dFirstPage=22 ^
  -dLastPage=27 ^
  -dPDFSETTINGS=/prepress ^
   c:/path/to/input.pdf

以上命令示例适用于 Windows。在 Linux 上,只需将 .exe 替换为gs,将 替换^\

-g2975x4210给出输出大小(以像素为单位)。要理解该值,您需要知道我的输入 A4 尺寸为 595 x 842,我想要的 A6 纸张尺寸为 297.5 x 421

A观点是测量 PostScript 或 PDF 尺寸的单位。1 英寸等于 72 点。Ghostscript 的输出设备默认使用 720 dpi(每英寸点数)分辨率。因此,我的“有趣”页面大小为-g2975x4210

要直接转换为 PNG,我应该使用:

gswin32c.exe ^
  -o input_page_%03d_A6.png ^
  -sDEVICE=pngalpha ^
  -dPDFFitPage ^
  -g297x421 ^
  -dFirstPage=22 ^
  -dLastPage=27 ^
   c:/path/to/input.pdf

这样每个 PDF 页就会有一个 PNG 文件。

请注意,我需要更改参数,-g因为 Ghostscript 的图像输出设备的默认分辨率是 72dpi。当然,我可以通过指定分辨率来更改它,比如说-r200x200,但这样我就必须重新计算该-r...值。而我实在是太懒了……

相关内容