最初に、
最初の PDF ページの境界ボックスを決定します。
gs \
-q \
-dBATCH \
-dNOPAUSE \
-sDEVICE=bbox \
-dLastPage=1 \
stackoverflowQuestion.pdf \
2>&1 \
| grep %%BoundingBox
結果の出力は次のようになります。
%%BoundingBox: 119 531 464 814
その意味は:
- 境界ボックスの左下隅は座標にあります
(119,531)
- 境界ボックスの右上隅は座標にあります
(464,814)
値はPostScript ポイント(ここで72 pt == 1 inch
) です。境界ボックスは、ページにインクやトナーの跡を残すグラフィック PDF オブジェクトを含む長方形です。
次に、
PNG を作成します。
境界ボックスの値から導き出すと、幅 345 ポイント ( = 464 - 119
)、高さ 283 ポイント( ) が必要なようです= 814 - 531
。これにより、ページサイズは-g345x283
(ピクセル単位で指定されます。Ghostscript は (特に指定されていない限り) 画像出力にデフォルトで 72 dpi を使用するため、72 px == 1 inch
.
または、バウンディング ボックスから 1 pt 離れたセキュリティ ゾーンを維持することで、画像を最小値より少し大きくすると、次の画像の寸法が得られます-g347x285
。
また、左端から 119 ポイント (「セキュリティ」の場合は 118 ポイント)、下端から 531 ポイント (セキュリティの場合は 530) を切り取る必要があります。
したがって、コマンドは次のようになります。
gs \
-o out.png \
-sDEVICE=pngalpha \
-g347x285 \
-dLastPage=1 \
-c "<</Install {-118 -530 translate}>> setpagedevice" \
-f stackoverflowQuestion.pdf
結果のPNGは次のとおりです。

PNG の品質を向上させるには、解像度をデフォルトの 72 dpi から 720 dpi に上げて、次のコマンドを使用します。
gs \
-o out720dpi.png \
-sDEVICE=pngalpha \
-r720 \
-g3470x2850 \
-dLastPage=1 \
-c "<</Install {-118 -530 translate}>> setpagedevice" \
-f stackoverflowQuestion.pdf
アップデート:
CMD ウィンドウの Windows では、Ghostscript のコンソール アプリケーション名は(ではなく)gswin32c.exe
および/またはです。また、(の代わりに)行継続文字として使用する必要があります。gswin64c.exe
gs
^
\