12

PDF Specificationから PDF 仕様の最小限の PDF の例を取り上げ、それをメモ帳にコピーし、ファイルの名前を拡張子.pdfに変更しました。

他の PDF ビューアー (PDF-XChange、SumatraPDF、MuPDF) で開くことができます。しかし、Adobe Reader で開くと、ファイルが壊れていると表示されます。

他の視聴者がこの「壊れた」ファイルを空のファイルとして扱うかどうかはわかりません。

このファイルは最小限の例であるため、空白ページを 1 ページ表示することになっています。

実際、最小限の例を変更します。PDF 仕様からメモ帳にコピーし、.txt ファイルを 16 進エディターで開くと、.txt ファイルに改行が表示され、スペースが 2 つ空くからです。例えば、

1 0 obj
<< /Type /Catalog

私に与えます(Hex Editorで)

1 0 obj  << /Type /Catalog

これは (16 進値で)

31 20 30 20 6F 62 6A 0D 0A 3C 3C 20 2F 54 79 70
65 20 2F 43 61 74 61 6C 6F 67

jとの間の 2 つのスペース<0D 0Aです。

したがって、メモ帳で新しい行を作成せず、xrefパーツの値を変更します。

以下は完全なコードです。

この例のどこが間違っているか分かりますか? Adobe Reader が破損していると表示されるのはなぜですか? これは、で間違った値を指定したためxrefですか?

%PDF-1.4 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [4 0 R] /Count 1 >> endobj 4 0 obj << /Type /Page /Parent 3 0 R /MediaBox [0 0 612 792] /Contents 5 0 R /Resources << /ProcSet 6 0 R >> >> endobj 5 0 obj << /Length 35 >> stream … Page-marking operators … endstream endobj 6 0 obj [/PDF] endobj xref 0 7 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000119 00000 n 0000000176 00000 n 0000000295 00000 n 0000000373 00000 n trailer << /Size 7 /Root 1 0 R >> startxref 395 %%EOF
4

1 に答える 1

17
于 2012-09-30T16:55:26.940 に答える