Ghostscript PDF到PNG:输出始终为595x842(A4)

时间:2012-04-10 15:27:08

标签: ghostscript

我尝试将PDF转换为PNG,但输出图像始终为A4,但源PDF非常庞大。这是我的命令:

-dNOPAUSE ^
-dBATCH ^
-dSAFER ^
-sDEVICE=png16m ^
-dFirstPage=1 ^
-sOutputFile="D:\PDF.png" ^
 "D:\PDF.pdf" ^
-sPAPERSIZE=a1

我尝试了几个选项(-r,-g,-sDEFAULTPAPERSIZE),但都没有。

如何强制输出图像尺寸?

P.S:我的PDF file

2 个答案:

答案 0 :(得分:4)

您的链接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像素的PNG(72dpi)(这是所有Ghostscript图像输出的内置默认值,如果没有指定其他分辨率则使用)。对于分辨率和网页大小的不同组合,请添加-rXXX-gNNNxMMM(而不是-sPAPERSIZE=a1)的变体,但请务必保留-dPDFFitPage=true ....

如果您只想要不同的分辨率,还可以保留-sPAPERSIZE=a1并添加-r100-r36-r200。请注意,与默认输出72dpi相比,增加分辨率可能无法提高图像质量。这取决于嵌入在PDF页面中的图像的分辨率。但它肯定会增加文件大小......

答案 1 :(得分:0)

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'
}