Acrobat/DDE: DocInsertPages

説明

Acrobat PDFドキュメントの指定されたページ後に別のPDFドキュメントを挿入する。

※Adobe Readerは当DDEを使用出来ません。

 

形式

[DocInsertPages(char* fullPath, long insertAfterPage, char* sourcePath)]

 

引数

fullPath
[char*]
更新されるPDFファイルのフルパス。既にAcrobatアプリケーションで開かれてないといけない。
注意:パス中に空白があるときは注意する。
insertAfterPage
[long]
第1引数で指定したPDFファイルの挿入(差し込み)開始の頁番号。1頁は0とし、0から開始します。
注)英語版DDE説明書では1頁を開始としている。
sourcePath
[char*]
入される元のフルパス名。このファイルはオープンされている必要はありません。

 

戻り値

true 挿入は成功した。
false fullPathによって指定されたPDFドキュメントが開かれてない。
又は挿入は失敗しました。

注)ExcelのVBAではDDE命令の発信ステートメント上で、戻り値を取得出来ません。

 


サンプル:Excel のVBA

Test01.pdfのPDFドキュメントの24頁の後に"E:¥Test02.pdf"ドキュメントを追加する。

  • Excel VBA開発環境をF8キーでステップ実行して動作確認する。

 

Sub
DDE_DocInsertPages()

Dim lChanNo As Long ‘DDEチャンネル番号
‘パスに空白が入った時用にダブル引用符を付加

Const CON_PDF_PATH = """E:¥Test01.pdf"""
‘Acrobatアプリケーション起動
‘Shell "C:¥Program Files¥Adobe¥Acrobat 7.0¥Acrobat¥Acrobat.exe"
Shell "C:¥Program Files¥Adobe¥Acrobat 8.0¥Acrobat¥Acrobat.exe"
‘DDEチャンネルのオープン
lChanNo = DDEInitiate("Acroview", "Control")
‘該当PDFファイルのオープン
DDEExecute lChanNo, "[DocOpen(" & CON_PDF_PATH & ")]"
’34頁の後にE:¥Test02.pdfを追加する。
DDEExecute lChanNo, "[DocInsertPages(" & CON_PDF_PATH & ",33,E:¥Test02.pdf)]"
‘PDFファイルの保存。’注)最適化はされない
DDEExecute lChanNo, "[DocSave(" & CON_PDF_PATH & ")]"
‘Acrobatアプリケーション終了
DDEExecute lChanNo, "[AppHide()]" ‘これをしないとAcrobatプロセスが残る
‘DDEチャネルを閉る
DDETerminate lChanNo

End Sub

 

補足

  • Adobe Readerでは使用出来ません。
  • 第2引数で存在しない頁番号を指定するとFalseになる。
  • 第3引数で指定されたPDFドキュメントの内容が全て挿入される。

 

動作確認環境

  • WindowsXP + SP3 + WindowsUpdate
  • Adobe Acrobat Pro 7.0.8 + Office Pro 2003
  • Adobe Acrobat Pro 8.1.4 + Office Pro 2003

 

Adobe社の解説ページ : 英語

以下がAdobe社のAcrobat DDEの解説ページです。

表示には時間がかかります。

http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/IAC_API_DDE_Messages.104.11.html

 

TOPへ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA