Я взял минимальный пример PDF в спецификации PDF из Спецификация PDF, скопировал его в NotePad, переименовал файл, чтобы иметь расширение. PDF.
Я могу открыть его с помощью другого средства просмотра PDF (PDF-XChange, SumatraPDF, MuPDF). Но когда я открываю его с помощью Adobe Reader, он говорит, что файл сломан.
Я не уверен, что другие зрители рассматривают этот "сломанный" файл как пустой файл или нет.
Файл должен отображать одну пустую страницу, так как это минимальный пример.
Фактически, я изменяю минимальный пример. Потому что, когда я копирую его из спецификации PDF в блокнот и открываю файл .txt с помощью Hex Editor, я вижу, что новая строка в TXT файле дает мне 2 пробела. Например,
1 0 obj
<< /Type /Catalog
дает мне (в Hex Editor)
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
2 пробела между j
и <
равны 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