AcroExch.PDPage メソッド一覧

TOP > AcroExch.PDPage      [...]


一覧

PDFドキュメントの指定されたページに対しての操作等を提供するオブジェクトです。

PDDocオブジェクトからはAcquirePageメソッドで、AVPageViewオブジェクトからはGetPageメソッドで連携します。

 

<警告>

当PDPageオブジェクトのテキスト注釈に関するメソッド関連で不規則な不具合が多数発生しています。

その為、各メソッドの説明がエラーサンプル付き状態になっています。

いろいろなオブジェクト連携や、扱うPDFファイルを変えたりもしたのですが、不具合の解消には至りませんでした。

今までの中でも相当な時間を掛けましたが、解決方法(逃げ道)がいまだに見つかっていません。

Acrobat( Pro v8.1.2)本体上での手動操作には何ら問題は無いのですが、OLE操作ではうまく出来ません。

注釈機能を使っている会社等は少ないかもしれませんが、Acrobatの注釈機能は非常に優れたものです。

何とか逃げる策を考えたいと思っています。

 

メソッド 解説
AddAnnot ページに他のテキスト注釈をコピー追加します。
AddNewAnnotメソッドとの違いは同じのPDFドキュメントにある注釈を元にコピーする為に作られたメソッドです。
他のPDFドキュメントからは直接コピー追加は出来ません。
AddNewAnnot ページの指定位置にテキスト注釈を新規追加します。
同時にPDAnnotオブジェクトを作成します。
CopyToClipboard 四方範囲を指定してPDFページ上をクリップボードにコピーする。
このメソッドは32ビットのシステム上だけ利用可能です。
クリップボード上は画像イメージで保存されています。
CreatePageHilite 1文字単位の情報とそのリストをHiliteListオブジェクト情報からの範囲に従って1ページのテキスト選択であるAcroPDTextSelectオブジェクトを作成する。
CreateWordHilite 単語、又は隣接する文字列単位の情報とそのリストをHiliteListオブジェクト情報から範囲に従って1ページのテキスト選択であるAcroPDTextSelectオブジェクトを作成する。
CropPage 該当ページから指定した四隅範囲を残してページから切り取る。(=トリミングする)
Draw 頁コンテンツを指定された画面に引き込みます。(推奨しない)
DrawEx 頁コンテンツを指定された画面に引き込みます。
※これをExcel VBA上で使用するのは無理みたいです。
GetAnnot 配列で管理されている注釈オブジェクトからインデックスで指定された1つの注釈(AcroPDAnnot)オブジェクトを得ます。
GetAnnotIndex ページ指定された注釈のインデックス(頁注釈配列の中)を得ます。
GetDoc ページに関連しているAcroExch.PDDocオブジェクトを取得する。
GetNumAnnots ページに存在する注釈数の合計を返す。
注)サンプル動作不良?
GetNumber 現在の頁の頁番号を得ます。
ドキュメントにおける最初の頁はゼロ頁です。
GetRotate 現在のページに設定されている回転値を得る。
回転値は0度、90度、180度、270度の4種類のみ。
GetSize 指定されたページのサイズ(幅,高さ)をポイント(Point)オブジェクトで返します。
RemoveAnnot ページ注釈配列からインデックス指定して、該当する注釈を削除する。
SetRotate 現在のページを回転させる。
回転値は0度、90度、180度、270度の4種類のみ。





 

TOPへ

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

  1. はじめまして。
    VB2005とacrobat8を使い、あるフォルダにPDFファイルをコピーしたら、天地左右3mmづつトリミングされたPDFファイルが別フォルダに作成されるというプログラムを作ろうとしています。
    トリミングはCropPageを使おうと考えているのですが、うまく動作してくれません。
    一体どこが悪いのでしょうか?
    以下ソース
    Dim objAcroApp As New Acrobat.AcroApp
    Dim objAcroAVDoc As New Acrobat.AcroAVDoc
    Dim objAcroPDDoc As New Acrobat.AcroPDDoc
    Dim AVDoc As Acrobat.CAcroAVDoc
    Dim PDDoc As Acrobat.CAcroPDDoc
    Dim pagesuu As Long
    Dim lRet As Long
    'アクロバットを起動
    lRet = objAcroApp.Show
    'PDFファイルを開いて表示する。
    lRet = objAcroAVDoc.Open("C:¥test.pdf", "")
    'PDDocを取得する
    objAcroPDDoc = objAcroAVDoc.GetPDDoc
    'ページ数を取得する
    PDDoc = objAcroAVDoc.GetPDDoc()
    pagesuu = PDDoc.GetNumPages()
    'AcroRectを作成する
    Dim pdfRect As New Acrobat.AcroRect
    pdfRect.Top = 8.504   '←8.504は3mmをポイントに直した数値
    pdfRect.Left = 8.504
    pdfRect.right = 8.504
    pdfRect.bottom = 8.504
    '頁のトリミング(天地左右-3mm)
    Dim res As Integer
    res = PDDoc.CropPages(0, pagesuu-1, 0, pdfRect)

  2. 先ほどの書き込みですが自己解決しました。
    ■変更点
    pdfRect.Top = 8.504   '←8.504は3mmをポイントに直した数値
    pdfRect.Left = 8.504
    pdfRect.right = 8.504
    pdfRect.bottom = 8.504

    '最初のページのページサイズを取得する
    Dim pdfPage As Acrobat.AcroPDPage = objAcroPDDoc.AcquirePage(0)
    Dim pdfRectTemp As Object = pdfPage.GetSize
    Dim pdfRect As New Acrobat.AcroRect
    pdfRect.Top = pdfRectTemp.y - (8.504)
    pdfRect.Left = 8.504
    pdfRect.right = pdfRectTemp.x - (8.504)
    pdfRect.bottom = 8.504
    ※配列(pdfRect)の並び順と数値を変更しました
    ご迷惑をおかけいたしました。

  3. みやさん。初めまして。
    貴重な情報、ありがとうございます。
    ここのポイントはGetSizeメソッドをうまく使った事ですね。それでpdfRectが生かされた。
    pdfRectを使ったサンプルを別途で考えていたので、参考にさせて頂くかもしれません。
    こうゆうコメントは大歓迎です。
    ※実は今日は風邪でお休みしていました。レスが遅れたのはそれが理由です。

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

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

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