AcroExch.PDAnnot: SetTitle メソッド

TOP > AcroExch.PDAnnot > SetTitle      [...]


説明

PDFファイル上のテキスト注釈の作成者を設定します。

注)タイトルでは無い。

 

形式

VARIANT_BOOL SetTitle(BSTR szTitle);

 

引数

  1. 第1引数(BSTR szTitle) :
    設定する作成者(=テキスト)。

 

戻り値

  • -1 : 設定出来た。
  • 0 : 設定出来なかった。

 

動作するバージョン

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キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
  • 事前にテキスト注釈を開いた状態にしておくとテスト状況結果が判りやすい。

 

Sub AcroExch_PDAnnot_SetTitle()

    Debug.Print "AcroExch_PDAnnot_SetTitle:" & Now
    Dim objAcroAVDoc           As New Acrobat.AcroAVDoc
    Dim objAcroAVPageView   As Acrobat.AcroAVPageView
    Dim objAcroPDDoc           As Acrobat.AcroPDDoc
    Dim objAcroPDPage        As Acrobat.AcroPDPage
    Dim objAcroPDAnnot      As Acrobat.AcroPDAnnot
    Dim objAcroTime          As New Acrobat.AcroTime
    Dim objRect                 As Acrobat.AcroRect
    Dim lRet                     As Long     '戻り値
    Dim lPagesCnt            As Long     'ページ数
    Dim lAnnotsCnt          As Long     '注釈数
    Dim i                        As Long     '添え字
    Dim j                       As Long     '添え字
    Dim lCnt                  As Long     '件数
    Dim lTextCnt            As Long     'Text件数
    
    lCnt = 0
    lTextCnt = 0
    
    'PDFドキュメントを開いて表示する。
    lRet = objAcroAVDoc.Open("E:¥Test01.pdf", "")
    Set objAcroPDDoc = objAcroAVDoc.GetPDDoc()
    Set objAcroAVPageView = objAcroAVDoc.GetAVPageView()
    'PDFドキュメントのページ数を得る
    lPagesCnt = objAcroPDDoc.GetNumPages() - 1
    For i = 0 To lPagesCnt
        '該当ページのページオブジェクトを得る ★注意①
        Set objAcroPDPage = objAcroPDDoc.AcquirePage(i)
        'PDFビュアーのページを移動させる
        lRet = objAcroAVPageView.Goto(i)    '(TEST用)
        'ページに存在する注釈数を得る
        lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1
        For j = 0 To lAnnotsCnt
            lCnt = lCnt + 1
            Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j)
            With objAcroPDAnnot
                If .GetSubtype = "Text" Then
                    lRet = .SetTitle("HogeHoge")
                    lTextCnt = lTextCnt + 1
                End If
            End With
        Next j
    Next i
    Debug.Print "全件数= " & lCnt
    Debug.Print "変更Text件数= " & lTextCnt
    
    'PDFファイルを保存しないで閉じる
    lRet = objAcroAVDoc.Close(1)    '(TEST用)
    'オブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
    Set objAcroPDAnnot = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroAVPageView = Nothing
    Set objAcroPDDoc = Nothing

End Sub

 

実行結果

TEST_PDAnnot_SetTitle:2008/09/03 8:00:36
全件数= 247
変更Text件数= 3

※実行前のテキスト注釈

PDAnnot:SetTitle メソッド 実行前

※実行後のテキスト注釈

PDAnnot:SetTitle メソッド 実行後

※上記のテキスト注釈のプロパティ画面。実行前。

テキスト注釈のプロパティ画面

 

補足

  • 上記の実行結果を見ると明らかにAcrobatのOLE(IAC)にバグがあることが判明する。
    OLE(IAC)にバグがあると言うよりはAcrobatの日本語化にバグがあると言える。
    「作成者」⇔「タイトル」は逆になっている。
  • また、上記サンプルは★注意①箇所もバグっている。
    実行結果を見ていると、明らかにテキスト注釈であるにも関わらず、無視をしていた。
  •  このメソッドは「SetTitle」と言うよりは「SetManufacturer」が正しい。

 

動作確認環境

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

 

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

コメントをする時は最低でも以下をお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン