我尝试将 PDF 转换为 PNG,但输出图像始终为 A4,但源 PDF 非常大。这是我的命令:
-dNOPAUSE ^
-dBATCH ^
-dSAFER ^
-sDEVICE=png16m ^
-dFirstPage=1 ^
-sOutputFile="D:\PDF.png" ^
"D:\PDF.pdf" ^
-sPAPERSIZE=a1
我尝试了几个选项(-r、-g、-sDEFAULTPAPERSIZE),但都没有奏效。
如何强制输出图像尺寸?
PS:我的PDF文件
我尝试将 PDF 转换为 PNG,但输出图像始终为 A4,但源 PDF 非常大。这是我的命令:
-dNOPAUSE ^
-dBATCH ^
-dSAFER ^
-sDEVICE=png16m ^
-dFirstPage=1 ^
-sOutputFile="D:\PDF.png" ^
"D:\PDF.pdf" ^
-sPAPERSIZE=a1
我尝试了几个选项(-r、-g、-sDEFAULTPAPERSIZE),但都没有奏效。
如何强制输出图像尺寸?
PS:我的PDF文件
您链接到的 PDF 文件只有 1 页。这意味着您的命令行参数-dFirstPage=1
没有任何影响。
此外,您的-sPAPERSIZE=a1
参数不应该是最后一个(它在这里没有任何影响——因此 Ghostscript 从输入 PDF 的页面大小中获取默认大小,即 A4)。相反,它应该出现在"D:\PDF.pdf"
(必须是最后一个)之前的某个地方。
看起来您想要一个大小为 A1 的 PNG,并且您的操作系统是 Windows(从您提供的部分命令行猜测)?
试试这个(它添加到命令行并将参数按正确的顺序排列,同时还使用技巧-dPDFFitPage=true
将其缩短一点):-o
gswin32c.exe ^
-o "D:\PDF.png ^
-sDEVICE=png16m ^
-sPAPERSIZE=a1 ^
-dPDFFitPage=true ^
"D:\PDF.pdf"
这应该会为您提供大小为 1684x2384 像素、72dpi 的 PNG(这是所有 Ghostscript 图像输出的内置默认值,如果未指定其他分辨率则使用)。对于分辨率和页面大小的不同组合,请添加-rXXX
和-gNNNxMMM
(而不是-sPAPERSIZE=a1
)的变体,但一定要保留-dPDFFitPage=true
....
如果您只想要不同的分辨率,您也可以保留-sPAPERSIZE=a1
并添加-r100
或-r36
或。-r200
请注意,与默认输出的 72dpi 相比,增加分辨率可能不会提高图像质量。这取决于嵌入在 PDF 页面中的图像的分辨率。但它肯定会增加文件大小......
function pdf2png-mutool() {
#: "mutool draw [options] file [pages]"
# pages: Comma separated list of page numbers and ranges (for example: 1,5,10-15,20-N), where
# the character N denotes the last page. If no pages are specified, then all pages
# will be included.
local i="$1"
local out="${pdf2png_o:-${i:r}_%03d.png}"
[[ "$out" == *.png ]] || out+='.png'
command mutool draw -o "$out" -F png "$i" "${@[2,-1]}"
#: '`-r 300` to set dpi'
}