15

GhostScriptを使用して(PDFドキュメントページなどから)ページサイズを取得することは可能ですか?「bbox」デバイスを見たことがありますが、PDFページのTrimBox(またはCropBox)ではなく、バウンディングボックス(ページごとに異なります)を返します。(ページボックスの詳細については、 http: //www.prepressure.com/pdf/basics/page_boxesを参照してください。)他の可能性はありますか?

4

3 に答える 3

12

残念ながら、Ghostscriptを使用して、PDF内の(おそらく異なる)ページサイズ(または*ボックス)を取得するのは簡単ではないようです。

しかし、他の可能性も求めたので、各ページ(および埋め込まれた{Trim、Media、Crop、Bleed}ボックスのそれぞれ)のメディアサイズを決定するためのかなり信頼できる方法は、コマンドラインツールpdfinfo.exeです。このユーティリティは、 http: //www.foolabs.com/xpdf/download.htmlのXPDFツールの一部です。「-box」パラメータを使用してツールを実行し、「-f 3」で3ページから開始し、「-l8」で8ページで処理を停止するように指示できます。

出力例:

C:\ downloads> pdfinfo -box -f 1 -l 3 _IXUS_850IS_ADVCUG_EN.pdf
作成者:FrameMaker 6.0
プロデューサー:Acrobat Distiller 5.0.5(Windows)
CreationDate:08/17/06 16:43:06
ModDate:08/22/06 12:20:24
タグ付き:いいえ
ページ数:146
暗号化:いいえ
ページ1サイズ:419.535x297.644ポイント
ページ2サイズ:297.646x419.524ポイント
ページ3サイズ:297.646x419.524ポイント
Page 1 MediaBox:0.00 0.00 595.00 842.00
Page 1 CropBox:87.25 430.36 506.79 728.00
Page 1 BleedBox:87.25 430.36 506.79 728.00
Page 1 TrimBox:87.25 430.36 506.79 728.00
Page 1 ArtBox:87.25 430.36 506.79 728.00
Page 2 MediaBox:0.00 0.00 595.00 842.00
Page 2 CropBox:148.17 210.76 445.81 630.28
Page 2 BleedBox:148.17 210.76 445.81 630.28
Page 2 TrimBox:148.17 210.76 445.81 630.28
Page 2 ArtBox:148.17 210.76 445.81 630.28
Page 3 MediaBox:0.00 0.00 595.00 842.00
Page 3 CropBox:148.17 210.76 445.81 630.28
Page 3 BleedBox:148.17 210.76 445.81 630.28
Page 3 TrimBox:148.17 210.76 445.81 630.28
Page 3 ArtBox:148.17 210.76 445.81 630.28
ファイルサイズ:6888764バイト
最適化:はい
PDF版:1.4
于 2010-06-05T19:02:31.070 に答える
10

その間、私は別の方法を見つけました。これはGhostscriptのみを使用します(必要に応じて)。追加のサードパーティユーティリティは必要ありません。

このメソッドは、PostScriptで記述され、Ghostscriptのソースコードとともに出荷される小さなヘルパープログラムを使用します。toolbinサブディレクトリでファイルを探しpdf_info.psます。

含まれているコメントは、使用されているフォント、使用されているメディアサイズを一覧表示するために、このように実行する必要があることを示しています

gswin32c -dNODISPLAY ^
   -q ^
   -sFile=____.pdf ^
   [-dDumpMediaSizes] ^
   [-dDumpFontsUsed [-dShowEmbeddedFonts]] ^
   toolbin/pdf_info.ps

メディアサイズのみを要求するコマンドラインパラメーターを使用して、ローカルのサンプルファイルで実行しました(使用されるフォントは要求しません)。結果は次のとおりです。

C:\> gswin32c ^
      -dNODISPLAY ^
      -q ^
      -sFile=c:\downloads\_IXUS_850IS_ADVCUG_EN.pdf ^
      -dDumpMediaSizes ^
      C:/gs8.71/lib/pdf_info.ps


  c:\downloads\_IXUS_850IS_ADVCUG_EN.pdf has 146 pages.
  Creator: FrameMaker 6.0
  Producer: Acrobat Distiller 5.0.5 (Windows)
  CreationDate: D:20060817164306Z
  ModDate: D:20060822122024+02'00'

  Page 1 MediaBox: [ 595 842 ] CropBox: [ 419.535 297.644 ]
  Page 2 MediaBox: [ 595 842 ] CropBox: [ 297.646 419.524 ]
  Page 3 MediaBox: [ 595 842 ] CropBox: [ 297.646 419.524 ]
  Page 4 MediaBox: [ 595 842 ] CropBox: [ 297.646 419.524 ]
  [....]
于 2010-06-28T13:16:51.800 に答える
8

純粋なGhostScriptPostScriptのソリューションであり、追加のスクリプトは必要ありません。

gs -dQUIET -sFileName=path/to/file.pdf -c "FileName (r) file runpdfbegin 1 1 pdfpagecount {pdfgetpage /MediaBox get {=print ( ) print} forall (\n) print} for quit"

このコマンドは、PDFの各ページのMediaBoxを1行に4つの数字として出力します。3ページのPDFからの例:

0 0 595 841
0 0 595 841
0 0 595 841

コマンドの内訳は次のとおりです。

FileName (r) file  % open file given by -sFileName
runpdfbegin        % open file as pdf
1 1 pdfpagecount { % for each page index
  pdfgetpage       % get pdf page properties (pushes a dict)
  /MediaBox get    % get MediaBox value from dict (pushes an array of numbers)
  {                % for every array element
    =print         % print element value
    ( ) print      % print single space
  } forall
  (\n) print       % print new line
} for
quit               % quit interpreter. Not necessary if you pass -dBATCH to gs

に置き換え/MediaBox/CropBox、クロップボックスを取得します。

于 2018-10-04T10:08:25.140 に答える