Giter VIP home page Giter VIP logo

pdf20examples's People

Contributors

datalogics-mattk avatar pdfa-mattk avatar petervwyatt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pdf20examples's Issues

Simple examples of soft masks and transparency

Can we have some simple self-contained examples of transparency?
Something like one rectangle overlaps another rectangle with a fading soft mask?
The chapter about transparency in the PDF reference is pretty long and theoretical and lacks any example.

PDF spec appendix examples

I am currently working through the PDF spec and these examples are great in my journey of getting a better understanding of the PDF format. So thanks for that.

Part of the spec is the following annex: "Annex H Example PDF files". I am trying to create a working example of all these examples, just like this github repository. I have managed to recreate most of the examples, but unfortunately I haven't been able to recreate the example in: "H.8.2 Table of Contents".

So I have some questions:

  1. Are there any examples like this repository for the annex examples inside the PDF spec?
  2. Are there any examples like this repository with a working Table of Contents / Nested lists?

Thanks in advance

Example of encrypted document?

Could we have an example of a v2.0 PDF document that is password protected? (Obviously, with the password made available!)

It would be useful to test whether PDF viewers can decrypt them.

Files that do not conform to ISO 32000-2:2017

There are a couple of problems:

PDF 2.0 UTF-8 string and annotation.pdf: (a) (b) (d) (e)
PDF 2.0 image with BPC.pdf: (a) (b)
PDF 2.0 via incremental save.pdf: (b) (c)
PDF 2.0 with offset start.pdf: (a) (b)
PDF 2.0 with page level output intent.pdf: (a) (b)
Simple PDF 2.0 file.pdf: (a) (b)

(a) "%%EOF" is supposed to be the last line of the document, therefore it must be followed by CR, LF, or CR LF (7.5.5)
(b) ID is required in PDF 2.0 (7.5.5)
(c) incorrect offset after startx (7.5.5)
(d) Metadata is supposed to be wrapped in an XMP packet [citation needed]
(e) Resources is required in page object (7.7.3.3)

Question regarding the Font, Widths and FontDescriptor

I am (still) working through the PDF spec (ISO 32000-2) and these examples are one of the few I could find that actually try to explain/showcase the new PDF 2.0 spec. So once again, thank you very much for these examples.

The topic I am currenty looking into is fonts and I noticed some things in the pdf20examples. For example if we look at "Simple PDF 2.0 file.pdf" it contains the following code:

5 0 obj
  <</Type /Font
    /Subtype /Type1
    /BaseFont /Helvetica
    /FirstChar 33
    /LastChar 126
    /Widths 6 0 R
    /FontDescriptor 7 0 R
  >>
endobj

6 0 obj
[ 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278 556
  556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015
  667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667
  778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222
  556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556
  556 333 500 278 556 500 722 500 500 500 334 260 334 584 ]
endobj

% This FontDescriptor contains only the required entries for PDF 2.0
% for unembedded standard 14 fonts that contain Latin characters
7 0 obj
  <</Type /FontDescriptor
    /FontName /Helvetica
    /Flags 32
    /FontBBox [ -166 -225 1000 931 ]
    /ItalicAngle 0
    /Ascent 718
    /Descent -207
    /CapHeight 718
    /StemV 88
    /MissingWidth 0  
  >>
endobj

My questions:

  1. Why is /FirstChar 33 and not 32? If I look at the PDF core font information of Helvetica (found here: link), I see these CharMetrics:
StartCharMetrics 315
C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ;
C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ;
C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ;
C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ;
C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ;
C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ;
C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;
C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ;
C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ;
C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ;
C 43 ; WX 584 ; N plus ; B 39 0 545 505 ;
C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ;
C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ;
C 46 ; WX 278 ; N period ; B 87 0 191 106 ;
C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ;
C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ;
C 49 ; WX 556 ; N one ; B 101 0 359 703 ;
C 50 ; WX 556 ; N two ; B 26 0 507 703 ;
C 51 ; WX 556 ; N three ; B 34 -19 522 703 ;
C 52 ; WX 556 ; N four ; B 25 0 523 703 ;
C 53 ; WX 556 ; N five ; B 32 -19 514 688 ;
C 54 ; WX 556 ; N six ; B 38 -19 518 703 ;
C 55 ; WX 556 ; N seven ; B 37 0 523 688 ;
C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ;
C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ;
C 58 ; WX 278 ; N colon ; B 87 0 191 516 ;
C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ;
C 60 ; WX 584 ; N less ; B 48 11 536 495 ;
C 61 ; WX 584 ; N equal ; B 39 115 545 390 ;
C 62 ; WX 584 ; N greater ; B 48 11 536 495 ;
C 63 ; WX 556 ; N question ; B 56 0 492 727 ;
C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ;
C 65 ; WX 667 ; N A ; B 14 0 654 718 ;
C 66 ; WX 667 ; N B ; B 74 0 627 718 ;
C 67 ; WX 722 ; N C ; B 44 -19 681 737 ;
C 68 ; WX 722 ; N D ; B 81 0 674 718 ;
C 69 ; WX 667 ; N E ; B 86 0 616 718 ;
C 70 ; WX 611 ; N F ; B 86 0 583 718 ;
C 71 ; WX 778 ; N G ; B 48 -19 704 737 ;
C 72 ; WX 722 ; N H ; B 77 0 646 718 ;
C 73 ; WX 278 ; N I ; B 91 0 188 718 ;
C 74 ; WX 500 ; N J ; B 17 -19 428 718 ;
C 75 ; WX 667 ; N K ; B 76 0 663 718 ;
C 76 ; WX 556 ; N L ; B 76 0 537 718 ;
C 77 ; WX 833 ; N M ; B 73 0 761 718 ;
C 78 ; WX 722 ; N N ; B 76 0 646 718 ;
C 79 ; WX 778 ; N O ; B 39 -19 739 737 ;
C 80 ; WX 667 ; N P ; B 86 0 622 718 ;
C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ;
C 82 ; WX 722 ; N R ; B 88 0 684 718 ;
C 83 ; WX 667 ; N S ; B 49 -19 620 737 ;
C 84 ; WX 611 ; N T ; B 14 0 597 718 ;
C 85 ; WX 722 ; N U ; B 79 -19 644 718 ;
C 86 ; WX 667 ; N V ; B 20 0 647 718 ;
C 87 ; WX 944 ; N W ; B 16 0 928 718 ;
C 88 ; WX 667 ; N X ; B 19 0 648 718 ;
C 89 ; WX 667 ; N Y ; B 14 0 653 718 ;
C 90 ; WX 611 ; N Z ; B 23 0 588 718 ;
C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ;
C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ;
C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ;
C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ;
C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ;
C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ;
C 97 ; WX 556 ; N a ; B 36 -15 530 538 ;
C 98 ; WX 556 ; N b ; B 58 -15 517 718 ;
C 99 ; WX 500 ; N c ; B 30 -15 477 538 ;
C 100 ; WX 556 ; N d ; B 35 -15 499 718 ;
C 101 ; WX 556 ; N e ; B 40 -15 516 538 ;
C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ;
C 103 ; WX 556 ; N g ; B 40 -220 499 538 ;
C 104 ; WX 556 ; N h ; B 65 0 491 718 ;
C 105 ; WX 222 ; N i ; B 67 0 155 718 ;
C 106 ; WX 222 ; N j ; B -16 -210 155 718 ;
C 107 ; WX 500 ; N k ; B 67 0 501 718 ;
C 108 ; WX 222 ; N l ; B 67 0 155 718 ;
C 109 ; WX 833 ; N m ; B 65 0 769 538 ;
C 110 ; WX 556 ; N n ; B 65 0 491 538 ;
C 111 ; WX 556 ; N o ; B 35 -14 521 538 ;
C 112 ; WX 556 ; N p ; B 58 -207 517 538 ;
C 113 ; WX 556 ; N q ; B 35 -207 494 538 ;
C 114 ; WX 333 ; N r ; B 77 0 332 538 ;
C 115 ; WX 500 ; N s ; B 32 -15 464 538 ;
C 116 ; WX 278 ; N t ; B 14 -7 257 669 ;
C 117 ; WX 556 ; N u ; B 68 -15 489 523 ;
C 118 ; WX 500 ; N v ; B 8 0 492 523 ;
C 119 ; WX 722 ; N w ; B 14 0 709 523 ;
C 120 ; WX 500 ; N x ; B 11 0 490 523 ;
C 121 ; WX 500 ; N y ; B 11 -214 489 523 ;
C 122 ; WX 500 ; N z ; B 31 0 469 523 ;
C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ;
C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ;
C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ;
C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ;
C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ;
C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ;
C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ;
C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ;
C 165 ; WX 556 ; N yen ; B 3 0 553 688 ;
C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ;
C 167 ; WX 556 ; N section ; B 43 -191 512 737 ;
C 168 ; WX 556 ; N currency ; B 28 99 528 603 ;
C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ;
C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ;
C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ;
C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ;
C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ;
C 174 ; WX 500 ; N fi ; B 14 0 434 728 ;
C 175 ; WX 500 ; N fl ; B 14 0 432 728 ;
C 177 ; WX 556 ; N endash ; B 0 240 556 313 ;
C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ;
C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ;
C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ;
C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ;
C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ;
C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ;
C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ;
C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ;
C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ;
C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ;
C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ;
C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ;
C 193 ; WX 333 ; N grave ; B 14 593 211 734 ;
C 194 ; WX 333 ; N acute ; B 122 593 319 734 ;
C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ;
C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ;
C 197 ; WX 333 ; N macron ; B 10 627 323 684 ;
C 198 ; WX 333 ; N breve ; B 13 595 321 731 ;
C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ;
C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ;
C 202 ; WX 333 ; N ring ; B 75 572 259 756 ;
C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ;
C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ;
C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ;
C 207 ; WX 333 ; N caron ; B 21 593 312 734 ;
C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ;
C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ;
C 227 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ;
C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ;
C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ;
C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ;
C 235 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ;
C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ;
C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ;
C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ;
C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ;
C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ;
C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ;
C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ;
C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ;
C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ;
C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ;
C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ;
C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ;
C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ;
C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ;
C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ;
C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ;
C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ;
C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ;
C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ;
C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ;
C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ;
C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ;
C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ;
C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ;
C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ;
C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ;
C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ;
C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ;
C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ;
C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ;
C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ;
C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ;
C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ;
C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ;
C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ;
C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ;
C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ;
C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ;
C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ;
C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ;
C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ;
C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ;
C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ;
C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ;
C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ;
C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ;
C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ;
C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ;
C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ;
C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ;
C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ;
C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ;
C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ;
C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ;
C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ;
C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ;
C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ;
C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ;
C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ;
C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ;
C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ;
C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ;
C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ;
C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ;
C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ;
C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ;
C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ;
C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ;
C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ;
C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ;
C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ;
C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ;
C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ;
C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ;
C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ;
C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ;
C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ;
C -1 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ;
C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ;
C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ;
C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ;
C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ;
C -1 ; WX 333 ; N racute ; B 77 0 332 734 ;
C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ;
C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ;
C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ;
C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ;
C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ;
C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ;
C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ;
C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ;
C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ;
C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ;
C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ;
C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ;
C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ;
C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ;
C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ;
C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ;
C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ;
C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ;
C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ;
C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ;
C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ;
C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ;
C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ;
C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ;
C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ;
C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ;
C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ;
C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ;
C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ;
C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ;
C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ;
C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ;
C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ;
C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ;
C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ;
C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ;
C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ;
C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ;
C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ;
C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ;
C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ;
C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ;
C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ;
C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ;
C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ;
C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ;
C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ;
C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ;
C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ;
C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ;
C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ;
C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ;
C -1 ; WX 400 ; N degree ; B 54 411 346 703 ;
C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ;
C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ;
C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ;
C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ;
C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ;
C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ;
C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ;
C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ;
C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ;
C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ;
C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ;
C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ;
C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ;
C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ;
C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ;
C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ;
C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ;
C -1 ; WX 584 ; N minus ; B 39 216 545 289 ;
C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ;
C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ;
C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ;
C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ;
C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ;
C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ;
C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ;
C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ;
C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ;
C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ;
C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ;
C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ;
C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ;
C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ;
EndCharMetrics

Which clearly starts at character 32, so why was character 33 used as FirstChar?

  1. Similar to the first question, why is /LastChar 126 and not 251 (or -1)? I tried -1 myself and filled the widths array, but it doesn't work and I found no way to give all the -1 characters a width and as a result all these characters don't show up correctly (for example โ‚ฌ doesn't show correctly). How would I give all 315 character codes the correct width?

  2. In the FontDescriptor I see:
    /Flags 32
    What is the logic behind the value 32? The spec doesn't help me either, because it gives examples like:
    /Flags 262178 %Bits 2, 6, and 19
    How do you get to these values? I would expect a value like 2619 or something, but the values just don't make any sense. Same thing with the 32 I would have expected 23 as a combination of flag 2 and 3, but apparently it's bit position 32 and that means high-order? Even though this bit position doesn't even exist in the table of Font flags in the PDF spec. I also tried every unsigned 32-bit integer calculator to make sense of these numbers, but nothing worked.

  3. In the fontDescriptor I also see:
    /MissingWidth 0
    Shouldn't this be used since we don't supply the width for all the character codes? Strangely enough it does get used in the "PDF 2.0 with page level output intent.pdf" example, see:
    /MissingWidth 278
    And then I am wondering, how do you get that value of 278, is that random or can I actually find that in the font information somewhere?

Hopefully someone can help me with these questions or point me in the right direction.

Thanks in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.