VBからPDFのページ数を取得するには?

解決


  2003-02-22 20:56:16  No: 106101

はじめまして。

VB6+Indesign2.0で仕事をしています。
スクリプトでIndesign2.0へPDFを配置する際、PDFの
総ページ数が分からずに苦労しています(ありそうも
ない大きなページ数を指定して、エラーで抜けようと
したのですが、総ページ数よりもオーバーした分は、
1ページ目にループしてカバーしてしまう仕様のよう
です)。

Indesign2.0側では取得できないようなので、VB6側で
取得しようと思っています。

とりあえず、オブジェクトブラウザに『Acrobat』を
追加してみましたが、ここからの処理の仕方がわかりません。

よろしくおねがいします。


とろ  2003-02-22 23:10:49  No: 106102

Adobe Acrobat がインストールされているならば、
次のようにして PDF ファイルの総ページ数を取得することができます。
# Acrobat Reader だけしかインストールされてない場合には、
# この方法では、無理かも。

Private Sub Form_Load()
  Dim AcroPDDoc   As Object 'Acrobat.CAcroPDDoc
  Dim bRetValue   As Boolean
  Set AcroPDDoc = CreateObject("AcroExch.PDDoc")  '* オブジェクトの作成
  bRetValue = AcroPDDoc.Open("d:\Sample.pdf")     '* ファイルのオープン
  Debug.Print AcroPDDoc.GetNumPages()             '* 総ページ数取得
  bRetValue = AcroPDDoc.Close()                   '* ファイルのクローズ
  Set AcroPDDoc = Nothing                         '* オブジェクトの破棄
End Sub


  2003-02-23 00:33:18  No: 106103

ありがとうございます。
教えていただいたコードで、うまく動作しました。

これまでは、PDFを配置する人に「先に総ページ数を
調べて、その数値を入力してください」などとお願い
していたのですが、これで随分と助かりました。

PDFファイルの最初の数行はテキストだと知った時に
別の方法も考えましたが、やはりこちらのほうが
スムーズですね。

あとは他の環境で動くかどうかですが、会社のパソコン
全てにAcrobatがインストールされているので、多分
大丈夫ではないかと思います。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加