Imagemagick: Rohbilddaten für das Einbetten von PDF-Dateien generieren?

Ich versuche, ein Befehlszeilen-, Quellcode-Beispiel für eine PDF-Datei zu erstellen (siehe auchGenerieren von PDF-Beispielen im Nur-Text-Quellcode, die in einer Dokumentanzeige funktionieren), aber mit einem Bild einbetten. So weit bin ich gekommen - ich habe eine Vorlagehello.pdf:

%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 >>
                      /ProcSet [ /PDF /Text /ImageC ] /XObject << /Im1 8 0 R >>
      >>
  >>
endobj

5 0 obj
  << /Length 173 >>
stream
  BT
    /F1 24 Tf
    100 100 Td
    ( Hello World ) Tj
    200 200 Td
    ( Hello Again ) Tj
    % width skew-right-up skew-top-right height x y
    150 0 0 150 340 130 cm
    % 150 150 Td - irrelevant for image
    /Im1 Do
  ET
endstream
endobj

6 0 obj
  [ /PDF /Text ]
endobj

7 0 obj
  << /Type /Font
    /Subtype /Type1
    /Name /F1
    /BaseFont /Helvetica
    /Encoding /MacRomanEncoding
  >>
endobj

8 0 obj
<<
  /BitsPerComponent 8 /ColorSpace /DeviceRGB /DecodeParms
  <<
    /BitsPerComponent 8 /Colors 3 /Columns 150 /Predictor 10
  >>
  /Filter [ /FlateDecode ] /Height 150 /Length 1418 /Subtype /Image /Type /XObject /Width 150
>>
stream
###endstream
endobj

9 0 obj
  [ /PDF ]
endobj

xref
0 10
0000000000 65535 f
0000000009 00000 n
0000000074 00000 n
0000000120 00000 n
0000000179 00000 n
0000000364 00000 n
0000000466 00000 n
0000000496 00000 n
0000001000 00000 n
0000001100 00000 n

trailer
  << /Size 10
    /Root 1 0 R
  >>
startxref
625
%%EOF

Dann generiere ich die Bilddaten mitconvert, und ich wende "flache" Komprimierung mit anzlib:

convert -size 150x150 gradient:\#4b4-\#bfb test.ppm 
du -b test.ppm     # 135017 bytes
python -c "import zlib,sys;sys.stdout.write(zlib.compress(sys.stdin.read()))" < test.ppm > test.flate
du -b test.flate    # 1418 bytes

Dann ersetze ich die/Length 1418 in der Datei, und ersetzen Sie schließlich das Token### mit:

perl -ne 's/^###/`cat test.flate`/e;print' hello.pdf > hello2.pdf

Diese Datei enthält offensichtlich eine falsche XRef-Tabelle, wird jedoch in geöffnetevince Alles gut:

... es ist jedoch offensichtlich, dass die Bitmap nicht im richtigen Format vorliegt.

Ich habe versucht, auch zu generieren, sagen wir,

convert -size 150x150 gradient:\#4b4-\#bfb -endian LSB rgb:test.raw 

... aber diese sind im Allgemeinen nicht einmal grün (wie das Originalbild sein sollte).

 

Kennt jemand das richtige Bildformat - und dasconvert Befehlszeile - um ein rohes Bild zu generieren, das "flated" und in einem PDF enthalten sein kann?

Vielen Dank im Voraus für alle Antworten,
Prost!

Antworten auf die Frage(1)

Ihre Antwort auf die Frage