はじめまして。
VB6+Indesign2.0で仕事をしています。
スクリプトでIndesign2.0へPDFを配置する際、PDFの
総ページ数が分からずに苦労しています(ありそうも
ない大きなページ数を指定して、エラーで抜けようと
したのですが、総ページ数よりもオーバーした分は、
1ページ目にループしてカバーしてしまう仕様のよう
です)。
Indesign2.0側では取得できないようなので、VB6側で
取得しようと思っています。
とりあえず、オブジェクトブラウザに『Acrobat』を
追加してみましたが、ここからの処理の仕方がわかりません。
よろしくおねがいします。
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
ありがとうございます。
教えていただいたコードで、うまく動作しました。
これまでは、PDFを配置する人に「先に総ページ数を
調べて、その数値を入力してください」などとお願い
していたのですが、これで随分と助かりました。
PDFファイルの最初の数行はテキストだと知った時に
別の方法も考えましたが、やはりこちらのほうが
スムーズですね。
あとは他の環境で動くかどうかですが、会社のパソコン
全てにAcrobatがインストールされているので、多分
大丈夫ではないかと思います。
ありがとうございました。
ツイート | ![]() |