一覧
AppオブジェクトはAcrobatアプリケーション本体に対する操作や設定の取得&変更を行う機能(メソッド)を提供します。
メソッド
|
解説
|
---|---|
CloseAllDocs | 開いている全てのPDFドキュメントを閉じます。 |
Exit | Acrobatアプリケーションを終了します。 |
GetActiveDoc | 最前列のPDFドキュメントのAVDocオブジェクトを取得します。 |
GetActiveTool | 現在アクティブなツールの名前を得ます。 |
GetAVDoc | 開いているAVDocオブジェクトのリストの中のインデックスでAcroExch.AVDocオブジェクトを取得する。 |
GetFrame | フレームを取得する。 |
GetInterface | 名前の付いたオブジェクト、通常のサード・プラグインの為にIDispatchインタフェースを得ます。 |
GetLanguage | Acrobatアプリケーションのユーザーインタフェースがどの言語を使用しているかを3文字のコードで返す。 |
GetNumAVDocs | Acrobatアプリケーションが画面表示しているPDFファイルの数を得ます。 |
GetPreference | Acrobatアプリケーションの環境設定の値を得ます。 注)これは使用しないで下さい。GetPreferenceExを使って下さい。 |
GetPreferenceEx | Acrobatアプリケーションの環境設定の値を取得します。 注)これはAcrobat v7以上 のみ使用します。 ※「IAC.BASにある定数の説明一覧」参照 |
Hide | Acrobatアプリケーションを隠します。タスクバーには表示されません。 |
Lock | Acrobatアプリケーションをロックします。サーバーでOLE(IAC)を使って排他制御をするのに便利です。 |
Minimize | Acrobatアプリケーションを最小化します。 |
Maximize | Acrobatアプリケーションを最大化します。 |
MenuItemExecute | Acrobatアプリケーションの実行可能なメニュー項目名がを実行します。 |
MenuItemIsEnabled | Acrobatアプリケーションの指定されたメニュー項目が使用可能状態かをチェックします。 |
MenuItemIsMarked | 指定したメニュー項目を選択マークにします。 |
MenuItemRemove | Acrobatアプリケーションの指定されたメニュー項目を一時的に削除します。 |
Restore | Acrobatアプリケーションが最大化又は最小化されていれば、元の位置とサイズにAcrobatアプリケーションを表示します。 |
SetActiveTool | 指定したツールを使用可能状態(アクティブ)にする。 |
SetFrame | 指定された長方形にフレームを設定します。 |
SetPreference | Acrobatアプリケーション、又はAcrobat Readerアプリケーションの環境設定の各項目を変更します。 Acrobat v4, v5, v6でのみ使用可能。 |
SetPreferenceEx | Acrobatアプリケーション、又はAcrobat Readerアプリケーションの環境設定の各項目を変更します。 Acrobat v7以上のみで使用可能。 ※「IAC.BASにある定数の説明一覧」参照。 |
Show | Acrobatアプリケーションを起動し、画面表示します。 |
ToolButtonIsEnabled | Acrobatアプリケーションの指定されたツールボタンが 使用可能状態かをチェックします。 |
ToolButtonRemove | ツールバーから指定されたボタンを取り外します。 |
Unlock | 以前にロックされたAcrobatアプリケーション、又はOLE(IAC)を解除します。 |
UnlockEx | 以前にロックされたAcrobatアプリケーション、又はOLE(IAC)を解除します。 Acrobatのバージョンが5.0以上はUnlockではなく、こちらのUnlockExを使います。 |
その他
< TOPへ >
はじめまして^^
現在、AcrobatのIACを利用して印刷を行うプログラムを作成しております。
このサイトでいろいろと参考にさせて頂き、大変助かっております。
MenuItemExecuteを利用して印刷ダイアログを表示させておりますが、
このダイアログにてどのボタンが押下されたかを取得するメソッドあるいはプロパティ等存在しますでしょうか。
具体的には「OK」ボタン/「キャンセル」ボタンのどちらを押下したかを
取得したいのです。IACではなく、CoreAPIでも構いません。
ご存知でしたらご教授頂きたい次第です。
LICEさん。初めまして。
スイマセン。
MenuItemExecute で実行されたボタンの取得は判らないが返答です。
CoreAPIに関しても理解不足で判りません。
WindowsAPIでボタンのメッセージを拾うしか手がないと思うのですが、
WindowsAPIも得意分野では無いので返答にはかなりの時間が掛かります。
提案出来る事としては、印刷ダイアログを独自(フォーム)で作成して
AcroExch.AVDoc メソッドのPrint関連メソッドを実行する。
印刷画面の作成が必要ですが、どのボタンが押されたかは確実に拾えます。
どうでしょうか。
管理人様
回答有難うございます^^。
私自身もいろいろと方法を考えたり調査致しましたが、調査に要する時間等を
鑑みた結果、以下の方法で対応することにしました。(スマートな方法では無いのですが・・)
1. IACでAcrobatの起動。
2. IACのMenuItemExecuteで印刷ダイアログを表示。
3. 自作アプリからAcrobatの印刷ダイアログの「OK」/「キャンセル」ボタンを押下不可に設定。
4. 自作アプリにて設けた「印刷」/「印刷キャンセル」ボタンでAcrobatの印刷ダイアログを制御し、以降の処理を実行。
※印刷ダイアログを"MenuItemExecute"で起動した理由は、Acrobat標準の印刷ダイアログを使用するという縛りがある為です。
解決方法の提案と親切な回答に感謝致します。
お手数をお掛けしました。
度々すみません。一応補足ですが、
3. 自作アプリからAcrobatの印刷ダイアログの「OK」/「キャンセル」ボタンを押下不可に設定。
上記Acrobatのボタン制御は、AcrobatSDKのAPIではなく、WindowsAPIでダイアログの中のボタンのハンドルを取得し、取得したハンドルに対して使用不可を設定する という方法です。
※もしかしたらAcrobatSDKでも可能な気がするのですが、時間の都合上調査を断念致しました。
では、失礼します。
LICEさんへ。
返答有難うございます。
まさに裏技ですね。
>Acrobat標準の印刷ダイアログを使用するという縛りがある為・・
ひょっとしたらそれが有るかもしれないと予測はしていました。
>・・AcrobatSDKでも可能な気が・・
AcrobatSDKには無いと思います。
そこはWindowsAPIの範囲だと思っています。
LICEさんの対処方法を支持します。
管理人様
はじめまして。
このサイトのおかげで色々と助かっております。
現在、VBから、既に作成済みのPDFファイルに対して、
テキストボックスにて文字列を入力するプログラムを作成したい
のですが、VB初心者なので全く分かりません。
色々と探しては見たのですが見当たりませんでした。
VBからPDFにテキストボックスを入力することは可能でしょうか?
もし可能であれば、追加方法を教えて頂けないでしょうか?
環境:
VB:VB2008
Acrobat:バージョン6
OS:XP
申し訳ありません。
記入漏れがあったため、補足させて頂きます。
テキストボックスの入力ですが、
1、対象のPDFは2種類(A4縦とA3横)あり、共に
決めたれたフォーマットで作成されているため、
毎回同じ位置に入力します。ただし、A4とA3で
位置は異なります。
2、テキストボックスの書式は、予めAcrobatでデフォルトを
設定しているので、そちらの設定で入力したいです。
デフォルト:背景塗潰し→なし 枠線→太さ0 フォント→MS 明朝
フォントサイズ→12
3、入力する文字列は、その時によって全て異なりますが文字数は
全て全角5文字です。
ご回答の程、よろしくお願い致します。
お尋ね者さん。初めまして。
お尋ねの件ですが。
当サイトで公開している技術内容では無理だと思われます。
※提供元(Adobe社)情報の半分程しか日本語公開していません。
テキストでは無く、「しおり」ならば機能は有りますが、かなりバクっていて不安定です。
申し訳ありませんが以下で再度の質問をご提案します。
Adobe Acrobat 日本語フォーラム
http://forums.adobe.com/community/international_forums/japanese/acrobat
初めまして。よろしくお願いします。
VB.NETを使い、PDFファイルをフォーム上に表示させようとしています。
表示させておいて、マウスを使い説明に使用するためです。
フォーム上はPDFを表示させるだけで、ツールバーなどは一切不要です。
WebBrowser1.Navigate(PDFファイルパス & "#toolbar=0")
で開きますが、画面左にナビゲーションパネルが表示されます。
WebBrowser1.Navigate(PDFファイルパス)
これだとナビゲーションパネルは非表示ですが、画面上に印刷や保存の
フローティングツールバーが表示されます。
(Acrobat ReaderはVer10のXです。)
これらのパネルやツールバーを表示させない方法をご教授いただきたく
お願いいたします。
Kageさん。初めまして。
質問内容はVB.NETのWebBrowserコントロールの使い方です。
当サイトはOLD経由でAcrobatアプリケーションを使用するコードを紹介しているところです。
PDFファイルを扱う、という趣旨だけは一致します。
それ以外は何も一致しません。
残念ですが、質問サイトを間違っています。
VB.NETのWebBrowserコントロールでPDFを扱った事は無いので、調査は多分出来ますが、回答にはかなりの時間(日数)がかかります。
(VB.NETのインストール&)一から調査する必要があるからです。
以下のMSフォーラムに質問する事をお勧めします。
http://social.msdn.microsoft.com/Forums/ja-JP/category/visualstudio
すこしでも解決につながれば幸いです。
管理人さん、お世話になります。
MSDNは思いつきませんでした。ありがとうございました。
Kageさんへ。
解決できますように。
初めまして。このサイトには大変お世話になっております!
早速ですが質問があります。
初歩的な事かもしれませんが、PDFに線を引くには
どのようにしたらよろしいでしょうか??
追加の方法がいまいち分からず・・・
テキストに対してアンダーラインを引くコードと線のみを引くコードを
教えて頂ければ幸いです。
よろしくお願いします!
maru さん。はじめまして。
現在、分かっている範囲で返答させて頂きます。
当サイトが扱っているOLEだけではその機能は実現できません。
Acrobat 8で動作確認をしましたが、注釈ツールの
「取り消し線」、「下線」、「線ツール」の機能がご希望だと思われます。
これに関しては当サイトで扱ってないAcrobat JavaScriptで実現できるかと予測しています。
※Acrobat JavaScriptに関しては未分野。
Acrobat JavaScriptに関しては以下を参考にしてください。
▼Adobe Acrobat 7.0 JavaScript 例文辞典
http://www.openspc2.org/reibun/Acrobat7/
▼Acrobat JavaScript Object Specification バージョン 5.0.5 日本語解説
http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf
▼Acrobat JavaScript Scripting Guide Technical Note #5430 バージョン:Acrobat 6.0
http://kb2.adobe.com/jp/cps/511/511235/attachments/511235_AcroJSGuideJ.pdf
それで該当するJavaScriptが分かれば、作業途中ですが以下のURLから
Acrobat JavaScriptをPDFに追加してOLEから実行できます。
※JavaScript実行する部分に関しては作業途中で解説無し。
http://pdf-file.nnn2.com/?p=757
http://pdf-file.nnn2.com/?p=754
少しでも解決につながれば幸いです。
管理人さん、ありがとうございます。
そうですか・・・javascriptを組み込む・・・
「strJavaScript = _
"//TextNはテキストフィールド名" & c13 & _
"var arr = [""Text1"",""Text2"",""Text3"",""Text4""];" & c13 & _ ・・・」
「'注意:追加されたJavaScriptがこの時点で一度実行される
objAFormFields.AddDocJavascript "hoge", strJavaScript」
を追加するという事でしょうか?PDFに埋め込みたくない場合は
どのようにしたらよろしいでしょうか?
maru さんへ。
前のコメントにも書きましたが当サイトは、
>>※Acrobat JavaScriptに関しては未分野。
です。
現在、技術の取得中(勉強中)ですのでお答えは出来ません。
まずはmaruさんが処理したい事を考えてください。
「「取り消し線」、「下線」、「線ツール」の機能がご希望」ならば
当サイトの技術情報では出来ません。
ざっと調べた感じではAcrobat JavaScriptでは出来るのではないかな?
と感じただけです。
後はお手数ですがmaruさんがしたいことがAcrobat JavaScriptで出来るか調べて判断してください。
>を追加するという事でしょうか?
あくまでもサンプルです。
それからはmaruさんが判断する事です。
>PDFに埋め込みたくない場合はどのようにしたらよろしいでしょうか?
当サイトの技術情報だけでは出来ません。
つまり当サイト管理人には返答できない内容です。
質問内容から判断すると当サイトでは解決できない内容です。
他のサイトを探してください。
残念ですが。
管理人さんへ。
そうですか・・・色々試しながらやってみたいと思います!
ありがとうございました!!
恥ずかしい質問ですみませんが、AxAcroPDF006.xlsをはしらせました。しかし
デバックモードで AcroPDF1 が黄色マークされ 定数が定義されていませんで 止まってしまいます。ほかにもなにかダウンロードが必要でしょうか?
・当方 サーバーにある ファイルを起動したいと考えていましてそれができません。最初はバッチファイルで始めましたが、どうもうまくゆかず、さまよってやっとこの素晴らしいURLにたどり着きました。ゴミ扱いにならないような内容でしたらでしたら、回答お願いします。アクロバットは Xでエクセルは2010です。リモートサーバ使用で パスワードいれないと ファイル開けないように管理されています。show のサンプルのコードに "http://xxxxxxxxxxx~"を置き換えて試しましたがアクロバットは立ち上がりますが、PDFファイルは開かずその前にID パスワードもきいてきませんでしたそしてその後は無反応でした。リモートサーバー管理の文書はどうすればたちあげられるのでしょうか?
宜しくお願いいたします。
昨日書きました内容に不備ありましたので訂正します。
1)デバックモードで AcroPDF1 が黄色マークされ 定数が定義されていません・・・・
・これは当方の問題でした。user Formの一方をカットしてさらに残りの
Formを縮小して、小さくしたためであったようです。(小さくした理由は、ダウンロードしたものをそのまま起動したら、「システムエラーです。:&H80004005(-2147467259)エラーを特定できません」とでてその後「メモリが不足しています」となったためです) 。大変失礼しました。
2)サーバーのpdfファイルの起動については、やはり起動しません。HDD内のものは問題なく起動するのに。ちなみにアクロバットを起動して 「開く」を選択してファイル名が入る EDIT の箇所に "http://xxxxxx・・・・"と張り付けるとちゃんと起動します。ID PW をきいてきます。不思議です。
以上訂正でした。
hota さん。
はじめまして。
・・、遅くなりました。
>・・定数が定義されていませんで・・
・・・。
>アクロバットは Xでエクセルは2010で・・
Acrobat Xがクライアントパソコンにインストールされてないと動きません。
またその場合は「参照設定」シートの設定が出来ない状態になり、当然ですがAxAcroPDF006.xlsも動きません。
>show のサンプルのコードに ”http://xxxxxxxxxxx~”を置き換えて試しましたがアクロバットは立ち上がりますが、・・・・
・・・、・・・。
>リモートサーバー管理の文書はどうすればたちあげられるのでしょうか?
それは本来、サーバーを管理している責任者又は担当者に聞く事と思っています、が・・。
>・・user Formの一方をカットして・・
修正したソースでエラーが出るからと言って質問されても・・・。
hotaさん、ギブアップです!
何度読んでも質問の内容が全く見えません。
申し訳ありませんが、Adobe日本語フォーラムへ質問して下さい。
私の非力な能力では無理です。
お願い致します。
初めまして。いつもこのサイトにはお世話になっています。
さっそく質問させてください。
excel2010 VBA にて以下の一連処理を自動で実施したいと考えております。
①jpg画像ファイルを読み込み→②Adobe Acrobatのテキスト認識を実施→③一部文字列をExcel抽出。
①③はテスト的に実行が出来たのですが、②のテキスト認識がうまく行きません。
objAcroApp.MenuItemIsEnabled("Cpt:CapturePages")を使い、認識は出来るのですが、Acrobat側でメッセージBoxが開かれ、OK等の返答が無い限り、Excel側にフォーカスが戻ってきません。
そこで一度メッセージBoxのボタンを押さなければ次へ進みません…
そこでご質問したいのが、サイレント(メッセージBOX非表示)でテキスト認識が可能なメソッドはありますでしょうか?
お時間ある時で構いませんので、ご返信お待ちしております。
遊び人 さん
はじめまして。
その手のサイレント実行に関する情報は当サイトには無いです。
他のサイトを見ても存在しないでしょう。
そこで逃げ手をご提案します。
1)ダイアログボックス画面等が表示されたら自動でクリックするフリーソフトを導入する。かなりの数が存在するはずです。
2)Windows APIを使ってプログラミング的に手動でクリックする。ネット検索でお調べください。
3)Auto IT等の自動化プログラミング・ソフトを使って強制的にクリックする。既に経験済みで重宝しています。難点はスキルと使い方を取得するまでにかなりの時間を必要とする事です。英語版ですが日本語情報も存在します。お時間が有るのならば、コレをオススメしたいです。
解決につながれば幸いです。
返信遅れまして、申し訳ありません。
なんかと解決に至りました。
ご提示して頂いた案の中でフリーソフトを検討したのですが、社内システム科にて承認されていないソフトのインストールは却下されました…
そこでVBSのWshShellオブジェクトからAppActivate(PDFを指定しアクティブ化)→SendKeysメソッド(メッセージBoxへEnter送信)→Excelにフォーカスが戻る
という流れで無事進みました。
頂いたヒントより解決に至りましたので、お礼申し上げます。
ありがとうございました!