サイトマップ

▼ サイトの紹介

このサイトはExcel VBAから、Acrobat  アプリケーションをプログラミング操作するOLE機能について解説しています。

Adobe社はこのOLE機能の事を「IAC」と表現しています。

(注意:Adobe Readerだけでは使用出来ません)

Adobe社提供のSDK資料を元にサンプルを加えて説明をしています。

サイト管理人もご覧下さい。

 

▼ 当サイトの使い方

当サイトをうまく使う上での手順を以下に示します。

  1. 最初に「Acrobat SDK:OLE objects and methods図を入手する」にあるオブジェクト連携図を手に入れます。出来れば印刷する方が見やすいです。1頁です。
  2. 下記の「Excel」、「Acrobat」、「ダウンロード」、「SDK」、「備考」にサッと目を通します。「その他&メモ」は特に見なくてもイイです。
  3. 自分が目的とする処理を探しながら、印刷したオブジェクト連携図を元にサイト記「Object & List」下を上からクリックしてザックリと内容を見ます。各オブジェクトのメソッドの詳細は後にして全体で何が出来て、何が出来ない(サポートされていない)かを把握します。
    Acobat OLE 以外の選択」も見て下さい。
  4. 目的が解決出来ない時は、キッパリとあきらめてAdobe社の日本語「Acrobat アドビフォーラム」で相談します。 ココ ↓
    http://forums.adobe.com/community/international_forums/japanese/acrobat
    当サイト pdf-file.nnn2.com より質が高い。
  5. それでもダメなら、当サイトにコメントを入れてみます。サイト管理人がある程度、判る範囲でお答えをします。・・タブン。(汗
    (お願い:管理人を「様」での呼び方はご遠慮下さい。管理人さ~んで十分です。)

 





▼ Excel

  1. Excel からAcrobatを操作する訳
  2. Excel から PDFファイル を作成&操作出来る
  3. Excel のオブジェクトブラウザ
  4. Excel からAcrobatを起動する
  5. Excel からPDFファイルを起動表示する
  6. Excel サンプル:PDFの文書プロパティを表示する
  7. 上記7のサンプルファイルの実行エラー
  8. Excel VBA 実行エラー時のメッセージ

 

  1. Excel でOLEの参照設定をする
  2. Excel でOLEの参照設定をする (AFormAut の追加)
  3. Excel でOLEの参照設定をする (Stream の追加)
  4. Excel でOLEの参照設定をする (MSXMLの追加)

 

▼ Acrobat

  1. Acrobat SDK:OLE objects and methods図を入手する
    ここで示す図は必ず入手する必要があります。
    これが無いとオブジェクト連携が判らなく、OLE(IAC)操作が出来ません。
  2. Acrobatアプリケーションを閉じる(実は簡単に出来ない)
  3. Acrobat OLE 使用上の注意事項
  4. Acrobatプログラミングにおける技術上の制約やライセンス上の制約
  5. PDFファイルを作成、及び操作する開発者に対しての注意事項
  6. Windows のコマンドラインから Acrobat や Adobe Reader を使用して印刷する方法
  7. PDFドキュメントの文書フラグとは
  8. 「PDF のバージョン」とは
  9. ExportTask.xml
  10. 一括で複数ファイルを処理(アクション、バッチ処理) 
  11. PDF の3つのパスワード
  12. 印刷の問題点を解決

 

▼ ダウンロード

  1. Adobe Acrobat 9.1 SDK のダウンロード
    SDKをダウンロードしてサンプル、解説PDF,HTML等を入手する必要があります。
    Adobe Acrobat X SDK のダウンロード情報も入ってます。
  2. Adobe Acrobat 8.1 SDK のダウンロード
    この 8.1 バージョンのSDKは現時点(2013/10/03)で一般公開されてません。
    情報が入り次第、掲載します。
  3. Acrobat製品別ダウンロード先 URL
  4. AcroPDFLib.AxAcroPDF:Excel VBAサンプル(A)
  5. AcroPDFLib.AxAcroPDF:Excel VBAサンプル(B)
  6. Adobe Readerの各種バージョンのダウンロード
  7. 各種サンプルのダウンロード

 

▼ SDK

  1. AcrobatプログラミングにおけるMenu and Toolbar Button Names 一覧
  2. PDDocのGetJsObjectのオブジェクト構造図が見当たらない
  3. Acrobat SDK:正誤表
    Acrobat SDK v8.1ドキュメントに記載ミスが有ります。
  4. Acrobat 9.0に関するSDKが Acrobat Developer Center のDownloadよりダウンロード出来ます。但し、リファレンス的なSDKはPDFからURL(HTML)公開に変わりました。OLE操作(IAC)に関するSDKも同じで、HTML公開に変更されました。場所は↓ココです。
    http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/wwhelp/wwhimpl/js/html/wwhelp.htm?&accessible=true
    全て英語です。(涙
  5. Acrobat JavaScript における「Safe Path:セーフパス」についての注意事項
  6. Acrobat SDK公開Webサイト URLの取得方法

 

▼ 備考

  1. JavaScriptの解説はAcrobat v7 v8 共に英語版です。しかし、旧バージョンですがコメントを頂いた方から日本語版のAcrobat JavaScript解説PDFが見つかりました。以下がそのPDFです。
    http://www.adobe.com/jp/support/products/pdfs/acrojs_j.pdf
  2. [2009/1/7] AcroExch.AVDoc:Open メソッド でバグ?を発見しました。Acrobat v8.1.3 v9.0が対象です。
  3. お願い:Acrobat v4.0 SDK を入手したいのですが、持っている方はサイト管理人までメールで分割(9Mb)送信して頂けないでしょうか。

 


 

▼ その他&メモ

  1. OCR機能:読んde!ココと比較した結果
  2. アドビ(Adobe)製品に関するRSSの情報
  3. 添付ファイルの扱いには注意が必要
  4. AcrobatはPDF作成ソフトの標準では無くなる?
  5. Acrobat PDF は国際標準化された 
  6. 手書きPDF入門」 リンク
  7. planet pdf (PDF関連の英語サイト) リンク
  8. デフォルトプリンタを一時的に変更する方法
  9. Delphi(デルファイ,デルフィ)言語からの使用方法
  10. Acrobat使用時のレジストリ変化を取得する方法
  11. オブジェクトは値では無く、参照情報を持つ
  12. Adobe Reader で PDF ファイルを表示 / 印刷する方法
  13. サンプル:RBG値の一覧(カラー番号)
  14. 「・・このバージョンの Acrobat ではサポートされていない新しい形式・・」警告メッセージへの対応

 


▼日本語の資料

日本語版に関する技術情報が非常に少ないので、少しまとめておきます。

資料はバージョンが古いく、しかも作成年度も古いのが多いです。しかし、PDF 又はAcrobat のエンジニア向けの基本的な技術はこの10年間はそれ程進歩していません。よって思った以上に使える事に気がつくはずです。

読みにくい英語版を見るよりは余程、楽に読めます。

 

▼ Acrobat SDK 関連

  1. Acrobat JavaScript Object Specification バージョン 5.0.5
    テクニカルノート# 5186 改訂日:2001年9月14日

    (297頁) Acrobat 5.0 JavaScript リファレンスマニュアル。
    PDF ドキュメントでJavaScript を使用するために必要なすべての情報
  2. Developing Acrobat Applications Using JavaScript
    Adobe Acrobat SDK バージョン 8.0

    (220頁) JavaScript を使用してAdobe Acrobat での開発や拡張したりする方法について
    説明したマニュアル。必読!
  3. JavaScript for Acrobat 3D Annotations API Reference
    Adobe Acrobat SDK 2007年4月バージョン 8.1

    (105頁) 3D 機能(3D注釈のJavaScript API)をユーザに提供したい開発者を対象にしたマニュアル
  4. Parameters for Opening PDF Files(日本語版)
    Adobe Acrobat SDK Version 8.1 April 2007

    (8頁) PDF ファイルをURL やコマンドの中で開く際に使用できるパラメータについて説明したマニュアル
  5. Adobe Acrobat Workshop
    (78頁) Acrobat 7.0 JavaScript、API、IAC等の開発環境に関する概念の説明図
  6. Adobe Acrobat 7.0 Acrobat JavaScript Scripting Guide 2005年1月7日
    (276頁) Acrobat JavaScript を使用して開発したり拡張したりする方法について簡単に説明ししたもの
  7. Programming Acrobat JavaScript Using Visual Basic
    Technical Note #5417 バージョン:Acrobat 6.0 2003年5月

    (14頁) Acrobat 6.0 提供のJSObject と言うOLE オートメーション機能のプログラミング環境に関しての概念を説明したもの
  8. Acrobat JavaScript Scripting Guide
    Technical Note #5430 バージョン:Acrobat 6.0 2003年5月

    (90頁) Acrobat 6 Pro に搭載されている JavaScript 開発環境を使用して Acrobat アプリケーションを開発したり拡張したりする方法を簡単にまとめたもの
  9. 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 にアップグレードする際に開発者が理解しておくべきことについて説明したマニュアル
  10. Adobe® Solutions Network Developer Program FAQ for Members
    Version 3.0 MAY 2002

    (461頁) ASNディベロッパーサポートプログラム会員から頂いたAcrobat Plug-in API,IAC,Readerに関する質問を整理した情報
  11. Acrobat Developer FAQ
    Adobe Developer Relations 改定:1999年9月2日

    (37頁) 質問および回答形式を整理した情報
  12. Parameters for Opening PDF Files(日本語版)
    Adobe Acrobat SDK Version 8.1 April 2007

    (24頁) Acrobat SDK でよくある質問と回答を整理したもの
  13. Adobe Acrobat 7.0 Acrobat SDK ユーザガイド 2004年12月14日
    (124頁) Acrobat SDKで提供されている機能、Acrobatで提供されている機能とその操作説明等
  14. JavaScript for Acrobat API Reference
    Adobe Acrobat SDK バージョン 8.0

    (765頁) Acrobat JavaScript の詳細な解説書/リファレンス

 

▼ Acrobat 一般資料

  1. 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には無い機能で複数ファイルの自動化処理が可能だと思われます。

  1. Qpdf
    PDF をコマンドラインで操作するツール
    セキュリティ(パスワード)の設定が出来る!
     
  2. Poppler
    PDF をコマンドラインで操作するツール
    Xpdf をペースした機能拡張版
    注意:公式サイトからはWin版EXEは配布されてません。
       
  3. pdf2htmlEX
    PDF をHTMLへ変換する高性能なツール
       
  4. Coherent PDF Command Line Tools
    非常に多機能なコマンドラインツール
    ライセンスに注意が必要
      
  5. Xpdf
    PDF をコマンドラインで操作するツール
    Popplerの旧バージョン。安定版。
     
  6. PDFtk *  ※検証予定(時期未定)
    PDF をコマンドラインで操作するツール
  7. PDFill PDF Writer: PDF作成ツール
    コマンドラインの使用は有償版のみ。
    無償版と有償版。表示は英語。
      
  8. ★その他の各種ソフトとツール★
    各種のPDFソフトウェアを一覧でまとめたサイトです。
    たぶん、ココの情報が最新で内容も充実してると思われます。

 


[コメント入力] <-をクリックするとページの最後にコメント入力が出来ます。
名前(ニックネーム)は必須。メールアドレス(非表示)も必須ですが、適当(abc@mail.jp)で結構です。

【更新日:2016/06/19 (10版)】

Qpdf : コマンドラインのPDFツール

TOP > Qpdf ツール


TT 2016 - Race Week - PokerStars Senior TT (15)

概要

Qpdf とは、PDF にパスワードと詳細レベルでのセキュリティの設定、PDF の分割やマージ、そしてPDF ファイルの内部構造の表示や点検操作ができるソフトです。

開発者に対してはPDF内部の高度な技術情報も提供します。PDFのマニアックな情報を扱うことができるソフトです。

業務用向けソフトでは無く、次のような編集機能はほとんど無いです。しおりの処理、ヘッダー、フッダーの編集、文字列の検索、内容の変更、印刷、等。

 

注記:

未確認、未検証の情報となっている場合もあります。ご注意ください。

これ以降はWindows 版 Exe での使用を前提にした説明になります。また内容は付属英語PDFドキュメントの内容そのものの部分も有ります。

 

詳細

  1. フリー。 ライセンスはVersion 2.0 of the Artistic License
  2. 最適化(リニアライズ:Web用最適化)機能
  3. パスワードによる詳細レベルでのセキュリティ設定機能
  4. 分割、マージ機能
  5. 44頁のPDF+Html 解説書(英語)が同封
    詳しく&難しく書かれています。

 

ダウンロード

Qpdf 公式サイトが示す場所からダウンロードします。

Windows 版 7.0.0 をここ経由のココからダウンロードします。
qpdf-7.0.0-bin-msvc32.zip (2017/9/17時点)をクリックしてダウンロードします。

Qpdf Windows 版のダウンロード

MinGWでビルドした qpdf-7.0.0-bin-mingw32.zip も利用できます。共に64ビット版(~64.zip)も有ります。

 

インストール

qpdf-7.0.0-bin-msvc32.zip を解凍して適当なフォルダに入れるだけです。実行はWindows の環境変数のPathを設定して使うか、フルパスを指定してQpdf.exe を起動します。

なお、インストール先フォルダに半角の空白文字が入らないことをオススメします。コマンドラインでフルパスを指定する時に半角の空白が有ると動作に支障が出ます。

 

日本語の扱い

言語ファイル関連は存在しないので2バイト文字には未対応と思われます。ですが、これは問題無いでしょう。理由は2バイト文字対応を必要とする処理が見当たらないからです。

 

マニュアル

オンラインマニュアルが公開されています。

 

Version , Help の内容

 

呼び出し形式

基本的な呼び出す形式です。

qpdf [ options ] infilename [ outfilename ]
  

通常は1つの空白文字で区切りと見なされます。

  • qpdf : qpdf.exe の事です。Windowsの環境変数のPATHが通ってない場合はフルパス指定が必要になる場合があります。
      
  • options : オプションです。通常は各オプションの前にハイフンが2つ「--」付きます。2つのハイフンでオプションの始まりと判断してるみたいです。また、前後が空白のハイフンが2つ「 -- 」だけの場合はオプションの終了を意味します。
     
  • infilename : 入力ファイルです。
    代わりにパラメータ --empty を使用する事もできます。--empty はゼロ頁のダミー入力PDFファイルとして使用できます。
      
  • outfilename : 出力ファイルです。ほとんどのオプションは出力ファイルを必要とします。
    テストと検査には必要無いです。
     

 

Basic Options : 基本オプション

もっとも一般的に使用されるオプションです。

--help

引数などの解説したヘルプを画面に表示します。膨大な量です。

--version

著作権とバージョン情報を表示します。

--password=password

PDF文書を開く時に入力が必要になるユーザーパスワードが設定されたファイルにアクセスするためのパスワードを指定します。password 部分にパスワードの文字列を指定します。

--verbose

付加的な情報出力を(PDF)出力します。

※7.0.0 からの新機能で、使い方は不明です。

--linearize

Web用に最適化(リニアライズ)します。PDF全体を圧縮する最適化では無く、Web用に表示速度を上げる為だけの最適化で有ることに注意してください。通常はこのWeb用最適化のことを「リニアライズ」と言います。

例:ユーザーパスワードが「abc」のin-ps.pdf をWeb用に最適化します。出力はout-ps.pdf です。out-ps.pdf には同じユーザーパスワード設定がされます。

--copy-encryption=file

指定されたファイルから暗号化パラメータをコピーします。ここで言う「暗号化パラメータ」は文書プロパティのセキュリティに設定されている内容の事です。

例:in.pdf をWeb用最適化し、更に test-ps.pdf からセキュリティ設定だけをコピーして out.pdf に出力します。

 

--encryption-file-password=password

--copy-encryption=file file にユーザーパスワードが掛かっている時にその password をここで指定します。

例:in.pdf をWeb用最適化し、更に test-ps.pdf からセキュリティ設定をコピーして out.pdf に出力します。なお、test-ps.pdf には(文書を開く)ユーザーパスワードが設定されてるのでその値「abc」を「--encryption-file-password=abc」オプションで指定します。当然ですが出力した out.pdf にも同じユーザーパスワードの設定がコピーされます。

 

--encrypt options --

文書プロパティのセキュリティに関する設定を行います。
このオプションの詳細はこの後の「暗号化オプション」を参照してください。

--decrypt

オーナーパスワードによる保護(文書プロパティのセキュリティ設定)を解除します。入力ファイルに対しての直接のパスワード解除は出来ません。必ず出力ファイルを指定します。

例:in-ps.pdf のセキュリティ設定を解除して、out-nops.pdf に出力します。

--pages options --

PDFの分割、マージを指定するオプションです。
このオプションの詳細はこの後の「ページ選択オプション」を参照してください。

--rotate=[+|-]angle:page-range

指定したページを90、180、または270度に回転します。

--split-pages=[n]

n ページ単位で別々のPDFファイルに書き出します。n=1の時は1頁1PDF単位、n=2の時は2頁単位で1PDF出力します。

出力ファイル名の後にページ番号を付加されます。

 

 

 

Encryption Options:暗号化オプション

PDFファイルのセキュリティ関連を変更します。Qpdf ではこの事を「ファイルの暗号化パラメータの変更」と言っています。

「--encrypt」オプションの形式

qpdf --encrypt  user-password  owner-password  key-length  flags  --

infilename outfilename

  • --encrypt : --encrypt オプションの開始を意味します
  • user-password : ユーザーパスワードを指定します
  • owner-password : オーナーパスワードを指定します
  • key-length : キーの長さで40, 128, 256 のいずれかを指定
  • flags : これは上記のkey-length の値によって変わります
  • -- : 最後のハイフン2つ「--」で --encrypt オプションの終了を意味します
     

ユーザーパスワードとオーナーパスワードのいずれかまたは両方が空の文字列であってもよいです。その時は「""」の様に指定します。

flags

key-length の値(40 , 128 , 256)で flags 部分の内容が変わります。

  • key-length= 40 の時
    • --print=[yn] : 印刷を許可
    • --modify=[yn] : 文書の変更を許可
    • --extract=[yn] : テキスト/グラフィックの抽出を許可
    • --annotate=[yn] : コメントとフォーム記入と署名を許可
       
  • key-length= 128 の時
    • --accessibility=[yn] : 視覚障害者へのアクセスを許可
    • --extract=[yn] : テキスト/グラフィックの抽出を許可
    • --print=print-opt : 印刷アクセスを制御 (下記参照)
    • --modify=modify-opt : 変更アクセスを制御 (下記参照)
    • --cleartext-metadata : メタデータの暗号化を防ぐ
    • --use-aes=[yn] : AES 暗号化を使用するかどうかを示す
    • --force-V4 : V=4暗号化ハンドラの使用を強いる
        
  • key-length= 256 の時
    • --accessibility=[yn] : 視覚障害者へのアクセスを許可
    • --extract=[yn] : テキスト/グラフィックの抽出を許可
    • --print=print-opt : 印刷アクセスを制御 (下記参照)
    • --modify=modify-opt : 変更アクセスを制御 (下記参照)
    • --cleartext-metadata : メタデータの暗号化を防ぐ
    • --use-aes=y : AES 暗号化の使用は256ビットキーでは常にオン
    • --force-V4 : 256ビットでは利用不可 
    • --force-R5 : 非推奨のR=5暗号化の使用を強いる
       

print-opt

--print=print-opt オプションで使えるprint-opt の値です。

  • full : 完全な印刷が可能
    高解像度の印刷を意味してると
  • low : 低解像度の印刷のみを許可
  • none : 印刷を許可しない
        

modify-opt

--modify=modify-opt オプションで使えるmodify-opt の値です。

  • all : 完全な文書の変更を許可
  • annotate : コメント作成およびフォームの操作を許可
  • form : フォームフィールドの入力と署名を許可
  • assembly : 文書のアセンブリのみを許可
  • none : 変更を許可しない
      

--cleartext-metadata オプションの補足

「--cleartext-metadata : メタデータの暗号化を防ぐ」オプションを指定するにはPDFバージョン=1.5 以上が必要です。デフォルトはオフです。

--use-aes=y オプションの補足

「--use-aes=y : AES 暗号化を使用」オプションを指定するにはPDFバージョン=1.6 以上が必要です。デフォルトはオフです。

--force-V4 オプションの補足

使用するしないに関わらず、PDFバージョン=1.5 以上が必要です。

 

暗号化オプションの使用例

ユーザパスワードは無しで「 "" 」、オーナーパスワードは「abc」、キーの長さ「40」、印刷不可「 --print=n 」、抽出もコピーも不可「 --extract=n 」にします。オプションは最後に「--」だけで閉じます。入力は in.pdf 、出力は out.pdf です。

Qpdf 暗号化オプションの使用例

間違ってオーナーパスワードを空白「""」にした時は、「--print=n : 印刷不可」、「抽出もコピー不可: --extract=n 」のオプションなどは指定しても無視されます。エラーにはなりません。(注意

 

Page Selection Options:ページ選択オプション

qpdf infilename --pages file [ --password=password ] [ page-range ] ... -- outfilename

ページの分割とマージの指定です。「--pages」で始まり、最後は「--」だけで終了する部分を指定します。infilename を指定するとそのPDFの文書プロパティやメタデータなどの非ページデータをoutfilename 作成時に使用します。使用したくない場合は infilename に--empty を指定します。

注記:infilename に入力PDFも--empty も指定しないと実行エラーになります。

 

ページの指定方法とその並び

  • 1,4,6 : 1頁と4頁と6頁の順
  • 5-10 : 5頁から10頁の並び
  • 9-2 : 9頁から2頁の逆順の並び
  • z-1 : 最後の頁から1頁の逆順の並び。「z」は最終ページの意味。
  • 省略 : 1-z の指定と同じ。全頁です。

 

マージ

マージのサンプルです。入力ファイルを色で分けています。

例:in-A.pdf の1頁から3頁の後に、in-B.pdf の2頁から3頁を結合して、out.pdf へ出力します。最初に --empty が指定されているので、文書のタイトルなどのメタデータやプロパティの非ページデータはout.pdf へ出力しません。

>qpdf --empty --pages in-A.pdf 1-3 in-B.pdf 2-3 -- out.pdf

例:同じファイルを複数回使えます。1頁から3頁、その後に10頁から逆に5頁までをマージしてout.pdf へ出力します。

>qpdf --empty --pages in-A.pdf 1-3 in-A.pdf 10-5 -- out.pdf

例:ユーザーパスワード付きのPDFの場合はファイルの後に「--password=password」オプションを追加します。

>qpdf --empty --pages in-A.pdf 1-3 in-C.pdf --password=abcdefg 10-5 -- out.pdf

例:同じ入力ファイルが複数有り、パスワード時の場合は最初のだけ「--password=password」オプションを追加します。なお出力ファイル out.pdf のタイトルなどのメタデータと文書のプロパティ等の非ページデータは in-A.pdf のがコピーされます。

>qpdf in-A.pdf --pages in-C.pdf --password=abcdefg 1-3 in-C.pdf  10-5 -- out.pdf

 

分割

実際は上記マージの変形です。入力PDFファイルを1つだけにします。

例:in.pdf の1頁から3頁を抽出して out.pdf へ出力します。この時に --empty が指定されてるので文書のプロパティやメタ情報の非ページデータはout.pdf には出力されません。

 

例:例:in-A.pdf の1頁から3頁を抽出して out.pdf へ出力します。この時にin-B.pdf  の文書のプロパティやメタ情報の非ページデータのみがout.pdf には出力されます。in-A.pdf の非ページデータはコピーされません。

 

 

Advanced Transformation Options:高度な変換オプション

ここからの変換オプションは Qpdf が出力ファイルを作成する方法についての細かい部分をコントロールします。主にPDFファイル形式に精通しているか、PDF関連の開発者である人々に有効な情報です。

--stream-data=option

ストリームデータの変換を制御します。以下はoption の値です。

  • compress : 可能な場合はストリームデータを再圧縮 (デフォルト)
  • preserve : すべてのストリームデータをそのままで残します
  • uncompress : 可能な場合はストリーム データを解凍します

--compress-streams=[yn]

出力時にストリームを圧縮するかどうかを制御します。

  • y:圧縮する。
  • n:何もしない。

※7.0.0 テストで圧縮効果は確認できない。

--decode-level=option

ストリームのフィルタリングする方法を制御します。Optionは

  • none : デコードしない。
  • generalized : LZW、Flate、およびASCIIエンコーディングフィルタを含む一般化されたフィルタで圧縮されたストリームをデコードします。
  • specialized : RunLengthを含む可逆特殊フィルターでストリームをデコードします。
  • all : DCT(JPEG)などの非可逆フィルタでストリームをデコードします。

--normalize-content=[yn]

コンテンツストリームの正規化を有効または無効にします。

--suppress-recovery

Qpdf が破損したファイルを回復しようとする試みを防ぎます。

--object-streams=mode

オブジェクトストリームの処理を制御します。以下はmode の値です。

  • preserve : 元のオブジェクト ストリーム (既定値) を維持
  • disable : 任意のオブジェクトストリームを書かない
  • generate : 可能な限りオブジェクトストリームを使用

--ignore-xref-streams

Qpdf が任意の相互参照(クロスリファレンス)ストリームを無視するように指示します。

--preserve-unreferenced

参照されていないオブジェクトを保存します。

--newline-before-endstream

終了ストリーム (endstream) の前に改行を入れます。

--qdf

QDFモードをオンにします。詳細は下記の「QDFモード」を参照してください。

--min-version=version

出力ファイルに最小のPDF バージョンを設定します。

PDFの出力ファイルに最小のPDFバージョンを設定すると、後でPDFバージョンを上げることができますが、それを下げることは(基本的に)ありません。

--force-version=version

出力ファイルのPDF バージョンを強制で設定します。

PDFの出力ファイルのPDFバージョンで強制設定の機能を利用すると、実際にファイルの内容から許可されているよりも低い値にPDFバージョンを設定することができます。ファイルは間違いなくPDFバージョンでサポートされていない機能が含まれていないことがわかっている場合のみ、またはファイルを開くのに他の可能な方法を持っていない場合にのみ、これを行ってください。

 

QDFモード

デフォルトでは、コンテンツ正規化がオンになり、ストリームデータを解凍するように設定されています。つまりPDFの中身をテキストエディタで開くことが出来るようになります(メモ帳は無理かも)。この時にオーナーパスワードで設定されたセキュリティ設定(印刷の許可、変更の許可等)は解除されます。

例:in.pdf を入力してテキストエディタで開くことが出来る qdf ファイルにout.qdf を出力します。

 

この後でPDF独自の内部の位置情報が壊れるはずなので、以下で修正します。なお、以下のfix-qdf ファイルはPeralがOSにインストールされてないと動作しません。

 

 

試験、検査、およびデバッグ・オプション

--deterministic-id

deterministic(確定的) /IDを生成します。

--static-id

静的 /IDを生成します。テストだけのために!

--static-aes-iv

AES-CBCのための静的な初期化ベクトルを使用します。これはセキュリティで保護されていないオプションです!テスト専用!

--no-original-object-ids

「qdf モード」で元のオブジェクトID のコメントを非表示します。

--show-encryption

暗号化パラメーターをすばやく表示します。

--check-linearization

ファイルの整合性とリニアライズ(Web用最適化)の状態を確認します。

--show-linearization

リニアライズ(Web最適化)データのチェックと表示をします。

--show-xref

相互参照(クロスリファレンス)表の内容を表示します。

--show-object=obj[,gen]

指定されたオブジェクトの内容を表示します。

--raw-stream-data

オブジェクトのコンテンツの代わりに生ストリーム データを表示します。

--filtered-stream-data

オブジェクトコンテンツではなくフィルター選択されたストリームデータを表示します。

--show-npages

ファイル内のページ数を表示します。

--show-pages

各ページのオブジェクト/世代番号を表示します。

--with-images

各ページ上の画像のためのオブジェクトIDを表示します。

--check

ファイル構造 + 暗号化、リニアライズ(Web用最適化)をチェックします。

 

終了コード

ヘルプやマニュアルには記述は無いですが、ChangeLog に記載があるのでそれを紹介します。

  • 0 : 正常終了
  • 2 : エラー
  • 3 : 警告

 

Qpdf を使ったVBA関数

特定の処理をQpdf で行うVBA関数です。

  1. Qpdf  : PDFにセキュリティを設定するVBA関数
  2. Qpdf  : PDFのセキュリティ設定を取得するVBA関数
  3. Qpdf  : PDFのパスワードとセキュリティ設定を解除するVBA関数
  4. Qpdf  : PDFにパスワードとセキュリティ設定をコピーするVBA関数

 

Qpdf を起動するサンプル

上記以外の処理をQpdf でさせるサンプルです。オプション等の設定、エラーの判定は全て自分で行う必要が有ります。

実際にコマンドラインを実行するVBA関数「 RunCommandLineEX 」はコチラをご使用ください。
  

例:IN.pdf のリニアライズ(Web最適化)チェックを行います。

DownloadcLine-qpdfDemo.xls

 

備考

  • PDF全体を圧縮する最適化と、Web用の最適化は少し異なります。Web用の最適化はブラウザで最初のページの表示速度を上げるための最適化を意味します。圧縮ではありません。このWeb用の最適化を「リニアライズ」と通常は言います。
      
  • ユーザーパスワードとオーナーパスワードの違い。
    ユーザーパスワードとは、PDF文書を開く時に必要なパスワード。
    オーナーパスワードとは、PDF文書に印刷は不可、変更の不可、コピーの不可などのセキュリティを設定する時に必要なパスワードです。
     
  • --decrypt で文書プロパティのセキュリティ設定を解除して、別のPDFで出力できます。入力PDFファイルの解除は出来ません。
      
  • 当ページは随時で追加、修正等を行う予定です。

 

 

< TOPへ戻る >

VBA(Excel)からAcrobat経由でPDFをプログラミング操作(OLE:IAC)する