AcroExch.PDDoc:InsertPages メソッド (2版) « PDF
<説明>
現在のPDFドキュメント内で指定された頁の後に、別のPDFドキュメントを指定ページ数分だけ挿入する。
<形式>
VARIANT_BOOL InsertPages(long nInsertPageAfter,
LPDISPATCH iPDDocSource,
long nStartPage,
long nNumPages,
long bBookmarks);
<引数>
口腔顔面痛センター、 npdsメリーランド州
- 第1引数(nInsertPageAfter) :
挿入を開始するページ番号。このページ番号の後に挿入される。なおページ番号1が0だから、最初は-1となる。ページ番号1は0として扱う。但し、最初のページの前に入れる時はPDBeforeFirstPage(=-1)、最終頁の後に追加する時はPDLastPage(=-2)の定数を指定する事も出来る。数値-1.-2を指定してももちろん構わない。このPDBeforeFirstPageとPDLastPageの定数を扱う時はIAC.BAS標準モジュールの追加が別途必要となる。 - 第2引数(iPDDocSource) :
挿入するPDFドキュメントのPDDocオブジェクト。 - 第3引数(nStartPage) :
挿入するPDFドキュメントの開始ページ番号。1ページ目は0。
問題点有り。<注意事項>を参照。 - 第4引数(nNumPages) :
挿入するPDFドキュメントのページ数。 - 第5引数(bBookmarks) :
しおりも追加する時はTrue(-1)。追加しない時はFalse(0)。
問題点有り。<注意事項>を参照。
<戻り値>
- -1:成功。
- 0:失敗。または挿入出来なかった。
<動作するバージョン>
Version | Adobe Acrobat | Adobe Reader | 備考 |
---|---|---|---|
4 | - 看護学生の不安 | - | Acrobat 4.0 ※Windows 98SE + Excel 2000 |
5 | - | Acrobat 5.0.5 | |
6 | - | Acrobat 6.0.3 Pro | |
7 | - | - | Acrobat 7.0.9 Pro Acrobat 7.1.4 Pro |
8 | OK | - | Acrobat 8.1.2 Pro |
9 | - | - | Acrobat 9.3.2 Extended |
OK = 動作する。
NO = 動作しない。 戻り値が0を返す。
- = 未確認。 環境とテスト時間が出来次第、結果を入力します。
農村高齢者のうつ病
<サンプル:ExcelのVBA>
説明:2つのPDFファイル(Test01_1.pdfとTest01_2.pdf)を結合して、Test01_NEW.pdfファイルを作成する。しおりも同時に入れる。
- F8キーでステップ実行しながら動作確認する。
- 事前に参照設定を事前にする。
Sub AcroExch_PDDoc_InsertPages()
Dim AcroPDDocNew As New Acrobat.AcroPDDoc
Dim AcroPDDocAdd As New Acrobat.AcroPDDoc
Dim lRet As Long
Dim lGetNumPages As Long
Dim lPages As Long
lPages = 0
'空のPDFファイルを作成する
lRet = AcroPDDocNew.Create()
'空のPDFファイルに追加する
lRet = AcroPDDocAdd.Open("E:¥Test01_1.pdf")
lGetNumPages = AcroPDDocAdd.GetNumPages()
lRet = AcroPDDocNew.InsertPages(lPages – 1, _
AcroPDDocAdd, 0, lGetNumPages, True)
lRet = AcroPDDocAdd.Close()
lPages = lPages + lGetNumPages
'更にPDFファイルを追加する
lRet = AcroPDDocAdd.
lGetNumPages = AcroPDDocAdd.GetNumPages()
lRet = AcroPDDocNew.InsertPages(lPages – 1, _
AcroPDDocAdd, 0, lGetNumPages, True)
lRet = AcroPDDocAdd.Close()
'結合したPDFファイルを最後に保存する
lRet = AcroPDDocNew.Save(1, "E:¥Test01_NEW.pdf")
lRet = AcroPDDocNew.Close()
'オブジェクトを強制開放する
Set AcroPDDocAdd = Nothing
Set AcroPDDocNew = Nothing
End Sub
<補足>
- 結合時にしおりの階層のトップが元のファイル名として最上位に追加される。要注意。
- 「挿入するPDFドキュメント」をAcrobat SDKでは「ソースドキュメント」と表現している。
- 英語サイトで関連サンプルを発見。以下にURLをメモする。詳細は未分析。
<注意事項>
- 「第3引数(nStartPage):挿入するPDFドキュメントの開始ページ番号」が0以外の時、InsertPages メソッドが失敗する場合がある。必ずではないが、何度も行っていると動作が不安定?になり、InsertPages メソッドが失敗となる。その予防策として予め挿入するPDFドキュメントから余分なページを削除しておき、InsertPages メソッドを実行する時に第3引数(nStartPage)が0になるようにする事を奨める。
- 第5引数でTrueを指定して「しおりも追加」状態にすると、第4引数が無視され、全頁が挿入される。
<動作確認環境>
- WindowsXP Pro(+ SP3) +
Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate
< 戻る >
0 コメント:
コメントを投稿