エラー14: 「dictオブジェクトを指定してください」について
フォーラムの皆さま
PDF規格の勉強も兼ねて、個人でPDF処理ツールを作成している者です。
PDFファイルを読み取って出力する機能を開発したのですが、一部の出力ファイルをAdobe Acrobat Proで開けない事象が発生しています。
作成したツールは内容の編集を行っていませんが、オブジェクトの順番などが変わっており元のファイルと完全に同一ではありません。
Acrobat Proでは開けない場合、
「この文書を開くときにエラーが発生しました。文書を読み取り中に問題が発生しました(14)。」
というエラーが出ます。
このエラーについて調べると、Ctrlキーを押しながらOKボタンをクリックすることで追加の説明を出すことができるというコメントをインターネット上で見つけたため試してみると
「dictオブジェクトを指定してください。」
というメッセージでした。
Acrobat Proでは開けないのですが、Chrome・EdgeのPDF表示機能ではエラーなく表示されており、作成したツールに重大な誤りがあるわけではないと考えています。
ツールに入力するPDFファイルを変えるとAcrobat Proで開ける場合もあります。
出力されたファイルをテキストエディタで開いて比べてみたのですが、違いとして見つけられたのはファイルの最初に現れるオブジェクトがDictionary(この場合はOK)であるかStream(この場合はダメ)であるかというものでした。
「dictオブジェクトを指定してください。」というメッセージに関連していそうな違いだと思います。
ただ、Linearized PDFの場合最初のオブジェクトはLinearization parameter dictionaryになるということは把握しているのですが、出力ファイルはLinearized PDFではないため最初のオブジェクトは何でも構わないのでは?とも思います。
(開ける場合のPDFファイルも、最初のDictionaryはLinearization parameter dictionaryではないです。)
以上が現状と考察になります。
何かご存知のことがありましたら指摘いただけると助かります。
