我將PDF規範中的最小PDF示例從PDF Specification複製到NotePad,並將該文件重命名爲擴展名爲.pdf。PDF規範中的最小PDF示例
我可以用其他PDF查看器(PDF-XChange,SumatraPDF,MuPDF)打開它。但是當我用Adobe Reader打開它時,它說文件已損壞。
我不確定其他觀衆是否將這個「損壞」的文件視爲空白文件。
該文件應該顯示一個空白頁,因爲它是一個最小的例子。
其實我修改了最小的例子。因爲當我將它從PDF規範複製到記事本,並通過十六進制編輯器打開.txt文件時,我在.txt文件中看到一個新行,給我2個空格。例如,
1 0 obj
<< /Type /Catalog
給我(在十六進制編輯器)
1 0 obj << /Type /Catalog
其是(在十六進制值)
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
。
因此,我不在NotePad中換新行,並修改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
感謝庫爾特,但爲什麼startxref的值是394不是396這不是值應該是該文件中'xref'中字符'x'的字節偏移量?它是一個十六進制編輯器中的396。但與396,該文件被打破,394作品。我不知道原因。 – user565739
@ user565739:你應該運行'dd bs = 1 skip = 394 if = this.pdf'。這意味着在轉儲文件時跳過了前394個字節。現在輸出應該以'xref'開頭,並由它自己開始。 –
當我複製/粘貼這個時,我不得不將單個字符「...」圍繞「頁面標記操作符」更改爲三個字符「...」和從394到398的startxref。我懷疑當我複製/粘貼單個字符「...」被消滅了。通過擴展到三個,個人「。」在流的任一側,添加了另外4個字節,這使我從394開始將外部參照表移動到398。 – Pat