▼ サイトの紹介
このサイトはExcel VBAから、Acrobat アプリケーションをプログラミング操作するOLE機能について解説しています。
Adobe社はこのOLE機能の事を「IAC」と表現しています。
(注意:Adobe Readerだけでは使用出来ません)
Adobe社提供のSDK資料を元にサンプルを加えて説明をしています。
サイト管理人もご覧下さい。
▼ 当サイトの使い方
当サイトをうまく使う上での手順を以下に示します。
- 最初に「Acrobat SDK:OLE objects and methods図を入手する」にあるオブジェクト連携図を手に入れます。出来れば印刷する方が見やすいです。1頁です。
- 下記の「Excel」、「Acrobat」、「ダウンロード」、「SDK」、「備考」にサッと目を通します。「その他&メモ」は特に見なくてもイイです。
- 自分が目的とする処理を探しながら、印刷したオブジェクト連携図を元にサイト右記「Object & List」下を上からクリックしてザックリと内容を見ます。各オブジェクトのメソッドの詳細は後にして全体で何が出来て、何が出来ない(サポートされていない)かを把握します。
「Acobat OLE 以外の選択」も見て下さい。 - 目的が解決出来ない時は、キッパリとあきらめてAdobe社の日本語「Acrobatフォーラム」で相談します。当サイトより質が高い。
- それでもダメなら、当サイトにコメントを入れてみます。サイト管理人がある程度、判る範囲でお答えをします。
(お願い:管理人を「様」での呼び方はご遠慮下さい。管理人さん、で十分です。)
▼ Excel
- Excel からAcrobatを操作する訳
- Excel から PDFファイル を作成&操作出来る
- Excel のオブジェクトブラウザ
- Excel からAcrobatを起動する
- Excel からPDFファイルを起動表示する
- Excel サンプル:PDFの文書プロパティを表示する
- 上記7のサンプルファイルの実行エラー
- Excel VBA 実行エラー時のメッセージ
- Excel でOLEの参照設定をする
- Excel でOLEの参照設定をする (AFormAut の追加)
- Excel でOLEの参照設定をする (Stream の追加)
- Excel でOLEの参照設定をする (MSXMLの追加)
▼ Acrobat
- Acrobat SDK:OLE objects and methods図を入手する
ここで示す図は必ず入手する必要があります。
これが無いとオブジェクト連携が判らなく、OLE(IAC)操作が出来ません。 - Acrobatアプリケーションを閉じる(実は簡単に出来ない)
- Acrobat OLEのエラーを防ぐVBAロジック
- Acrobat OLE 使用上の注意事項
- Acrobatプログラミングにおける技術上の制約やライセンス上の制約
- PDFファイルを作成、及び操作する開発者に対しての注意事項
- Windows のコマンドラインから Acrobat や Adobe Reader を使用して印刷する方法
- PDFドキュメントの文書フラグとは
- PDF バージョンとは
- PDFバージョンの変化
- ExportTask.xml
- 一括で複数ファイルを処理(アクション、バッチ処理)
- PDF の3つのパスワード
- PDFのパスワードは32文字まで
- 印刷の問題点を解決
- PDF内での座標の起点
- Acrobatとレジストリ
- PDF上のテキストとその座標
▼ ダウンロード
- 各種サンプルのダウンロード
- Adobe Acrobat 9.1 SDK のダウンロード
SDKをダウンロードしてサンプル、解説PDF,HTML等を入手する必要があります。
Adobe Acrobat X SDK のダウンロード情報も入ってます。 - Adobe Acrobat 8.1 SDK のダウンロード
この 8.1 バージョンのSDKは現時点(2013/10/03)で一般公開されてません。
情報が入り次第、掲載します。 - Acrobat製品別ダウンロード先 URL
- AcroPDFLib.AxAcroPDF:Excel VBAサンプル(A)
- AcroPDFLib.AxAcroPDF:Excel VBAサンプル(B)
- Adobe Readerの各種バージョンのダウンロード
▼ SDK
- AcrobatプログラミングにおけるMenu and Toolbar Button Names 一覧
- PDDocのGetJsObjectのオブジェクト構造図が見当たらない
- Acrobat SDK:正誤表
Acrobat SDK v8.1ドキュメントに記載ミスが有ります。 - Acrobatに関するSDKが Acrobat Developer Center からダウンロード出来ます。
- Acrobat JavaScript における「Safe Path:セーフパス」についての注意事項
- Acrobat SDK公開Webサイト URLの取得方法
▼ 備考
- JavaScriptの解説はAcrobat v7 v8 共に英語版です。しかし、旧バージョンですがコメントを頂いた方から日本語版のAcrobat JavaScript解説PDFが見つかりました。以下がそのPDFです。
http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf - [2009/1/7] AcroExch.AVDoc:Open メソッド でバグ?を発見しました。Acrobat v8.1.3 v9.0が対象です。
▼ その他&メモ
- OCR機能:読んde!ココと比較した結果
- アドビ(Adobe)製品に関するRSSの情報
- 添付ファイルの扱いには注意が必要
- AcrobatはPDF作成ソフトの標準では無くなる?
- Acrobat PDF は国際標準化された
- 「手書きPDF入門」 リンク
- planet pdf (PDF関連の英語サイト) リンク
- デフォルトプリンタを一時的に変更する方法
- Delphi(デルファイ,デルフィ)言語からの使用方法
- Acrobat使用時のレジストリ変化を取得する方法
- オブジェクトは値では無く、参照情報を持つ
- Adobe Reader で PDF ファイルを表示 / 印刷する方法
- サンプル:RGB値の一覧(カラー番号)
- 「・・このバージョンの Acrobat ではサポートされていない新しい形式・・」警告メッセージへの対応
▼日本語の資料
日本語版で公開されている技術情報が非常に少なく、また対応バージョンも古く、作成年度も古いのが多いです。しかし、PDF 又はAcrobat のエンジニア向けの基本的な技術はこの10年間はそれ程進歩していません。よって思った以上に使える事に気がつくはずです。
公開されている情報は今後消滅すると予想されます。必要な情報はバックアップする事をお勧めします。
▼ Acrobat SDK 関連
Acrobat JavaScript Object Specification バージョン 5.0.5テクニカルノート# 5186 改訂日:2001年9月14日
(297頁) Acrobat 5.0 JavaScript リファレンスマニュアル。
PDF ドキュメントでJavaScript を使用するために必要なすべての情報。
※2018/10 リンク先は消滅しました。- Developing Acrobat Applications Using JavaScript
Adobe Acrobat SDK バージョン 8.0
(220頁) JavaScript を使用してAdobe Acrobat での開発や拡張したりする方法について
説明したマニュアル。必読! - JavaScript for Acrobat 3D Annotations API Reference
Adobe Acrobat SDK 2007年4月バージョン 8.1
(105頁) 3D 機能(3D注釈のJavaScript API)をユーザに提供したい開発者を対象にしたマニュアル - Parameters for Opening PDF Files(日本語版)
Adobe Acrobat SDK Version 8.1 April 2007
(8頁) PDF ファイルをURL やコマンドの中で開く際に使用できるパラメータについて説明したマニュアル - Adobe Acrobat Workshop
(78頁) Acrobat 7.0 JavaScript、API、IAC等の開発環境に関する概念の説明図 - Adobe Acrobat 7.0 Acrobat JavaScript Scripting Guide 2005年1月7日
(276頁) Acrobat JavaScript を使用して開発したり拡張したりする方法について簡単に説明ししたもの - Programming Acrobat JavaScript Using Visual Basic
Technical Note #5417 バージョン:Acrobat 6.0 2003年5月
(14頁) Acrobat 6.0 提供のJSObject と言うOLE オートメーション機能のプログラミング環境に関しての概念を説明したもの - Acrobat JavaScript Scripting Guide
Technical Note #5430 バージョン:Acrobat 6.0 2003年5月
(90頁) Acrobat 6 Pro に搭載されている JavaScript 開発環境を使用して Acrobat アプリケーションを開発したり拡張したりする方法を簡単にまとめたもの - Upgrading Plug-ins From Acrobat 5 to Acrobat 6
Technical Note #5424 バージョン:Acrobat 6.0 2003年7月
(28頁) Acrobat 6 API の概要を説明し、Acrobat 5 およびそれ以前のプラグインを Acrobat 6 にアップグレードする際に開発者が理解しておくべきことについて説明したマニュアル - Adobe® Solutions Network Developer Program FAQ for Members
Version 3.0 MAY 2002
(461頁) ASNディベロッパーサポートプログラム会員から頂いたAcrobat Plug-in API,IAC,Readerに関する質問を整理した情報 - Acrobat Developer FAQ
Adobe Developer Relations 改定:1999年9月2日
(37頁) 質問および回答形式を整理した情報 - Parameters for Opening PDF Files(日本語版)
Adobe Acrobat SDK Version 8.1 April 2007
(24頁) Acrobat SDK でよくある質問と回答を整理したもの - Adobe Acrobat 7.0 Acrobat SDK ユーザガイド 2004年12月14日
(124頁) Acrobat SDKで提供されている機能、Acrobatで提供されている機能とその操作説明等 - JavaScript for Acrobat API Reference
Adobe Acrobat SDK バージョン 8.0
(765頁) Acrobat JavaScript の詳細な解説書/リファレンス
▼ Acrobat 一般資料
- Adobe Acrobat Security ディベロッパーサポート 2005年4月7日
(43頁) Acrobat 7.0 の各種セキュリティに関する概念
管理人の独り言
- 2010/4/26 「Appメソッド一覧」移行完了。かなり見直したので、結構解説が難しくなってしまったかも・・。全部の移行が完了したら、再度見直す事にして、次に行きます。
- 2010/5/14 データの移行と再リンクが終わりました(汗)。サイトマップの構成も少し見直して・・。後は見直し(リニューアル)する必要有り。OLE(IAC)の全貌が判った時点で細かい部分の追加が必要となった。各頁にかなりの追加と再テストが必要だが既に環境は出来あがっている。本当の踏ん張ると事はココからかもしれない。
- 2010/5/18 Appオブジェクトの移行が完了しました。
- 2012/11/12 AFormAut オブジェクトが IAC に含まれていない盲点に orz
- 2013/10/14 JavaScriptAPIと言う当サイト独自の表現を JSObject と本来の表現に変更する。
- 2015/5/9 サイトのレイアウトを変更。
▼ Acobat OLE 以外の選択
Adobe Acrobat OLE(IAC)以外で、PDFファイルをプログラミング操作する情報を以下に提供します。
VBA の Shell 関数(又はWscriptのExec関数)で起動する事により、IACには無い機能で複数ファイルの自動化処理が可能だと思われます。
- Qpdf
PDF をコマンドラインで操作するツール
セキュリティ(パスワード)の設定が出来る! - Poppler
PDF をコマンドラインで操作するツール
Xpdf をペースした機能拡張版
注意:公式サイトからはWin版EXEは配布されてません。 - pdf2htmlEX
PDF をHTMLへ変換する高性能なツール - Coherent PDF Command Line Tools
非常に多機能なコマンドラインツール
ライセンスに注意が必要 - Xpdf
PDF をコマンドラインで操作するツール
Popplerの旧バージョン。安定版。 - PDFtk * ※検証予定(時期未定)
PDF をコマンドラインで操作するツール - PDFill PDF Writer: PDF作成ツール
コマンドラインの使用は有償版のみ。
無償版と有償版。表示は英語。 - ★その他の各種ソフトとツール★
各種のPDFソフトウェアを一覧でまとめたサイトです。
たぶん、ココの情報が最新で内容も充実してると思われます。
[コメント入力] <-をクリックするとページの最後にコメント入力が出来ます。
名前(ニックネーム)は必須。メールアドレス(非表示)も必須ですが、適当で結構です。
【更新日:2019/06/05 (11版)】
管理人さん こんにちは
>1)PDFファイルをテキストとしてVBAで読み込む。
衝撃的でした。この回答。
また、さらに色々と調べて頂いていたのですね。
感謝してます。
当方でカラー(jpg)でスキャニングしたデータをpdf変換し、拡張子を.txtとしてエディタで見てみますと確かに『RGB』の文字があります。
↓この部分
<< /Type /XObject /Subtype /Image /Name /Im1 /Width 1650 /Height 2334
/BitsPerComponent 8 /Filter /DCTDecode /ColorSpace /DeviceRGB /Length 9 0 R >>
よって、モノクロ・カラーの識別は、テキストとしてVBAで読み込み、『RGB』という文字があるか単純に走査していけばよいのではないでしょうか。大量処理したときには、ちょっとレスポンスが心配ですが…。(安易な素人考えかな?)
>もし英語に堪能ならば
全然だめです。一般教養すら乏しいです。
でも、dreams come trueなら貪欲に調べてみます。
貴重な時間を使って頂き、本当にありがとうございました。
>『RGB』という文字があるか単純に走査・・
いや、それでも多分ダメでしょう。
グレー指定でスキャンし、PDFファイル化したものにも「/DeviceRGB」は存在します。
こちらでのテスト環境
スキャナ:Mustek 600CP ※<-化石。中古で1027円。
OCRソフト:読んde!!ココ v12.0
読んde!!ココで読み込んだ画像をPDF化しています。
もしグレー指定でスキャンした時に「/DeviceRGB」がPDFファイルに存在しなければ、ぜひスキャン部分の詳細な情報をお願いします。非常に興味があります。
管理人さん
お疲れ様です。
こちらで使っているスキャナーは、CANON DR-7080Cです。
グレー指定でスキャンしてみました。
1.カラー原稿をtiff(G4)、グレー諧調でスキャン
2.Acrobat7でPDF化
3.PDFファイルの拡張子を.txtに変更
4.テキストデータ中には、『DeviceGray』という文字があります。
こちらは、『DeviceRGB』ではないです。
<< /Type /XObject /Subtype /Image /Name /Im1 /Width 3507 /Height 2480
/BitsPerComponent 8 /Filter /DCTDecode /ColorSpace /DeviceGray /Length 9 0 R >>
よって単純にカラー・モノクロの識別ではなくグレーも識別できるということですかね。
ちなみに当方としては、グレーもカラー扱いでカウントしたかったので、『DeviceGray』か『DeviceRGB』だったらカラー枚数のカウントアップとするロジックでよいような気がします。でも、機種によってはまだほかにもなにかあるのかな…。
ン~~~ム。(汗
確かにISOによるPDF仕様書1.7(PDFリファレンス)に「/DeviceGray 」が見つかりました。tiffファイルにそれにつながる情報が含まれているのかもしれません。
こちらでは無理と思いましたが、icevainさんの手順&環境ではグレー/カラーの判別は出来るかもしれません。ただ、これがシステム化されるものならば、環境やicevainさんが言っている機種による十分なテストが必要と感じます。
PDF仕様書1.7を見ると以下の記述があります。
Primary color components for the standard native device color spaces (Gray for DeviceGray; Red, Green, and Blue for DeviceRGB; Cyan, Magenta, Yellow, and Black for DeviceCMYK;).
つまり、DeviceGray, DeviceRGB, DeviceCMYK の判断が出来るみたいです。それ以外にCalGray,CalGray,ICCBasedもあるみたいですが、多分問題無いかな・・。
Acrobat7はPDF仕様書1.6に該当するので一概に言えませんが、DeviceGray, DeviceRGB, DeviceCMYKの記述はあるので大丈夫だと、思います。
PDF仕様書・関連は先週から勉強を始めたばかりなので難しくて判らない事だらけなんです。
今日はこの後、用事で出かけないといけないので明日にでもtiffファイルからのPDF化してみます。PDF仕様書(※超苦手な英語)も調べてみます。
遅くなり、既に解決済みとは思いますが調査結果を。(汗
以下の辞書「<<・・・>>」ラインの中に入っていました。
※Color:スキャナーでカラー指定
※Gray:スキャナーでグレー指定
※LineOut:スキャナーでテキスト指定
<</Subtype/Image/Length ・・・・/BitsPerComponent
Acrobat 7.1.2 Color : /DeviceRGB
Acrobat 7.1.2 Gray : /DeviceGray
Acrobat 7.1.2 Text : /DeviceGray
<</Subtype/Image/Length ・・・・/BitsPerComponent
Acrobat 8.1.5 Color : /DeviceRGB
Acrobat 8.1.5 Gray : /DeviceGray
Acrobat 8.1.5 Text : /DeviceGray
<</BitsPerComponent
Acrobat 9.1.1 Color : /DeviceRGB
Acrobat 9.1.1 Gray : /DeviceGray
Acrobat 9.1.1 Text : /DeviceGray
結果的に上位バージョンでも辞書内容が異なりますが「/DeviceRGB」、「/DeviceGray」は変わりませんから、バージョンアップ時でも現在は問題ないでしょう。なおスキャナーでのテキスト読み込み指定時は全て「/DeviceGray」になります。
まあ、いい結果と言えるのでしょうか。
管理人様
こんにちは
貴重な調査結果を公表していただきありがとうございます。
カラー・モノクロの枚数カウントについては掘り下げればまだ疑問とするところが多々ありますが、管理人さんのご教授によりかなりスッキリしてきまった。
今私は、セキュリティ付PDFのダイレクトプリントについてあれこれ検証していますが、PCの環境やacrobat、readerそしてバージョンなどの違いなどで頭を悩ましています。しかし、この問題も管理人さんのこのサイトに何かヒントがあると思って拝見させて頂いております。
貴重なお時間を費やしていただき有難うございました。感謝感謝です。
icevainさん。
多少はお役に立てたのでしょうか。
>・・セキュリティ付PDFのダイレクトプリント・・
オオ、なんかヤバそうな感じも受けますが。
「セキュリティ」なんてモノは破られる為にあるものであって、あまり意味をなさないような気もします。
※なんて、書いてもいいのかな?
武運を祈っています。
管理人さんに絶賛です。
>※なんて、書いてもいいのかな?
書いていいんですよ。
>「セキュリティ」なんてモノは破られる為にあるものであって、あまり意味をなさないような気もします。
そのとおりなんですよ。
巷にはフリーの解除ツールがありますからね。
それに電子データまたは電子化データにした時点で不正コピーや改ざんに了解しましたよって思わなきゃいけないのに、悪あがきする連中がおりまして…、困ったものです。ブツブツ…。
これからもよろしくお願い致します。応援してますよ。
管理人様
はじめまして
VBAでEXCELファイルを複数、Adobe PDF(Acrobat7.0) プリンターへ出力(印刷)をするのですがこのとき、PDF化されるのですが、Acrobat がEXCELファイル分起動されるので、どうしたらVBAで閉じれるかがわからず困っています。
何か方法があれば、よろしくお願い致します。
Hiroさん。初めまして。
Excel(VBA)の複数起動+Acroabtの複数起動、ですか。
Acroabtが複数起動されるのは納得出来ます。それぞれが違うプロセスとしてメモリ上にExcelのVBAから起動されたからです。
それが閉じれない? というのは変ですね。
各ExcelのVBAでは使用したExcelファイルを閉じて、そして
'Acrobatアプリケーションを終了する。
lRet = objAcroApp.Hide
lRet = objAcroApp.Exit
をしているでしょうか。
タスクマネージョーを起動して、ExcelとAcrobatの2つのプロセスがメモリ上でどのような動きをしているか観察しながらデバッグをしてみてください。
管理人様
ご返事ありがとうございます。
ファイルが10程度なら何も起こらないず、300ファイルぐらいになると起こるのでメモリ等の状態を見ながら、調べていきます。
また、ご相談するかも知れませんのでよろしくお願い致します。
ありがとうございました。
300ファイルを扱うとは・・;。
Excelも想定外でプロセス管理がうまく出来ていないのかもしれない。
という事はOSがプロセス管理が出来ていない、という事にもつながる。
Excelの起動時に何らかの制限を設ける方がいいかもしれないですね。
管理人様、こんにちは
こちらのURLがメインであると今気がつきました、申し訳ありません。
旧ページの私のコメントは削除をお願いいたします。
改めてこちらで
>それをShowすると指定PDFが画面表示され、タスクバーにも現れる。
>これはビック・ニュースです!
>
>
>で、問題点ですが・・;。
>
>>・・ダイアログ操作が行えなくなる場合・・
>
>破損したPDFファイルでOPENエラーになった場合の事でしょうか。
>イマイチ、問題点が理解出来ません。
当方のでの問題は、
互換性依存等のダイアログ等が表示される状態にて、
ユーザーが「このダイアログを表示しない」
のチェックを入れていないと、IACが応答不能
(おそらく、ウィンドウ表示をしない状態でダイアログ待ちになっている)
です。
管理人様
はじめまして
Acrobat9proを使用しています。
pddocオブジェクトのSetInfoの質問です。
タイトルの設定時は元のタイトルが上書きされますが、
キーワードの設定時は「;」の区切りが入り、追記となってしまいます。
キーワードの元のデータを削除する方法をご存知でしょうか?
Tomoさん。初めまして。
管理人のnoriです。
(移行中で御不便をお掛けします。)
Setinfoの件ですが。
最新のAdobe Acrobat 9.1 SDKを見ました。
以下のURLで見れます。
http://livedocs.adobe.com/acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?href=IAC_DevApp_OLE_Support.100.25.html#1516611&accessible=true
Setinfoが有り、Getinfoも有る。ならば「Deleteinfo」があってもおかしくないのですが、有りません。
困りました、ね・・;。
一つの案ですがキーワードを指定して、値は空「""」にするのはダメでしょうか。キーワードは残りますが、値は消す事が出来ます。
lRet = objAcrobatPDDoc.SetInfo("PS", "")
mrkexeさん。
お手数を掛けてスミマセン。
(移行作業中メッセージの挿入が1日遅れました)
>show と openを逆にすると、問題は発生しないようですが。
>この順だと open時にPDF側がダイアログを表示(バージョン互換とかの)すると、
>ウィンドウが表示されていないため、ダイアログ操作が行えなくなる場合があるようです。
上記の意味が理解できました。
それでAcrobat 9用のPDF(PDF仕様1.8)をAcrobat Pro 8.1.7でOpenしてテストしてみました。
「互換性問題が有ります」のダイアログが『画面』表示されました。
Acrobat 7.0の環境が今は直ぐに作れないので、画面表示されないのは確認できませんでした。(Acrobat 6環境はありますが、OLEの記述が少し違うのでテストに少し時間がかかる・・;。イヤ、眠くて:汗)
それで問題のダイアログの表示で「このダイアログを表示しない」のチェックを『事前』にオン状態にしておけば良いと思うのですが。
[HKEY_CURRENT_USER\Software\Adobe\Adobe Acrobat\8.0\AVAlert\cCheckbox]
"iDontShowWarn"=dword:00000000
"idocNewerVersionWarning"=dword:00000001 <-この部分を追加する
上記のレジストリの「idocNewerVersionWarning」行全体を追加するとチェック・オン状態になります。但しAcrobatプロセスが起動する前に行う必要があります。理由は他のコメントにも書きましたが、Acrobatは起動時にレジストリの内容を読み取り、終了後に書き込みを行っているみたいだからです。起動中にレジストリは見ていないテスト結果が出ています。
なお、上記レジストリを設定するとVBAの「objAcroAVDoc.IsValid = 0」にならなく正常?に処理は続行されました。
これが良いかの判断はmrkexeさんの詳細な目的が判らないので出来ません。
また上記のレジストリを見るとバージョン番号「8.0」部分があります。Acrobatバージョンのインストール環境により、この部分の数値は変わると思われます。(Acrobat 8でしかテストしていないので)
これで解決のヒントになったでしょうか。
管理人様、ご回答ありがとうございます。
「このダイアログを表示しない」の表示の件、
ご回答いただいた、レジストリで対応する方法で検討してみようと思います。
>これが良いかの判断はmrkexeさんの詳細な目的が判らないので出来ません。
当方作成中のアプリケーションは、AcrobatCoreAPIを用いて作成した
AcrobatAPIをAcrobatメニューに追加し。
他アプリケーションからIACを用いて
1.Acrobat起動
2.PDFドキュメントを開く
3.上記APIをMenuItemExecuteで実行
4.Acrobatを終了
を自動化すると言うものです。
上記「2.」でIACの応答が戻らないのが問題でしたので、
ご回答いただいたレジストリの設定値を用いて。
処理前後に、
0.レジストリ設定値を読み込み、チェックを付ける
5.「0.」で、チェック無しのユーザーであれば、チェックを戻す
を追加することで対処できそうです。
ご回答ありがとうございました。
to管理人様
レジストリ値を操作し、「互換性の問題があります」の
ダイアログを抑制する件、当方でも検証を行いましたので、
ご参考に結果を報告させていただきます。
1.Acrobat 7.0/8.0
ご指摘の方法にて、ダイアログを抑制可能であることが確認できました。
また、この方法は、adobe社より配布されている
http://www.adobe.com/jp/support/kb/ds/511/511338/511338_UserGuide.pdf
「511338_UserGuide.pdf」の48pにて言及されていることも確認できました。
2.Acrobat 6.0
この方法では、ダイアログを抑制できないようです。
そもそも、Acrobat 6.0では「互換情報ダイアログ」にて
「ウィンドウを表示しない」のチェックをユーザーがオンにしても
この値は保持されないようで、一度Acrobatを終了すると、
次回もダイアログが表示されるようです。
上記の動作から判断し、
Acrobat 7以前では、通常通りshow → openにてAcrobatを起動し、
ユーザーにバージョン情報ダイアログを操作させる。
Acrobat 8以降では、open → showにてAcrobatを起動し、
レジストリ値の編集しダイアログを抑制する。
といった処理で対応しようと思います。
以上です、ありがとうございました。
管理人様
返答ありがとうございます。
>一つの案ですがキーワードを指定して、値は空「”"」にするのはダメでしょうか。
>キーワードは残りますが、値は消す事が出来ます。
>lRet = objAcrobatPDDoc.SetInfo(”PS”, “”)
私の説明不足ですみません。
「文書のプロパティ-概要タブ」のタイトルや作成者やキーワードなど既存する項目は、
SetInfoでその名前を指定すれば、値を変更できると思います。
「文書のプロパティ-概要タブ」のタイトルの値であれば、
lRet = objAcrobatPDDoc.SetInfo(”Title”, “”)と指定する事で、
元々の値を消す事ができますが、
「文書のプロパティ-概要タブ」のキーワードの値については、
lRet = objAcrobatPDDoc.SetInfo(”Keywords”, “”)
と指定した場合、元々キーワードの値に例えば「あいう」が入っていたら
「; あいう」というように区切り文字「;」が入り追記となってしまい、
「あいう」を消す事ができないのです。
この元々の値を消す方法で困っています。
(ほんとDeleteInfoがあればいいのに…)
mrkexeさん。
解決出来そうみたいで良かったです。
しかし、かなり複雑な処理を行っているようで当サイト以上の情報を持っている様に感じました。
それで書き忘れた事があるので、そのテストもお願いします。(汗
Adobe Readerも同じ動きをするかのテストです。
処理にもよりですが、見るレジストリがたま~に違うときがあります。
不可思議な現象としか言えません。
あっ、それとテスト結果の情報提供、有難うございました。
何らかの形で公開したいと思っています。
to:管理人様
>Adobe Readerも同じ動きをするかのテストです。
当方Readerは 9.0の環境しか準備できなかったため
Reader 9.0にて確認を行いましたところ。
(Readerには、AdobeCoreAPI プラグインを組み込めないので、
当方作成のアプリ対象外なのです、すいません・・・)
ReaderでもAcrobatと同様にダイアログを抑止できることがわかりました。
なお、Readerではキー値は以下の通りとなるようです。
HKEY_CURRENT_USER¥Software¥Adobe¥Acrobat Reader¥9.0¥AVAlert¥cCheckbox¥
dword = idocNewerVersionWarning
>処理にもよりですが、見るレジストリがたま~に違うときがあります。
>不可思議な現象としか言えません。
Adobeの動作を見る限りですが、上記レジストリキー値
HKEY_CURRENT_USER¥Software¥Adobe¥Acrobat Reader¥9.0¥AVAlert¥cCheckbox¥
自体が、ユーザー確認ダイアログにてチェックを押し、
そのAcrobatを終了するまで作成されないようです。
つまり、idocNewerVersionWarningを書き込む場合、
キーが存在しない場合は、それも書き込まないといけないようです。
(Adobe社的にOKなのかは微妙なところかも知れませんが・・・)
>しかし、かなり複雑な処理を行っているようで当サイト以上の情報を持っている様に感じました。
このサイトをはじめ、多くのサイト、情報などに助けられここまで作成できました。
特にIACに関しては、このサイトの情報がもっとも参考になりました、
お忙しいところかと思いますが、サイト移行作業がんばってください。
以上です。
1点追記です
PDFデータ先頭のPDFバージョンを示す
「%PDF-1.5」当の記述を、現在存在しないバージョンにすることにより、
最新版のPDFでも「バージョン互換ダイアログ」を表示することができるようです。
上記検証は、この方法で(無理やり)行いました。
mrkexeさんへ。
>「%PDF-1.5」当の記述・・
PDFのテキスト処理ですね。
PDFの仕様書まで駆使しているとは恐れ入りました。
>・・(無理やり)・・
そこ言葉、好きです。(笑
tomoさん。
遅くなり、又、的違いをしてしまい申し訳有りません。
質問には「タイトル」と書かれていたのに、「メタ情報」関連と勘違いしていました。
lRet = objAcrobatPDDoc.SetInfo("Keywords","AAA")
こっちの方ですね。
旧サイトのhttp://pdf-file.jugem.jp/?eid=148のサンプルで
「PS」->「Keywords」に変更してテストしてみました。
テスト環境は以下の3つ。
1) Windows XP Pro + SP3 + MicrosofUpdate +
Microsoft Excel 2003 (+ SP3) +
Adobe Acrobat 9 Pro Extended (v9.1.3)
2) Windows XP Pro + SP3 + MicrosofUpdate +
Microsoft Excel 2003 (+ SP3) +
Adobe Acrobat 9 Pro Extended (v9.2.0)
3) Windows XP Pro + SP3 + MicrosofUpdate +
Microsoft Excel 2003 (+ SP3) +
Adobe Acrobat 8 Pro (v8.1.7)
テスト結果ですが、どれもキーワードの設定時に「;」の区切り文字は入りませんでした。
lRet = objAcrobatPDDoc.SetInfo("Title","")
と実行すると文書プロパティのキーワード部分は空になります。
見せれる範囲で結構ですのでtomoさんのスクリプト(プログラムコード)を最初から見せて頂けないでしょうか。
管理人様
こちらの環境は
Windows XP Pro + SP2 + MicrosofUpdate +
Microsoft Excel 2003 (+ SP2) +
Adobe Acrobat 9 Pro (v9.1.3)
です。
ここに記載するプログラムコードは、管理人様のサイトにある状態を
そのまま記載しておきました。やはり区切り文字が入って追記状態と
なりました。
Private Const PDSaveFull = &H1
Sub Macro1()
Dim objAcroPDDoc As New Acrobat.AcroPDDoc
lRet = objAcroPDDoc.Open("ファイルパス")
c = objAcroPDDoc.SetInfo("Keywords", "")
'c = objAcroPDDoc.Save(&H1 + &H4 + &H20, a)
c = objAcroPDDoc.Save(PDSaveFull, a)
lRet = objAcroPDDoc.Close
Set objAcroPDDoc = Nothing
End Sub