0

我正在使用此命令将页面从 pdf 转换为 jpeg 图像:

magick convert -density 300 sample.pdf output.jpeg

我看到一个白色背景,PDF 的内容显示为一个较小的图像,贴在白色“画布”的左下角谁能帮助解释为什么会发生这种情况以及如何防止这种“收缩”?

我的 PDF 有 14 页。以下是其中一些页面的元数据:

>magick identify sample.pdf
sample.pdf[0] PDF 2286x3600 2286x3600+0+0 16-bit sRGB 6458B 0.016u 0:00.017
sample.pdf[1] PDF 2286x3600 2286x3600+0+0 16-bit sRGB 6018B 0.016u 0:00.020
sample.pdf[2] PDF 2286x3600 2286x3600+0+0 16-bit sRGB 5732B 0.016u 0:00.023

以下是其中一页的实际和预期输出:

实际输出: 实际输出

预期输出:

预期产出

编辑:这是一个示例 PDF:

https://www.dropbox.com/s/0bzu5brfzbedd7i/sample.pdf?dl=0

4

2 回答 2

2

我不确定你为什么会有这种行为。PDF 中有一些东西,可能是一个裁剪框,Imagemagick/Ghostscript 没有拾取。但是你可以使用 -trim 去除多余的白色

magick sample.pdf -trim sample_%d.jpg
于 2022-01-22T21:03:04.503 回答
1

谢谢你的例子

> magick identify sample.pdf
> sample.pdf[0] PDF 2286x3600 

似乎是错误的,因为没有匹配

从 PDF 内容

/Width 1531
/Im0
/Height 2454
/MediaBox [0 0 1531 2454]

on

Page Size:
/CropBox [0 0 919 1473]
919 pt x 1473 pt
32.42 x 51.96 cm
12.76 x 20.45 inches

因此,当图像以@ 120 dpi 插入时没有问题

我们可以在查看器中缩放到 100% 时通过复制检查图像,然后粘贴到说画中,这同意图像是 1531 x 2454 像素

在此处输入图像描述

由于对@fmw42 的评论,决定查看 GhostScript(ImageMagick 依赖于 PDF 处理)是否有影响,当然使用 GS v 9.55 处理该 PDF 没有任何特殊开关会给出警告并产生下面的输出所以这个问题似乎是由最近调用/缩放的 GhostScript 方法引起的。因为使用简单的基于 GhostScript 的图像应用程序(左侧使用 GS 插件的 Irfanview)的行为相同,而其他查看器的问题较小,即使是右侧预览的姊妹产品 MuPDF。因此,Ghostscript 所见并可能用于缩放的文件 Media Box 似乎是罪魁祸首,但在生成期间由其他两个 PDF 处理程序处理。

在此处输入图像描述

一种解决方案是使用一种更简单的方法将图像提取为 PNG,因此查看Xpdf 命令行工具“pdftopng”,它给出了很好的结果,但您需要计算出这种情况下的最佳分辨率是 120(或 240),典型的窗口命令行不需要 .exe,但最好在使用从另一个位置使用的路径作为前缀时使用它。

pdftopng.exe -r 120 -f 1 -l 1 sample.pdf
于 2022-01-22T21:49:42.197 回答