PDFバージョンの変化

TOP > *


概要

Acrobat OLEでのPDFバージョンの扱いを解説します。Acrobat本体での手作業と異なります。

  • Acrobat OLE
    プログラグの処理内で扱っているPDFのPDFバージョンで保存されます。複数のPDFを扱っている場合は一番上のPDFバージョンで保存されます。
    但し、プログラムの処理内容によってはPDFバージョンが上がる場合もあるので注意が必要です。
    PDFバージョンを変更する操作は出来ません。
     
  • Acrobat本体での手作業
    保存を行うと「Adobe PDF 設定」に従って保存されます。
    Excelシートの印刷で「Adobe PDF」を使った時も「Adobe PDF 設定」に従って印刷(保存)されます。
    この設定を変更してPDFバージョンを変更する事も出来ます。
    ※注)「手作業」の部分は詳細に動作検証してない。

注意事項

ここでの解説はメーカーサイトから公開されている公式情報では無く、当サイトがテスト結果から推測した内容です。テストケースが漏れている可能性も有るので、各自が実際に検証した上でご利用下さい。

検証の環境

  • Windows 10 Pro 64bit
  • Acrobat XI Pro
  • 「Adobe PDF 設定」の [互換性のある形式] は標準が1.6ですが、検証の為に 1.5 の「Acrobat 6 (PDF 1.5)」に変更しました。

検証の図

  • ボックスはPDFファイルを示します。
  • 数値はPDFバージョンを示します。
  • (*)の*は処理内容を示します

検証:PDFバージョンの変化(1)

処理内容

  • 頁の削除等の処理を何もしないで、開いて別名で保存するだけです。

結果

まとめ

  • PDFバージョンは変更されずに保存されます。

検証:PDFバージョンの変化(2)

処理内容

  • PDFの頁を1頁だけ削除して、その後に別名で保存します。

結果

まとめ

  • 元のPDFバージョンで保存します。但し、バージョンが1.5以下の場合は1.6で保存します。
    バージョンが上がるのはAcrobat XI ProのOLE仕様と予測されます。

検証:PDFバージョンの変化(3)

処理内容

  • A.PDFの全ページをB.PDFへ挿入した後にB.PDFを保存します。

結果

まとめ

  • ケース 3-1 と 3-2:
    Acrobat OLEで何らかの処理を行うと上のPDFバージョン 1.6 (Acrobat 7)で保存します。
    注意)「Adobe PDF 設定」の [互換性のある形式] は検証の為に 1.5 の「Acrobat 6 (PDF 1.5)」に設定しています。にもかかわらず1.6で保存されたと言う事は、「Adobe PDF 設定」は参照されず、Acrobat XI ProでのOLE仕様が1.6と定義されている、と予測されます。
  • ケース 3-3 ~ 3-7:
    PDFページの存在有り無しに関係無く、扱ったPDFの一番上位のPDFバージョンで保存されます。

総まとめ

  • PDFページの存在有り無しに関係無く、扱ったPDFの一番上位のPDFバージョンで最後は処理されます。
  • PDFバージョンの最終が1.5以下の場合は1.6に上げられます。
    これは動作環境にインストールされているAcrobat のOLE仕様と予想されます。今回はAcrobat XI Proでの仕様と思われます。
  • 「Adobe PDF 設定」の値は影響しません。

備考

  1. PDFバージョンのみを強制的に変更したい場合は、コマンドラインツール CPDF-set-version オプションを使います。

参照

TOPへ


サイト管理者用メモ

これ以降はサイト管理者のメモです。見なくて結構です。

テストで使用したVBAコード。

001 Option Explicit 002 003 Sub Test_Case_1() 004 005 Dim AcroPDDocNew As New Acrobat.AcroPDDoc 006 Dim lRet As Long 007 Dim lGetNumPages As Long 008 Dim sPath As String 009 010 Const CON_PATH = "I:\Adobe PDF\" 011 012 'PDFを開く 013 sPath = CON_PATH & "PDF-1.7-VBA.pdf" 014 lRet = AcroPDDocNew.Open(sPath) 015 016 '変更されたPDFファイルを保存 017 sPath = CON_PATH & "test-new-B4-1.7.pdf" 018 lRet = AcroPDDocNew.Save(1, sPath) 019 lRet = AcroPDDocNew.Close() 020 021 'オブジェクトを強制開放する 022 Set AcroPDDocNew = Nothing 023 024 End Sub 025 026 Sub Test_Case_2() 027 028 Dim AcroPDDocNew As New Acrobat.AcroPDDoc 029 Dim lRet As Long 030 Dim lGetNumPages As Long 031 Dim sPath As String 032 033 Const CON_PATH = "I:\Adobe PDF\" 034 035 'PDFを開く 036 sPath = CON_PATH & "PDF-1.7-VBA.pdf" 037 lRet = AcroPDDocNew.Open(sPath) 038 '1ページを削除 039 lRet = AcroPDDocNew.DeletePages(0, 0) 040 041 '変更されたPDFファイルを保存 042 sPath = CON_PATH & "test-new-B4-1.7.pdf" 043 lRet = AcroPDDocNew.Save(1, sPath) 044 lRet = AcroPDDocNew.Close() 045 046 'オブジェクトを強制開放する 047 Set AcroPDDocNew = Nothing 048 049 End Sub 050 051 052 Sub Test_Case_3() 053 054 Dim AcroPDDocNew As New Acrobat.AcroPDDoc 055 Dim AcroPDDocAdd As New Acrobat.AcroPDDoc 056 Dim lRet As Long 057 Dim lGetNumPages As Long 058 Dim sPath As String 059 060 Const CON_PATH = "I:\Adobe PDF\" 061 062 'PDFを開く 063 sPath = CON_PATH & "PDF-1.4-VBA.pdf" 064 lRet = AcroPDDocNew.Open(sPath) 065 066 '全ページを削除して、空のPDFにする 067 lGetNumPages = AcroPDDocNew.GetNumPages() - 1 068 lRet = AcroPDDocNew.DeletePages(0, lGetNumPages) 069 070 'PDFファイルを追加する 071 sPath = CON_PATH & "PDF-1.4-VBA.pdf" 072 lRet = AcroPDDocAdd.Open(sPath) 073 lGetNumPages = AcroPDDocAdd.GetNumPages() 074 lRet = AcroPDDocNew.InsertPages(-1, _ 075 AcroPDDocAdd, 0, lGetNumPages, True) 076 lRet = AcroPDDocAdd.Close() 077 078 '変更されたPDFファイルを保存 079 sPath = CON_PATH & "test-new-A7.pdf" 080 lRet = AcroPDDocNew.Save(1, sPath) 081 lRet = AcroPDDocNew.Close() 082 083 'オブジェクトを強制開放する 084 Set AcroPDDocAdd = Nothing 085 Set AcroPDDocNew = Nothing 086 087 End Sub


 Highlight:プログラミング言語のソースコードを構文で色分け (GUI編)
 

Adobe PDF 設定

Acrobat OLEはこの設定を見ないので関係無いが、メモだけ残す。

Excelの印刷時に指定する方法:

プリンタ「Adobe PDF」を選択し、[プロパティ] をクリック。

以下の画面が出たら、[PDF設定] -> [編集]ボタン をクリックし、更に次の画面が表示したら、そこから [互換性のある形式] で指定したいPDFバージョンを選択する。

以上でPDFバージョンの指定が可能。

TOPへ

コメントを残す

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

CAPTCHA


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


SAMURAI Plugin

コメントをする時は出来れば以下もお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン
コメントにサンプルコードを入れるとエラーになる場合が有ります。その時はコードの前後に <code> ・・・</code> タグを入れてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください