Como gerar exemplos PDF de código-fonte em texto simples que funcionam em um visualizador de documentos?

Acabei de encontrar o postFóruns da Adobe: texto simples Exemplo de seqüência de caracteres na especificação quebrada., então eu me interessei em encontrar exemplos de PDF de código-fonte em texto simples.

Então, através desse post, eu finalmente encontrei:

A página da webPDF Reference e Adobe Extensions para a especificação PDF | Conexão de desenvolvedor da Adobe ; que contém:O PDFGerenciamento de documentos - Formato de documento portátil - Parte 1: PDF 1.7, First Edition (PDF32000_2008.pdf)

A especificação do PDF 1.7 tem na página 699 apêndice "_Anexo H (informativo) Exemplo de arquivos PDF"; e de lá, eu queria tentar "H.3 Simple Text String Exemplo" (o "Hello World clássico").

Então eu tentei salvar isso comohello.pdf (_exclua nota quando você copia do PDF32000_2008.pdf, você pode receber "%PDF-1. 4"- isto é, um espaço inserido após1., que deve ser removido_):

%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
      /Font << /F1 7 0 R >>
  >>
>>
endobj

5 0 obj
  << /Length 73 >>
stream
  BT
    /F1 24 Tf
    100 100 Td
    ( Hello World ) Tj
  ET
endstream
endobj

... e estou tentando abri-lo:

evince hello.pdf

... no entanto, evince não pode abri-lo: "Não é possível abrir documento / documento PDF está danificado"; e também:

Error: PDF file is damaged - attempting to reconstruct xref table...
Error: Couldn't find trailer dictionary
Error: Couldn't read xref table

Eu também verifico comqpdf:

$ qpdf --check hello.pdf
WARNING: hello.pdf: file is damaged
WARNING: hello.pdf: can't find startxref
WARNING: hello.pdf: Attempting to reconstruct cross-reference table
hello.pdf: unable to find trailer dictionary while recovering damaged file

Onde estou indo errado com isso?

Muito obrigado antecipadamente por qualquer resposta,
Felicidades!

questionAnswers(2)

yourAnswerToTheQuestion