AcroExch.PDAnnot: IsEqual メソッド

TOP > AcroExch.PDAnnot > IsEqual      [...]


説明

PDFファイル上の注釈が別の注釈と等しいかをチェックする。

形式

VARIANT_BOOL IsEqual(LPDISPATCH PDAnnot);

引数

  1. 第1引数(LPDISPATCH PDAnnot) :
    PDAnnotオブジェクト。

戻り値

  • -1 : 等しい。
  • 0 : 等しくない。

動作するバージョン

VersionAdobe
Acrobat
備考
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
8NOAcrobat 8.1.2 Pro
9-Acrobat 9.3.2 Extended
10-Acrobat X (10.1.8) Extended
11-Acrobat XI (11.0.04) Extended
  • OK = 動作する。
  • NO = 動作しない。 戻り値が0を返す。
  • - = 未確認。

サンプル:ExcelのVBA

説明:2つのPDFファイルの表紙ページ上の注釈を比較します。

  • 2つのPDFファイルは元々1つのPDFファイルで、コピーしてリネームしただけです。
    表紙ページには2つの注釈が存在します。
  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
001 Sub AcroExch_PDAnnot_IsEqual() 002 003 Debug.Print "TEST_PDAnnot_IsEqual:" & Now 004 Dim objAcroAVDoc1 As New Acrobat.AcroAVDoc 005 Dim objAcroAVDoc2 As New Acrobat.AcroAVDoc 006 Dim objAcroPDDoc1 As Acrobat.AcroPDDoc 007 Dim objAcroPDDoc2 As Acrobat.AcroPDDoc 008 Dim objAcroPDPage1 As Acrobat.AcroPDPage 009 Dim objAcroPDPage2 As Acrobat.AcroPDPage 010 Dim objAcroPDAnnot1 As Acrobat.AcroPDAnnot 011 Dim objAcroPDAnnot2 As Acrobat.AcroPDAnnot 012 Dim lRet As Long '戻り値 013 Dim lAnnotsCnt As Long '注釈数 014 Dim j As Long '添え字 015 Dim lTextCnt As Long '件数 016 017 lTextCnt = 0 018 'PDFドキュメントを開いて表示する 019 lRet = objAcroAVDoc1.Open("E:\Test01.pdf", "") 020 lRet = objAcroAVDoc2.Open("E:\Test02.pdf", "") 021 Set objAcroPDDoc1 = objAcroAVDoc1.GetPDDoc() 022 Set objAcroPDDoc2 = objAcroAVDoc2.GetPDDoc() 023 '表紙のページ・オブジェクトを得る ★注意① 024 Set objAcroPDPage1 = objAcroPDDoc1.AcquirePage(0) 025 Set objAcroPDPage2 = objAcroPDDoc2.AcquirePage(0) 026 'ページに存在する注釈数を得る 027 lAnnotsCnt = objAcroPDPage1.GetNumAnnots() - 1 028 Debug.Print "全注釈数=" & (lAnnotsCnt + 1) 029 For j = 0 To lAnnotsCnt 030 '注釈オブジェクトを得る。 031 Set objAcroPDAnnot1 = objAcroPDPage1.GetAnnot(j) 032 Set objAcroPDAnnot2 = objAcroPDPage2.GetAnnot(j) 033 With objAcroPDAnnot1 034 Debug.Print "(" & j & ")GetSubtype=" & _ 035 .GetSubtype 036 Debug.Print " GetContents=" & _ 037 .GetContents 038 End With 039 With objAcroPDAnnot2 040 Debug.Print "(" & j & ")GetSubtype=" & _ 041 .GetSubtype 042 Debug.Print " GetContents=" & _ 043 .GetContents 044 End With 045 lRet = objAcroPDAnnot1.IsEqual(objAcroPDAnnot2) 046 If lRet = -1 Then 047 'same:等しい。 048 Debug.Print j & " 番目は等しい。" 049 Else 050 '等しくない 051 Debug.Print j & " 番目は等しくない。" 052 End If 053 lTextCnt = lTextCnt + 1 054 Next j 055 Debug.Print "件数=" & lTextCnt 056 057 'PDFファイルを保存しないで閉じる 058 lRet = objAcroAVDoc1.Close(1) 059 lRet = objAcroAVDoc2.Close(1) 060 'オブジェクトを強制解放する 061 Set objAcroPDAnnot1 = Nothing 062 Set objAcroPDAnnot2 = Nothing 063 Set objAcroAVDoc1 = Nothing 064 Set objAcroAVDoc2 = Nothing 065 Set objAcroPDPage1 = Nothing 066 Set objAcroPDPage2 = Nothing 067 Set objAcroPDDoc1 = Nothing 068 Set objAcroPDDoc2 = Nothing 069 070 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

 

実行結果 :異常処理

TEST_PDAnnot_IsEqual:2008/08/13 13:47:48
全注釈数=4
(0)GetSubtype=Text
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(0)GetSubtype=Text
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
0 番目は等しくない。
(1)GetSubtype=Popup
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(1)GetSubtype=Text
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
1 番目は等しくない。
(2)GetSubtype=Text
GetContents=2/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(2)GetSubtype=Popup
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
2 番目は等しくない。
(3)GetSubtype=Popup
GetContents=2/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(3)GetSubtype=Text
GetContents=2/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
3 番目は等しくない。
件数=4

※2つのPDFファイルの注釈は以下の様になっています。

PDAnnot:IsEqual メソッド

補足

  • 上記結果は全て正常ではありません。インデックス「0」は明らかに同じはずなのに「0」が戻り値に返されます。
  • また、PDFファイル「Test02.pdf」のインデックスに対してのテキスト内容やタイプ(GetSubtype)も変です。
  • 「★注意①」の部分と「IsEqual メソッド」が動作不良を起こすしています。

動作確認環境

  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003 + MicrosoftUpdate

戻る

コメントを残す

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

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください