AcroExch.PDAnnot メソッド一覧

TOP > AcroExch.PDAnnot      [...]


一覧

PDAnnot オブジェクトは注釈の作成や変更、情報の取得を目的としたオブジェクトです。

PDPage オブジェクトとも密接な連携を必要とするオブジェクトです。

このPDAnnot オブジェクトを理解しないとPDPage オブジェクトが使えません。

 

メソッド 解説
GetColor 注釈の色(カラー番号)を得ます。
GetContents テキスト注釈のコンテンツ(テキスト)を得ます。
GetDate 注釈の日付(年月日時分秒+ミリ秒)を得ます。
GetRect PDFページ上のテキスト注釈、又はPopup注釈の長方形位置(Top.Bottom,Left,Right)を得ます。
GetSubtype 注釈のタイプを得ます。タイプは Text , Popup , Link , Highlightの4種類です。
GetTitle 注釈の作成者を得る。注)タイトルでは無い。
IsEqual PDFファイル上の注釈が別の注釈と等しいかをチェックする。
IsOpen PDFファイル上のテキスト注釈がドキュメント上で開いているかチェックする。
※但し、GetSubtypeメソッドの結果がPopupの時だけ。
IsValid PDFファイル上の注釈をチェックする。
Perform PDFファイル上のリンク注釈の動作を実行します。
つまりリンク先に移動します。
SetColor PDFファイル上の注釈の色を設定します。色はカラー番号で指定します。
SetContents PDFファイル上のテキスト注釈のテキスト(=コンテンツ)をセットします。
SetDate PDFファイル上の注釈の日付をセット又は変更します。
SetOpen PDFファイル上のテキスト注釈を開いたり、閉じた状態に設定する。
SetRect 注釈のGetSubtypeが"Text"の時は注釈アイコンのサイズを設定(変更)します。
注釈のGetSubtypeが"Popup"の時はテキスト編集のサイズを設定(変更)します。
注釈のGetSubtypeが"Link"の時は何も変化ありません。
よって、注釈のGetSubtypeが"Popup"の時のみ使用します。
注釈のGetSubtypeが"Highlight"の時の動作は未確認。 
SetTitle PDFファイル上のテキスト注釈の作成者を設定します。
注)タイトルでは無い。

注意

  • SDKではテキスト注釈のテキスト部分をコンテンツと言っていますが、基本的にテキストと思っても構いません。

 

TOPへ

「AcroExch.PDAnnot メソッド一覧」への19件のフィードバック

  1. こんばんわ^^
    sun eternityの管理人暗黒の鬼神です
    コメントから着ました
    コチラのブログに招待して
    いただいて感激です^^
    Javaのオブジェクト指向
    に関しては”まったくの無知です”
    ん~JAVAはオブジェクト
    Cはポイントがむずいです・・・
    (単に俺の能力がないだけかも・・・)
    これからもちょくちょく
    顔出すんで
    よろしくお願いしますね^^

  2. ここはJavaの解説は全くしていません。基本はExcel VBAです。
    ココはAcrobat&PDFをExcel VBAでプログラミング操作する為の技術リファレンス的なサイトです。オブジェクト連携がチョットややこしいですが、そこを優しく解説しています。
    ちなみに、このようなサイトは海外でもネット上では存在しません。JavaScriptでの解説は存在しますが、すこし敷居が高い?かも。
    既に200頁を越えた内容ですが、それでもまだ半分ぐらいしか出来ていない状態です。更新すればする程、やらなければいけない分野が出てきてしまいます。
    今年には全体が出来る事を願っていますが、多分無理だろうな~。(汗

  3. 初めて聞く指向でよくわからなかったので
    PDAnnot でためしにくぐってみました
    1   位    に  でてきたよ!
    というかVBAはなんとなーくわかるけど
    Acrobat&PDFとは?いったい?
    くぐっても英語ページやビデオカードやら
    が出てきました
    型がセット・・・
    うーん・・・
    Cの自分にはまだまださっぱりです

  4. Acrobat Reader をExcelからコントロール操作する、と思っても構いません。
    なお「ぐぐっ」てもこのサイトがほとんど1位です。何度も書きますがこの手の技術情報(=[Excel] VBAからOLE AutomationでAcrobat又はAcrobat Readerを操作する)は世界のネット上でも、このサイトだけです。※Adobe社サイトの情報(=英語)は別です。
    ※2つだけですが英語サイトで似たサイトがあります。そこはサンプル集、又はQ&Aだけのサイトです。
    でも、この情報を必要としている人が少数エンジニアですがいる事は確かです。内容はAdobe社の正規のSDKを元に作成しています。ただ、このSDKはExcel VBAを意識した内容では無いし、説明が余りにも簡単、かつ膨大なので理解出来ない部分が多いのです。SDKの基本はJavaを意識した内容みたいです。
    それでこのサイトでは、その不明瞭な部分を理解しやすいVBAを使って、詳細に解説する為に立ち上げました。自分自身でも未だに英語(=SDK)内容が理解出来ない部分が多々有ります。注)英語は中学生程度の学力。w
    このサイトの情報はフリーソフトなどと違ってプログラム・エンジニア向けなので、5年、10年経っても使える内容を含んでいる事です。そうゆう意味で結構力を入れています。

  5. はぁ~
    ほんとすばらしいですね
    ほんと他のページ探してもないです
    自分はC中心なのでCの記事は
    たくさんみつかるのですが
    この記事はほんと唯一のようですね
    新しい技術・・・というか
    少ない情報下の中で記事(リファレンス)
    するなんて早々できることじゃありません
    でもAdobe Acrobatにはあんまり詳しくありません(汗)
    インターネットのページの回覧を助けて
    るんだろうな~ぐらいしか知りません
    それではっ失礼しました

  6. >新しい技術・・・というか
    イエイエ、技術的には結構古い(1996~)です。
    ただ、PCの処理能力(CPU)を必要だったので昔は敬遠しているエンジニアが多かったんです。※NORITOもその一人。
    でも、今はPCの処理能力が上がったので、十分適用できるようになりました。
    しかしJavaとか、WEB等の新しい技術に目が行って、このような古い技術(=OLE)を知らない人が多いみたいです。
    とにかく、少数エンジニア向けサイトですが、いずれかは内容をもう少し工夫して、アクセス数を平均1000件/日にはしたいな~と思っています。(欲
    その為にも、あと少なくても100頁は必要かな?(汗

  7. はじめまして

    既存のPDFに特定の文字列を発見したらそこに外部リンクを設定できるようなマクロを組もうとおもっています。
    とりあえずできるかどうか確かめるということでAcrobat X Proの体験版でこちらのサイトをお手本にいろいろ試してまして
    特定の文字列を検索してそれを選択状態にすることはできたのですが、それに対して外部リンクを設定することができなくて・・・。

    Acrobatの操作で言えば

    文字列を選択状態にする→右クリック→リンクを作成→webページを開くを選択して次にボタン押下→URLを入力

    という操作をしたいのですがこれは可能でしょうか?

  8. H2Oさん。初めまして。
    未確認情報ですが、取り急ぎ返答させて頂きます。

    Acrobat X はまだ試していないので、機能の追加や削除等は未確認です。
    しかし過去の経緯から予測するとAcrobat v9.0と同じと推測しています。

    それならば、H2Oさんが望む機能は当サイトで紹介しているOLEで出来ないと思われます。
    目的のテキストを選択状態には、ある程度は出来ます(※バージョン等により不安定)が、それに外部リンクやハイライト等の処理はOLEには機能がありません。
    唯一メニューコマンドを実行するOLEメソッドは有ります。その時に該当するメニューに付いている固有の名前を指定する必要が有ります。しかしAdobe社は正確な情報公開を何年も怠っています。

    よって残念ですが、当サイトの情報だけでは不可能となります。

    但し、当サイトで未開拓のAcrobat JavaScriptを調査する価値は有るかもしれません。
    なぜならば、こちらは常に微々たるですがバージュンアップしている気配を感じるからです。(勘
    これに関してはH2Oさんに調べて頂くしかありません。

    過去に似たような質問を受けて3週間ほど格闘しましたが、負けました。(悲
    期待した返答が出来なくて、エンジニアとして、少し心苦しいです。

  9. 返答ありがとうございます。

    ちょうど海外のフォーラムでVB.NETでリンクを追加すると言う内容のやり取りがありまして、そこでJSObjectを使用しておりました。

    Dim objAcroApp As New Acrobat.AcroApp
    Dim objAcroPDDoc As New Acrobat.AcroPDDoc

    Dim objJSO As Object
    Dim annot As Object
    Dim strPDFPath As String 'PDFファイルパス
    Dim linkRect(3) As Long 'リンク設定範囲

    'Acrobatを起動する。
    objAcroApp.Show
    'ファイルを開く
    objAcroPDDoc.Open strPDFPath
    'JSOObjectを得る
    Set objJSO = objAcroPDDoc.GetJSObject

    ・・・中略(文字列検索してRect情報を取得する処理)・・・

    Set annot = objJSO.addLink(iPage, linkRect)
    annot.setAction ("this.getURL('" & LINK(i) & "');")

    と言うような感じで何とか外部リンクを設定することができました。

    setActionのパラメータにはJavaScript actionを設定するとあり、JavaScriptAPIとは別物なんだろうな?と情報を探すとFlashで使う言語でActionScriptというのがありまして、これ、もしくはこれに近いのかな?と、まだまだ勉強することがいっぱいのようですが・・・。
    とりあえず道は見えてきた気がします。本当にありがとうございました。

  10. H2Oさんへ。

    逆に教えて頂きました。(汗
    出来れば、そのサイトURLも教えて頂けれる嬉しいです。

    ※やはり、GetJSObjectメソッドが鍵でしたか。
    ※これに関する情報が無くて困ってます。

  11. 該当フォーラムのURLは
    http://www.justskins.com/forums/adding-links-in-vb-116624.html
    です。

    まだぜんぜん理解できていないのですがPDDoc.GetJSObjectによって
    http://kb2.adobe.com/jp/cps/511/511719.html
    ↑こちらで入手したJavaScript API リファレンスのDocオブジェクトに
    相当するものが得られるのではないかな?と想像してます。
    addLinkメソッドを使ってLinkオブジェクト(ソースで言うannot)を
    取得してsetActionメソッドを実行してますし。
    GetJSObjectで得られたオブジェクトで
    MsgBox objJSO.numPages
    としてみたところPDFファイルのページ数を得ることができました。

    とりあえずリファレンスを熟読していろいろ試してみようかとおもってます。

  12. H2Oさんへ。

    ありがとうございます。

    >http://kb2.adobe.com/jp/cps/511/511719.html

    このバージョンの日本語版があったとは・・。
    なぜ見つからなかったのか、不思議です。

    >http://www.justskins.com/forums/

    上記フォーラムの存在は初めて知りました。
    イロイロと海外のサイトも見ていますが、GetJSObjectに関する情報は非常に少なく、再現性もマレです。
    ※Adobe社もこれに関する詳細なリファレンスが無料公開されてない。
    JavaScript API リファレンスに書かれているからと言って、出来るとは限らないのが実際の大きな壁です。
    たぶん、引数の書き方の問題ではないかと前々からは予想していましたが。
    今回の件から、少しは前進できる予感がしました。

    それともう一つお願いがあります。

    >・・中略(文字列検索してRect情報を取得する処理)

    に関するサンプルを頂けないでしょうか?
    Acrobatのバージョンの問題かは不明ですが、検索して、その「Rect情報を取得」がうまく出来なく、前回(1年前)は挫折しました。
    何か自分が勘違い?していると思っています。(恥

    とにかく、「GetJSObjectに関する情報」は有難いです。
    今は多忙なので後日、詳細を再確認させて頂きます。(嬉

  13. 別件でいろいろ立て込んでいたため返事が遅くなりましてすいません。

    Rect情報を取得する処理ですが、こちらも不完全なものでしかないです。
    長くなりますがご了承ください。

    処理の流れとしては

    1).ドキュメントの総ページ数を取得する。
    2).1ページ目から順に3.~9.をループ処理
    3).処理中のページの全テキストのPDTextSelectオブジェクトを得る
    4).PDTextSelectからテキストを順に取得して
    「全テキストを結合した文字列」と
    「その文字列のn番目の文字はPDTextSelectの
    何番目のテキストであるかをセットした配列」を作成
    5)InStr関数で検索文字列があるかをチェック。
    見つかる限り6)~9)の処理を行う
    6).4)で作成した配列を使ってInStrでみつかった文字列の先頭と末端が
    PDTextSelectの何番目のテキストであるかを得る
    7).6)で得た位置の情報から該当位置のみのハイライトリストオブジェクトを
    設定しPDTextSelectオブジェクトを得る
    8).GetBoundingRectメソッドでRect情報を得る
    9).JSOObjectを利用して外部リンクを設定する。

    という感じで行っています。

    で、問題がいろいろ出てくるのですが
    a).6)で正しいPDTextSelectが得られない場合がある。
    例えば3)で得られた処理中ページのPDTextSelectに含まれるテキストの
    総数が500であり、文字列検索した結果490番目の位置に目的の文字列が
    見つかったためHiliteList.add(490,1)として該当部分の
    PDTextSelectを得ようとしたら、ずれた位置のPDTextSelectが得られたり
    1つと指定しているのにGetNumTextをしてみたら2個のテキストが得られたり
    PDTextSelectがNothingであったりと正確に指定したとおり得ることが
    できないことがあります。
    これのはっきりした原因はよくわからないのです。
    とりあえず応急処置として7)で得られたPDTextSelectの先頭の文字列が
    本来得たかった文字列と一致するかチェックし、一致しなければ
    一つ前の位置で7)の処理を再度行い一致するまで補正し続ける
    というやり方で正しい位置が得られるようにしました。
    (Nothingであった場合にも同様)
    b).a)テキストの区切りがHiliteListの設定によって変わる場合がある。
    a)の修正中にあったのですが半角スペースや改行がある場合、
    PDTextSelectのとり方によってテキストの区切られ方が
    変わってくることがあります。
    (もしかしたらそれ以外にも変わる要因があるかもしれません)
    そのためa)のチェックで一致するものがないという状況に
    なることがあります。
    これも応急処置で半角スペースと改行を削除した上で
    一致チェックを行うことにしました。
    c).半角英数の後に(や.などが続くとそこも含めて1テキストと
    解釈されるため厳密に得たいと思っている文字列以上の
    範囲のRect情報しか得られない。
    これはこのマクロでやろうとしているPDFでは影響は
    無視できるであろう、として対策は考えませんでした。
    逆にハイフンは区切られてしまうので検索文字列にハイフンが含まれると
    複数テキストにまたがってしまうため、4)~6)でいちいち文字列を
    全結合してInStrで検索、何番目から何番目のテキストを得るという
    めんどくさい処理にしています。
    d).ずれが大きい場合検索文字列が連続していると補正が正しく効かなくなる。
    結局前回発見した位置から後ろにずらしてチェックするような補正にすれば
    いいのですが毎回補正処理を何回もする羽目になることになり、
    また処理のほとんどをJSOObject経由で行うように作り直したため
    実際に修正しないまま終わりました。

    以下、ソースです。
    無駄なことをしている部分もあると思いますがお察しください・・・。

    001 Sub implantLink()
    002
    003 On Error GoTo ErrorHandler
    004
    005 ' Acrobatオブジェクトの定義&作成
    006 Dim objAcroApp As New Acrobat.AcroApp
    007 Dim objAcroPDDoc As New Acrobat.AcroPDDoc
    008 Dim objAcroHiliteList As New Acrobat.AcroHiliteList
    009
    010 Dim objAcroAVDoc As Acrobat.AcroAVDoc
    011 Dim objAcroPDPage As Acrobat.AcroPDPage
    012 Dim objAcroPDTextSelect As Acrobat.AcroPDTextSelect
    013 Dim objAcroPDTextSelectCheck As Acrobat.AcroPDTextSelect
    014 Dim objAcroRect As Acrobat.AcroRect
    015 Dim objJSO As Object
    016 Dim annot As Object
    017
    018 Dim lRet As Long '戻り値
    019 Dim lPages As Long '全頁数
    020 Dim lRevise As Long '補正位置
    021 Dim lArray() As Long '文字位置情報
    022 Dim strStr() As String '文字情報
    023 Dim strStr2() As String '文字情報
    024 Dim strPDFPath As String 'PDFファイルパス
    025 Dim linkRect(3) As Long 'リンク設定範囲
    026 Dim SEARCH_WORD(1) As String '検索文字列
    027 Dim LINK(1) As String 'URL文字列
    028
    029 strPDFPath = "xxx.pdf"
    030
    031 SEARCH_WORD(0) = "検索文字列1"
    032 SEARCH_WORD(1) = "検索文字列2"
    033 LINK(0) = "http://url1"
    034 LINK(1) = "http://url2"
    035
    036 'Acrobatを起動する。
    037 objAcroApp.Show
    038 'ファイルを開く
    039 objAcroPDDoc.Open strPDFPath
    040 'JSOObjectを得る
    041 Set objJSO = objAcroPDDoc.GetJSObject
    042 '総頁数を取得する
    043 lPages = objAcroPDDoc.GetNumPages
    044 'PDFを画面表示する
    045 Set objAcroAVDoc = objAcroPDDoc.OpenAVDoc("外部リンク埋込PDF")
    046 '全テキストのハイライトリストを作成する
    047 lRet = objAcroHiliteList.Add(0, 32767)
    048
    049 '頁ごとに処理
    050 For IPage = 0 To lPages - 1
    051 '現頁のPDPageオブジェクトを作成する
    052 Set objAcroPDPage = objAcroPDDoc.AcquirePage(IPage)
    053 'ハイライトリスト(objAcroHiliteList)からページ単位の
    054 'テキスト選択のPDTextSelectオブジェクトを作成する
    055 Set objAcroPDTextSelect = _
    056 objAcroPDPage.CreateWordHilite(objAcroHiliteList)
    057 '文字位置情報を取得
    058 lArray = createarray(objAcroPDTextSelect)
    059 '抽出した文字列の数(Index)を取得する
    060 lCnt = objAcroPDTextSelect.GetNumText()
    061 '文字列を結合
    062 strText = ""
    063 For i = 1 To lCnt
    064 strText = strText & objAcroPDTextSelect.GetText(i - 1)
    065 ReDim Preserve strStr(i)
    066 strStr(i) = objAcroPDTextSelect.GetText(i - 1)
    067 Next i
    068 '検索文字列ごとに処理
    069 For i = 0 To UBound(SEARCH_WORD)
    070 '補正値の初期化
    071 lRevise = 0
    072 '検索開始位置の初期化
    073 lPos = 1
    074 Do
    075 lRet = InStr(lPos, strText, SEARCH_WORD(i))
    076 If lRet = 0 Then
    077 GoTo NotFound:
    078 End If
    079 lPos = lRet + Len(SEARCH_WORD(i))
    080 strSubText = Mid(strText, lRet, Len(SEARCH_WORD(i)))
    081 '開始位置を得る
    082 lStart = lArray(lRet)
    083 '終了位置を得る
    084 lEnd = lArray(lRet + Len(SEARCH_WORD(i)) - 1)
    085 Revise:
    086 '該当箇所のハイライトリストを作成する
    087 Dim objAcroHiliteListCheck As New Acrobat.AcroHiliteList
    088 lRet = objAcroHiliteListCheck.Add(lStart - 1 - lRevise, 1 + lEnd - lStart)
    089 'ハイライトリスト(objAcroHiliteListCheck)から
    090 'テキスト選択のPDTextSelectオブジェクトを作成する
    091 Set objAcroPDTextSelectCheck = _
    092 objAcroPDPage.CreateWordHilite(objAcroHiliteListCheck)
    093 'TextSelectが取得できなかったら補正
    094 If objAcroPDTextSelectCheck Is Nothing Then
    095 lRevise = lRevise + 1
    096 'ハイライトリストのクリア
    097 Set objAcroHiliteListCheck = Nothing
    098 GoTo Revise:
    099 End If
    100 '抽出した文字列の数(Index)を取得する
    101 lCntSub = objAcroPDTextSelectCheck.GetNumText()
    102 '文字列を結合
    103 strSubText = ""
    104 For j = 1 To lCntSub
    105 strSubText = strSubText & objAcroPDTextSelectCheck.GetText(j - 1)
    106 ReDim Preserve strStr2(j)
    107 strStr2(j) = objAcroPDTextSelectCheck.GetText(j - 1)
    108 Next j
    109 'スペースおよび改行コードを除いて比較
    110 '何がゴミとしてくっついてくるかわからないので修正がいるかも
    111 If RepCRLF(Trim(strStr2(1)), "") RepCRLF(Trim(strStr(lStart)), "") Then
    112 lRevise = lRevise + 1
    113 'ハイライトリストのクリア
    114 Set objAcroHiliteListCheck = Nothing
    115 GoTo Revise:
    116 End If
    117 'Rect情報を取得する
    118 Set objAcroRect = objAcroPDTextSelectCheck.GetBoundingRect
    119 'テキストを選択状態にする
    120 lRet = objAcroAVDoc.SetTextSelection(objAcroPDTextSelectCheck)
    121 'テキスト選択状態を見やすい位置表示にする
    122 lRet = objAcroAVDoc.ShowTextSelect()
    123 '外部リンクを追加する
    124 linkRect(0) = objAcroRect.Left
    125 linkRect(1) = objAcroRect.Top
    126 linkRect(2) = objAcroRect.Right
    127 linkRect(3) = objAcroRect.bottom
    128 Set annot = objJSO.addLink(IPage, linkRect)
    129 annot.setAction ("this.getURL('" & LINK(i) & "');")
    130 'テキスト選択状態の破棄
    131 lRet = objAcroPDTextSelectCheck.Destroy
    132 'ハイライトリストのクリア
    133 Set objAcroHiliteListCheck = Nothing
    134 Loop Until lPos > Len(strText)
    135 NotFound:
    136 Next i
    137 Next IPage
    138
    139 'PDFファイルを別名で保存
    140 lRet = objAcroPDDoc.Save _
    141 (PDSaveFull + PDSaveLinearized + _
    142 PDSaveCollectGarbage, _
    143 strPDFPath & "_")
    144
    145 'PDFファイルを閉じる
    146 objAcroPDDoc.Close
    147 'Acrobatを閉じる
    148 lRet = objAcroApp.Hide
    149 lRet = objAcroApp.Exit
    150
    151 'オブジェクトを強制解放する
    152 Set objAcroPDTextSelectCheck = Nothing
    153 Set objAcroPDTextSelect = Nothing
    154 Set objAcroPDPage = Nothing
    155 Set objAcroPDDoc = Nothing
    156 Set objAcroAVDoc = Nothing
    157 Set objAcroApp = Nothing
    158
    159 MsgBox "処理が完了しました"
    160
    161 Exit Sub
    162
    163 ErrorHandler:
    164 MsgBox "エラーが発生しました"
    165 End Sub
    166
    167 Function createarray(objAcroPDTextSelect As AcroPDTextSelect) As Long()
    168 Dim lCnt As Long
    169 Dim lSumLen As Long
    170 Dim lRet() As Long
    171
    172 lSumLen = 0
    173 '抽出した文字列の数(Index)を取得する
    174 lCnt = objAcroPDTextSelect.GetNumText()
    175 For i = 1 To lCnt
    176 strText = objAcroPDTextSelect.GetText(i - 1)
    177 lLen = Len(strText)
    178 For j = 1 To lLen
    179 ReDim Preserve lRet(j + lSumLen)
    180 lRet(j + lSumLen) = i
    181 Next j
    182 lSumLen = lSumLen + lLen
    183 Next i
    184 createarray = lRet
    185 End Function
    186
    187 Function RepCRLF(s As String, rep As String) As String
    188
    189 Dim a As String
    190 Dim i As Long
    191 Dim j As Long
    192
    193 a = s
    194 j = Len(rep)
    195 i = 1 - j
    196 Do
    197 i = InStr(i + j, a, vbCrLf)
    198 If i > 0 Then a = Left(a, i - 1) & rep & Right(a, Len(a) - i - 1)
    199 Loop Until i = 0
    200
    201 RepCRLF = a
    202
    203 End Function

  14. H2Oさんへ。
    お返事、ありがたいです。

    ※コメント本文は段付き状態ですが表示時に前のスペースが強制的に取られます。(汗

    >・・これのはっきりした原因はよくわからないのです。

    その出来ない原因は全テキスト抽出した時の並びが見た目と違うからです。
    通常は上から順番(ヘッダー+本文+フッター)にテキストが抽出されますが、
    PDFページの作り方?によっては、フッター+ヘッダー+本文の順で
    抽出されます。※過去の記憶
    だからRectでの位置がズレる。

    この現象に置ける規則性を見つけることが出来ませんでした。

    もう少し時間が出来たら、行方不明になった1年以上も前のロジックを探して、H2Oさんのロジックを付け足して、再度作ってみたいと思います。

    貴重なお時間と情報の提供をお礼申し上げます。m(_._)m

  15. はじめまして

    私も下記問題で悩んでいます。

    ズーム値とずれ量が線形の相関をもっているところまではわかりましたが、
    h方向とv方向のどちらにずれるかが、ファイルによってまちまちで困ります。

    >だからRectでの位置がズレる。
    >この現象に置ける規則性を見つけることが出来ませんでした。

    ⇒その後、何か解決策はみつかりましたでしょうか?
    何かアドバイスをいただけると助かります。

  16. kopa さん。
    はじめまして。

    残念ですが、この問題の進展は有りません。
    PDFファイルの内部構造を読めば判るかもしれませんが、データ部分はバイナリーになっている事が多いので、これも何か特殊なツールが必要になります。
    現在ではH2Oさんのコメントが一番ベストに近いものと考えています。

  17. こちらのサイトには大変お世話になっています。
    お礼がてら、私の方で気づいたことを報告します。
    GetSubtypeが"FreeText"だと、テキストボックスになるようです。
    弊社ではPDFにテキストボックスを多用しており、その内容をVBAで読みたかったのですが、なんとか成功しました。

  18. すいまーひろ さん
    はじめまして

    情報提供ありがとうございます。
    バージョンによってタイプの追加があったのかもしれません。
    後日、検証させて頂きます。

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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

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