AcroExch.PDAnnot: SetDate メソッド

TOP > AcroExch.PDAnnot > SetDate      [...]


説明

PDFファイル上の注釈の日付をセット又は変更します。

 

形式

VARIANT_BOOL SetDate(LPDISPATCH iAcroTime);

 

引数

  1. 第1引数(LPDISPATCH iAcroTime) :
    日付(AcroTimeオブジェクト)

 

戻り値

  • -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ファイルの注釈でTextとPopupは日付を変更する。

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

 

Sub AcroExch_PDAnnot_SetDate()

    Debug.Print "AcroExch_PDAnnot_SetDate:" & 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件数
    Dim lPopupCnt           As Long     'Popup件数
    
    lCnt = 0
    lTextCnt = 0
    lPopupCnt = 0
    
    '2010/01/01 00:00:00.000
    objAcroTime.Year = 2010 '年
    objAcroTime.Month = 1   '月
    objAcroTime.Date = 1    '日
    objAcroTime.Hour = 0    '時
    objAcroTime.Minute = 0  '分
    objAcroTime.Second = 0  '秒
    objAcroTime.millisecond = 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)
            If objAcroPDAnnot.GetSubtype = "Text" Then
                'テキスト注釈の日付を変更
                lRet = objAcroPDAnnot.SetDate(objAcroTime)
                lTextCnt = lTextCnt + 1
            End 
            If objAcroPDAnnot.GetSubtype = "Popup" Then
                'Popup注釈の日付を変更
                lRet = objAcroPDAnnot.SetDate(objAcroTime)
                lPopupCnt = lPopupCnt + 1
            End If
        Next j
    Next i

    Debug.Print "全件数= " & lCnt
    Debug.Print "Text変更件数= " & lTextCnt
    Debug.Print "Popup変更件数= " & lPopupCnt
    
    'PDFファイルを保存しないで閉じる
    lRet = objAcroAVDoc.Close(1)    '(TEST用)
    'オブジェクトを強制解放する
    Set objAcroAVDoc = Nothing
    Set objAcroPDAnnot = Nothing
    Set objAcroPDPage = Nothing
    Set objAcroAVPageView = Nothing
    Set objAcroPDDoc = Nothing
    Set objAcroTime = Nothing

End Sub

  

実行結果

 

TEST_PDAnnot_SetDate:2008/09/25 15:55:10
全件数= 247
Text変更件数= 3
Popup変更件数= 23

 

補足

  • サンプルのGetSubtypeメソッドの戻り値が変です。
    やはりPDAnnotオブジェクトはバグがあるように思える。

 

動作確認環境

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

 

戻る

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

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