Tests/LibPDF: Add a PDF using the standard 14 fonts

Hand-written (with offsets fixed up by `mutool clean`).
Uses the default encoding for each font.  Manual test for now.

Byte strings generated with:

    python3 -c "for i in range(4):
        print('<' +
              ''.join('%02x' % r for r in range(i * 64, (i + 1) * 64)) +
              '>')"
This commit is contained in:
Nico Weber 2024-01-02 18:23:22 -05:00 committed by Andreas Kling
parent 34160743dc
commit 4380be9d01

View file

@ -0,0 +1,290 @@
%PDF-1.3
%µ¶
1 0 obj
<</Info 22 0 R/Pages 2 0 R/Type/Catalog>>
endobj
2 0 obj
<</Type/Pages/Kids[3 0 R]/Count 1>>
endobj
3 0 obj
<</Resources<</Font<</Symbol 17 0 R/Courier 13 0 R/TimesItalic 7 0 R/Times 5 0 R/CourierOblique 15 0 R/ZapfDingbats 18 0 R/HelveticaOblique 11 0 R/TimesBoldItalic 8 0 R/TimesBold 6 0 R/HelveticaBold 10 0 R/HelveticaBoldOblique 12 0 R/CourierBold 14 0 R/CourierBoldOblique 16 0 R/Helvetica 9 0 R>>>>/Type/Page/Rotate 0/Parent 2 0 R/MediaBox[0 0 660 900]/Contents 4 0 R>>
endobj
4 0 obj
<</Length 8344>>
stream
-15 TL
BT
40 860 Td
/Helvetica 10 Tf
(Times) Tj
ET
BT
40 830 Td
/Times 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 790 Td
/TimesBold 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 750 Td
/TimesItalic 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 710 Td
/TimesBoldItalic 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 680 Td
/Helvetica 10 Tf
(Helvetica) Tj
ET
BT
40 650 Td
/Helvetica 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 610 Td
/HelveticaBold 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 570 Td
/HelveticaOblique 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 530 Td
/HelveticaBoldOblique 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 500 Td
/Helvetica 10 Tf
(Courier) Tj
ET
BT
40 470 Td
/Courier 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 430 Td
/CourierBold 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 390 Td
/CourierOblique 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 350 Td
/CourierBoldOblique 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 320 Td
/Helvetica 10 Tf
(Symbol) Tj
ET
BT
40 290 Td
/Symbol 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
BT
40 260 Td
/Helvetica 10 Tf
(ZapfDingbats) Tj
ET
BT
40 230 Td
/ZapfDingbats 7 Tf
<000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f> Tj
<404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f> Tj T*
<808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf> Tj
<c0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff> Tj T*
ET
endstream
endobj
5 0 obj
<</Type/Font/Subtype/Type1/Name/Times/BaseFont/Times-Roman>>
endobj
6 0 obj
<</Type/Font/Subtype/Type1/Name/TimesBold/BaseFont/Times-Bold>>
endobj
7 0 obj
<</Type/Font/Subtype/Type1/Name/TimesItalic/BaseFont/Times-Italic>>
endobj
8 0 obj
<</Type/Font/Subtype/Type1/Name/TimesBoldItalic/BaseFont/Times-BoldItalic>>
endobj
9 0 obj
<</Type/Font/Subtype/Type1/Name/Helvetica/BaseFont/Helvetica>>
endobj
10 0 obj
<</Type/Font/Subtype/Type1/Name/HelveticaBold/BaseFont/Helvetica-Bold>>
endobj
11 0 obj
<</Type/Font/Subtype/Type1/Name/HelveticaOblique/BaseFont/Helvetica-Oblique>>
endobj
12 0 obj
<</Type/Font/Subtype/Type1/Name/HelveticaBoldOblique/BaseFont/Helvetica-BoldOblique>>
endobj
13 0 obj
<</Type/Font/Subtype/Type1/Name/Courier/BaseFont/Courier>>
endobj
14 0 obj
<</Type/Font/Subtype/Type1/Name/CourierBold/BaseFont/Courier-Bold>>
endobj
15 0 obj
<</Type/Font/Subtype/Type1/Name/CourierOblique/BaseFont/Courier-Oblique>>
endobj
16 0 obj
<</Type/Font/Subtype/Type1/Name/CourierBoldOblique/BaseFont/Courier-BoldOblique>>
endobj
17 0 obj
<</Type/Font/Subtype/Type1/Name/Symbol/BaseFont/Symbol>>
endobj
18 0 obj
<</Type/Font/Subtype/Type1/Name/ZapfDingbats/BaseFont/ZapfDingbats>>
endobj
19 0 obj
<</Producer(macOS Version 13.5.2 \(Build 22G91\) Quartz PDFContext, AppendMode 1.1)/ModDate(D:20240102170254Z00'00')>>
endobj
20 0 obj
19 0 R
endobj
21 0 obj
<</Producer(macOS Version 13.5.2 \(Build 22G91\) Quartz PDFContext, AppendMode 1.1)/ModDate(D:20240102170448Z00'00')>>
endobj
22 0 obj
21 0 R
endobj
xref
0 23
0000000000 65536 f
0000000016 00000 n
0000000074 00000 n
0000000126 00000 n
0000000512 00000 n
0000008907 00000 n
0000008984 00000 n
0000009064 00000 n
0000009148 00000 n
0000009240 00000 n
0000009319 00000 n
0000009408 00000 n
0000009503 00000 n
0000009606 00000 n
0000009682 00000 n
0000009767 00000 n
0000009858 00000 n
0000009957 00000 n
0000010031 00000 n
0000010117 00000 n
0000010253 00000 n
0000010277 00000 n
0000010413 00000 n
trailer
<</Size 23/Info 22 0 R/Root 1 0 R/ID[()<230870E93A11500997DEFC784DAE521E>]>>
startxref
10437
%%EOF