JPEGをアーカイブするのに無圧縮ZIPを使っていましたが(id:n7shi:20100923)、PDFの中にはJPEGがそのまま入っているため(id:n7shi:20110201)、PDFはZIPと同じようにコンテナとして扱えることに気付きました。
さっそく試そうと思い、以前id:m107さんに教えていただいたサイトを見返しました。
JPEGの埋め込み方は説明されていませんが、手元にあるPDFファイルなどを参考に補ってみました。最小構成の1ページでは以下のようになります。
※改行コードはCR+LFとしてオフセットを求めています。
%PDF-1.2 1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj 2 0 obj << /Type /Pages /Count 1 /Kids [ 3 0 R ] >> endobj 3 0 obj << /Type /Page /Parent 2 0 R /Contents 4 0 R /MediaBox [ 0 0 16 16 ] /Resources << /ProcSet [ /PDF /ImageB /ImageC /ImageI ] /XObject << /Jpeg1 5 0 R >> >> >> endobj 4 0 obj << /Length 30 >> stream q 16 0 0 16 0 0 cm /Jpeg1 Do Q endstream endobj 5 0 obj << /Type /XObject /Subtype /Image /Name /Jpeg1 /Filter /DCTDecode /BitsPerComponent 8 /ColorSpace /DeviceRGB /Width 16 /Height 16 /Length 631 >> stream ※ここにJPEGファイルのバイナリをそのまま埋め込む endstream endobj xref 0 6 0000000000 65535 f 0000000012 00000 n 0000000066 00000 n 0000000148 00000 n 0000000353 00000 n 0000000441 00000 n trailer << /Root 1 0 R /Size 6 >> startxref 1268 %%EOF