AcroExch.PDAnnot: GetSubtype メソッド

TOP > AcroExch.PDAnnot > GetSubtype      [...]


説明

注釈のタイプを得ます。

タイプは Text , Popup , Link , Highlight の4種類です。

 

形式

BSTR GetSubtype();

 

引数

  1. 無し。

 

戻り値

  • Text , Popup , Link , Highlight の文字列のどれかを返します。

 

動作するバージョン

Version Adobe
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
8
NO
Acrobat 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

 

説明:PDFファイルの指定ページの注釈のタイプを得ます。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。

注意) 以下サンプルは "Highlight" 処理が抜けています。追加で使用して下さい。

Sub AcroExch_PDAnnot_GetSubtype()

    Debug.Print "TEST_PDAnnot_GetSubtype:" & Now
    Dim objAcroAVDoc        As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc        As Acrobat.AcroPDDoc
    Dim objAcroPDPage       As Acrobat.AcroPDPage
    Dim objAcroPDAnnot      As Acrobat.AcroPDAnnot
    Dim lAnnotsCnt          As Long     '注釈数
    Dim lTextCnt             As Long     '件数
    Dim lRet                   As Long     '戻り値
    Dim j                       As Long     '添え字
    Dim lText                 As Long
    Dim lPopUp              As Long
    Dim lLink                  As Long
    Const CON_PAGE = 0              'ページ番号
    
    lTextCnt = 0
    lText = 0
    lPopUp = 0
    lLink = 0
    'PDFドキュメントを開いて表示する
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    '2頁目のページ・オブジェクトを得る ★注意①
    Set objAcroPDPage = _
        objAcroPDDoc.AcquirePage(CON_PAGE)
    Debug.Print "頁=" & CON_PAGE
    'ページに存在する注釈数を得る ★注意②
    lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1
    Debug.Print "全注釈数=" & (lAnnotsCnt + 1)
    For j = 0 To lAnnotsCnt
        Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j)
        With objAcroPDAnnot
            Debug.Print "(" & j & ")GetSubtype=" & _
                        .GetSubtype
            Debug.Print "   GetContents=" & _
                        .GetContents
            Select Case .GetSubtype
            Case "Text": lText = lText + 1
            Case "Popup": lPopUp = lPopUp + 1
            Case "Link": lLink = lLink + 1
            Case Else: MsgBox "Program Error(" & _
                        .GetSubtype & ")"
            End Select
        End With
        lTextCnt = lTextCnt + 1
    Next j
    Debug.Print "Text  =" & lText & " 件"
    Debug.Print "Popup =" & lPopUp & " 件"
    Debug.Print "Link  =" & lLink & " 件"
    Debug.Print "全件数=" & lTextCnt & " 件"
    
    'PDFファイルを保存しないで閉じる
    lRet = objAcroAVDoc.Close(1)
    'オブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
    Set objAcroPDAnnot = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroPDDoc = Nothing

End Sub

 

実行結果(1)  頁=1の時、異常処理

TEST_PDAnnot_GetRect:2008/08/12 12:51:16
頁=0
全注釈数=4
(0)GetSubtype=Text
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(1)GetSubtype=Popup
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(2)GetSubtype=Text
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
(3)GetSubtype=Popup
GetContents=1/2 これはTest01.PDFのテスト用の1ページ目のテキスト注釈です。
Text =2 件
Popup =2 件
Link =0 件
全件数=4 件

※上記PDFページは以下の様になっている。
2番目の注釈が表示されてない。

PDAnnot:GetSubtype メソッド(1)

 

実行結果(2)  頁=3の時、異常処理

TEST_PDAnnot_GetRect:2008/08/12 12:39:57
頁=2
全注釈数=41
(0)GetSubtype=Link
GetContents=
(1)GetSubtype=Link
GetContents=
(2)GetSubtype=Link
GetContents=
(3)GetSubtype=Link
GetContents=
・・・・・・・<省略>・・・・・・・
(39)GetSubtype=Link
GetContents=
(40)GetSubtype=Link
GetContents=
Text =0 件
Popup =0 件
Link =41 件
全件数=41 件

※上記PDFページは以下の様になっている。
注釈が1つ表示されてない。

PDAnnot:GetSubtype メソッド(2)

 

補足

  • 「★注意①」と「★注意②」の部分が動作不良を起こしている模様です。
    正確に処理できません。
     

 

動作確認環境

  • WindowsXP Pro(+ SP3) +
    Acrobat 8.1.2 Pro + Office 2003
  • Windows 10 64Bit Pro +
    Acrobat XI Pro + Office 2007 

 

戻る

VBA(Excel)からAcrobat経由でPDFをプログラミング操作(OLE:IAC)する