オブジェクトの連携図 [ OLE objects and methods ]

TOP > OLE objects and methods


Epidemia de Pánico / Panic Epidemy

はじめに

Acrobat OLE で連携するオブジェクト、メソッド、プロパティの一覧を図にした物です。

※オブジェクト(=機能単位)、メソッド(=命令)、プロパティ(=値)

当サイトを見る上で必ず必要になる図です。2種類存在します。

 

オブジェクトの連携とは

各変数(オブジェクト)内の「情報の受け渡し」を意味します。objAcroAVDoc変数で処理した結果をobjAcroPDDoc変数で処理させたい時はココの連携図に従って、情報の受け渡し用のメソッドを実行する必要があります。しないと何を処理してイイのか各変数(オブジェクト)は判りません。

例1:悪い例

lRet = objAcroAVDoc.Open("D:¥In-1.pdf", "") 
・・処理・・
lRet = objAcroPDDoc.Save (37, "D:¥Out-1.pdf")

1の解説

 In-1.pdf ファイルをオープンしています。それを Out-1.pdf で保存しようとしています。しかし、objAcroPDDoc 変数(=オブジェクト)は In-1.pdf ファイルの情報を持っていません。よって Save メソッド(命令)は正常に処理できません。

例2:良い例

lRet = objAcroAVDoc.Open("D:¥In-1.pdf", "") 
・・処理・・
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
lRet = objAcroPDDoc.Save (37, "D:¥Out-1.pdf")

2の解説

GetPDDoc 命令(メソッド)でIn-1.pdfファイルの処理結果をobjAcroPDDoc変数(オブジェクト)に受け渡ししています。これでobjAcroPDDoc.Save 変数は正常に保存の処理が出来ます。 これを「オブジェクトの連携」と言います。

 

連携図

1つ目は当サイト管理者が作成して使用している連携図です。

項目が多くてちょっと見難いですが、当サイトで解説しているOLEが理解できてくると、コッチの方が見やすいです。綺麗なのが欲しい方はPDF でもダウンロード出来ますので、ソチラを見てください。

 

 

 





 

2つ目はSDKによって提供された物です。最初はこちらの方がシンプルで見やすいです。

 

OLE objects and methods

 

これはSDK ver 8.1 のPDF解説書「iac_developer_guide.pdf (Developing Applications Using Interapplication Communication)」の30ページ(2016/03/01時点)にあります。

SDKの「Adobe Acrobat 9.0 SDK」のPDFファイルには上記の図は見当たらなかったです。入手するには「Adobe Acrobat 8.1 SDK」をダウンロードする必要があります。

※現時点(2013/10/11)でダウンロード出来るSDKは 9.1  X(10.0)  のみですので、上記画像を印刷してください。

以下のWEBサイト(「Adobe Acrobat 9.1 SDK」)でも公開していますが画像が荒くて見にくいです。

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

 

注意点

当サイトに来たばかりでは意味不明かもしれませんが、以下はメモです。

  1. 以下のオブジェクトは他のオブジェクトの実行する時の引数に使われます。
    Time , Rect , Point , HiliteList オブジェクト
  2. 機能的には独立しているので、上記の連携図には有りません。
    AcroPDFLib.AxAcroPDF オブジェクト
  3. 以下だけはPDDoc からの連携専用のメソッドが存在しません。
    AFormAut オブジェクト
    この↑オブジェクトはPDDocの最新の状態に自動的に連携するようになっています。よって連携用のメソッドは存在しません。

 

参照

 

TOPへ

「オブジェクトの連携図 [ OLE objects and methods ]」への2件のフィードバック

  1. 1.何をしようとしているのか?
     ①所定のフォルダにあるPFDファイルのページ数を取得して
       ファイルの一覧を表示する。
     ②一覧に表示されているページ数から印刷するページを入力して
      入力された該当ページを設定されているプリンタに印刷する。
     ③ダイレクトメールのような帳票があります。(請求書など)
      大量のデータを受け取り帳票の所定の座標に対して入力データの項目を1ページごと
      編集して印刷しています。
      現状、紙に印刷していたものをPDFファイルとして作成する。
      PDFの作成時は1ファイルのページ数および解像度、
      出力時のファイル名は外部設定ファイルで指定する。
      
     以上、3点を実現する必要があります。

    2.開発環境 (利用しているツール)
     1) Windows 7
     2) Acorobat SDK
     3) C++Bulder XE8
     4) Acrobat DC
     5) 他は使用しておりません。

    環境はどうあれAcrobatのどのライブラリを使用してどの関数を使用すればようかまったく検討がつきません。
    何かしらヒントなるものをご教授いただけないでしょうか。

  2. サンタパパ さん
    初めまして

    >①・・
    PDFのページ数取得は以下を参照。
    ACROEXCH.PDDOC: GETNUMPAGES メソッド

    ※PDFの文書プロパティの概要タブにある 「タイトル」、「作成者」、「サブタイトル」、「キーワード」、「アプリケーション」、「PDF変換」、「作成日」、「更新日」の項目は以下を参照。
    ACROEXCH.PDDOC: GETINFO メソッド

    >②・・
    当サイトに書かれているコマンドはデフォルトプリンターのみです。
    プリンターを指定しての印刷は以下を参照。
    ADOBE READER で PDF ファイルを表示 / 印刷する方法
    なお、上記ルーチンを公開しているサイトが閉鎖?しているので、ココから臨時ですが見れます。サンプルのDLはココから一時的に出来るようにして置きました。

    >③・・
    >・・入力データの項目を1ページごと編集・・
    文字を所定の場所に追加するので有れば、以下を参照。
    AFORMAUT : FIELDS.ADD メソッド

    >・・紙に印刷していたものをPDFファイルとして作成・・
    元のファイル形式が仮にテキストとしても、当サイトではこの手の情報は無いです。ただネットの世界にはコマンドラインから「テキスト to PDF」なるモノがかなり有るので、それを流用すれば可能かと思います。

    >PDFの作成・・、・・ページ数および解像度、出力時のファイル名・・
    「ページ数の指定」は聞いいたことが無いです。但し、当サイトの「ACROEXCH.PDDOC: DELETEPAGES メソッド」で指定ページの削除が出来ます。出力後に不要ページの削除をしてみてはどうでしょうか。
    「解像度の指定」はAcrobat本体からは出来ますが、プログラムから指定しての操作は判りません。過去にも似たような質問が有りましたが、その時は関係するレジストリの値を見つけ出し、事前に変更する様な返答ささせて頂きました。「site:pdf-file.nnn2.com レジストリ」又は「site:pdf-file.nnn2.com 解像度」でネット検索すると、当サイト内での関連記事が見れます。
    Acrobat DC は未確認ですが、レジストリ「HKEY_CURRENT_USER¥Software¥Adobe」の下にAcrobatの各種情報が保存されているはずです。

    C++なら、itext(itextsharp.dll)などのオープンソースの使用も検討されたほうがイイかもしれません。
    ※itext はライセンスに怪しい部分が有るのでご注意下さい。

    SDKにはCとC#のサンプルも入ってます。それもご覧ください。
    日本語サイトでのプログラミング情報はほとんど無いです。英単語で海外のサイトを検索する方が早い場合も有るかもしれません。当サイトの情報の半分以上は海外サイトを参考にしました。

    Adobe社はAcrobatアプリ本体の機能アップはしてますが、この手のプログラミング操作に関する情報は積極的に公開してません(と言うより、もうやってない)。SDK内容も古く、見てもかなり無理が有ります。よって他のソフトでコマンドラインから使用できるソフトを見つけて、それを内部で流用するのが得策かとも一部では思っています。

    解決に少しでもつながれば幸いです。

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

コメントをする時は最低でも以下をお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン