Ho preso l'esempio PDF minimo nella specifica PDF da PDF Specification, copiato in Blocco note, rinominato il file per avere l'estensione .pdf.Esempio PDF minimo nelle specifiche PDF
Posso aprirlo con altri visualizzatori di PDF (PDF-XChange, SumatraPDF, MuPDF). Ma quando lo apro con Adobe Reader, dice che il file è rotto.
Non sono sicuro che altri utenti considerino questo file "danneggiato" come file vuoto oppure no.
Il file dovrebbe visualizzare una pagina vuota, poiché è un esempio minimo.
Infatti, modifico l'esempio minimo. Perché quando lo copio dalle specifiche PDF al blocco note e apro il file .txt da un editor esadecimale, vedo una nuova riga nel file .txt darmi 2 spazio. Ad esempio,
1 0 obj
<< /Type /Catalog
mi da (in Hex Editor)
1 0 obj << /Type /Catalog
che è (in valori esadecimali)
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
I 2 spazi tra j
e <
sono 0D 0A
.
Quindi non creare nuove righe in NotePad e modificare i valori nella parte xref
.
Di seguito è riportato il codice completo.
Sai cosa c'è di sbagliato in questo esempio? Perché Adobe Reader dice che è rotto? È perché ho dato i valori errati in 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
Grazie Kurt, ma il motivo per cui il valore di startxref è 394 non 396. Non è questo il valore dovrebbe essere l'offset di byte del carattere 'x' in 'xref' in questo file? È 396 in un editor esadecimale. Ma con 396, il file è rotto e 394 funziona. Non conosco la ragione. – user565739
@ user565739: Dovresti eseguire 'dd bs = 1 skip = 394 if = this.pdf'. Ciò significa che hai saltato i primi 394 byte durante il dumping del file. Ora l'output dovrebbe iniziare con 'xref' su una riga da sola. –
Quando ho copiato/incollato questo, ho dovuto modificare il carattere singolo "..." attorno a "Operatori di contrassegno della pagina" per i tre caratteri "..." e lo startxref da 394 a 398. Sospetto che quando copio/incollato il singolo carattere "..." era mungito. Espandendone fino a tre, individuale "." su entrambi i lati dello stream, sono stati aggiunti altri 4 byte che mi hanno spostato a 398 da 394 per l'inizio della tabella xrif. – Pat