AcroExch.PDAnnot: SetTitle メソッド

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


説明

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

注)タイトルでは無い。

形式

VARIANT_BOOL SetTitle(BSTR szTitle);

引数

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

戻り値

  • -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

説明:PDFファイルの全てのテキスト注釈の作成者を変更する。

  • F8キーでステップ実行しながら動作確認する。
  • 事前に参照設定をする。
  • 事前にテキスト注釈を開いた状態にしておくとテスト状況結果が判りやすい。
001 Sub AcroExch_PDAnnot_SetTitle() 002 003 Debug.Print "AcroExch_PDAnnot_SetTitle:" & Now 004 Dim objAcroAVDoc As New Acrobat.AcroAVDoc 005 Dim objAcroAVPageView As Acrobat.AcroAVPageView 006 Dim objAcroPDDoc As Acrobat.AcroPDDoc 007 Dim objAcroPDPage As Acrobat.AcroPDPage 008 Dim objAcroPDAnnot As Acrobat.AcroPDAnnot 009 Dim objAcroTime As New Acrobat.AcroTime 010 Dim objRect As Acrobat.AcroRect 011 Dim lRet As Long '戻り値 012 Dim lPagesCnt As Long 'ページ数 013 Dim lAnnotsCnt As Long '注釈数 014 Dim i As Long '添え字 015 Dim j As Long '添え字 016 Dim lCnt As Long '件数 017 Dim lTextCnt As Long 'Text件数 018 019 lCnt = 0 020 lTextCnt = 0 021 022 'PDFドキュメントを開いて表示する。 023 lRet = objAcroAVDoc.Open("E:\Test01.pdf", "") 024 Set objAcroPDDoc = objAcroAVDoc.GetPDDoc() 025 Set objAcroAVPageView = objAcroAVDoc.GetAVPageView() 026 'PDFドキュメントのページ数を得る 027 lPagesCnt = objAcroPDDoc.GetNumPages() - 1 028 For i = 0 To lPagesCnt 029 '該当ページのページオブジェクトを得る ★注意① 030 Set objAcroPDPage = objAcroPDDoc.AcquirePage(i) 031 'PDFビュアーのページを移動させる 032 lRet = objAcroAVPageView.Goto(i) '(TEST用) 033 'ページに存在する注釈数を得る 034 lAnnotsCnt = objAcroPDPage.GetNumAnnots() - 1 035 For j = 0 To lAnnotsCnt 036 lCnt = lCnt + 1 037 Set objAcroPDAnnot = objAcroPDPage.GetAnnot(j) 038 With objAcroPDAnnot 039 If .GetSubtype = "Text" Then 040 lRet = .SetTitle("HogeHoge") 041 lTextCnt = lTextCnt + 1 042 End If 043 End With 044 Next j 045 Next i 046 Debug.Print "全件数= " & lCnt 047 Debug.Print "変更Text件数= " & lTextCnt 048 049 'PDFファイルを保存しないで閉じる 050 lRet = objAcroAVDoc.Close(1) '(TEST用) 051 'オブジェクトを強制解放する 052 Set objAcroAVDoc = Nothing 053 Set objAcroPDAnnot = Nothing 054 Set objAcroPDPage = Nothing 055 Set objAcroAVPageView = Nothing 056 Set objAcroPDDoc = Nothing 057 058 End Sub


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

 

実行結果


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等) バージョン
コメントにサンプルコードを入れる時はコードを全て全角文字列にしてください。コチラで半角に戻します。それでもエラーが回避できない時はコメント下さい。個別に対処します。



お仕事で当サイトを見ている方へ
考え込んだら、ご質問下さい。
一緒に解決策を考えましょう。

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