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