David PHAM-VAN

Implement Type1 default fonts

@@ -6,7 +6,7 @@ void main() { @@ -6,7 +6,7 @@ void main() {
6 final pdf = PdfDocument(deflate: zlib.encode); 6 final pdf = PdfDocument(deflate: zlib.encode);
7 final page = PdfPage(pdf, pageFormat: PdfPageFormat.letter); 7 final page = PdfPage(pdf, pageFormat: PdfPageFormat.letter);
8 final g = page.getGraphics(); 8 final g = page.getGraphics();
9 - final font = PdfFont(pdf); 9 + final font = g.defaultFont;
10 final top = page.pageFormat.height; 10 final top = page.pageFormat.height;
11 11
12 g.setColor(PdfColor(0.0, 1.0, 1.0)); 12 g.setColor(PdfColor(0.0, 1.0, 1.0));
@@ -51,5 +51,6 @@ part 'src/rect.dart'; @@ -51,5 +51,6 @@ part 'src/rect.dart';
51 part 'src/stream.dart'; 51 part 'src/stream.dart';
52 part 'src/ttf_parser.dart'; 52 part 'src/ttf_parser.dart';
53 part 'src/ttffont.dart'; 53 part 'src/ttffont.dart';
  54 +part 'src/type1_font.dart';
54 part 'src/xobject.dart'; 55 part 'src/xobject.dart';
55 part 'src/xref.dart'; 56 part 'src/xref.dart';
@@ -126,9 +126,9 @@ class PDFFontDescriptor extends PdfFontDescriptor { @@ -126,9 +126,9 @@ class PDFFontDescriptor extends PdfFontDescriptor {
126 126
127 @deprecated 127 @deprecated
128 class PDFFont extends PdfFont { 128 class PDFFont extends PdfFont {
129 - PDFFont(PdfDocument pdfDocument,  
130 - {String subtype = "/Type1", String baseFont = "/Helvetica"})  
131 - : super(pdfDocument, subtype: subtype, baseFont: baseFont); 129 + factory PDFFont(PdfDocument pdfDocument, {String subtype, String baseFont}) {
  130 + return PdfFont.helvetica(pdfDocument);
  131 + }
132 } 132 }
133 133
134 @deprecated 134 @deprecated
@@ -22,23 +22,21 @@ class PdfFont extends PdfObject { @@ -22,23 +22,21 @@ class PdfFont extends PdfObject {
22 /// Thedf type of the font, usually /Type1 22 /// Thedf type of the font, usually /Type1
23 final String subtype; 23 final String subtype;
24 24
25 - /// The font's real name  
26 - String baseFont;  
27 -  
28 /// Constructs a [PdfFont]. This will attempt to map the font from a known 25 /// Constructs a [PdfFont]. This will attempt to map the font from a known
29 /// font name to that in Pdf, defaulting to Helvetica if not possible. 26 /// font name to that in Pdf, defaulting to Helvetica if not possible.
30 /// 27 ///
31 /// @param name The document name, ie /F1 28 /// @param name The document name, ie /F1
32 /// @param subtype The pdf type, ie /Type1 29 /// @param subtype The pdf type, ie /Type1
33 /// @param baseFont The font name, ie /Helvetica 30 /// @param baseFont The font name, ie /Helvetica
34 - PdfFont(PdfDocument pdfDocument,  
35 - {this.subtype = "/Type1", this.baseFont = "/Helvetica"}) 31 + PdfFont._create(PdfDocument pdfDocument, {@required this.subtype})
36 : super(pdfDocument, "/Font") { 32 : super(pdfDocument, "/Font") {
37 pdfDocument.fonts.add(this); 33 pdfDocument.fonts.add(this);
38 } 34 }
39 35
40 String get name => "/F$objser"; 36 String get name => "/F$objser";
41 37
  38 + String get fontName => null;
  39 +
42 /// @param os OutputStream to send the object to 40 /// @param os OutputStream to send the object to
43 @override 41 @override
44 void _prepare() { 42 void _prepare() {
@@ -46,7 +44,6 @@ class PdfFont extends PdfObject { @@ -46,7 +44,6 @@ class PdfFont extends PdfObject {
46 44
47 params["/Subtype"] = PdfStream.string(subtype); 45 params["/Subtype"] = PdfStream.string(subtype);
48 params["/Name"] = PdfStream.string(name); 46 params["/Name"] = PdfStream.string(name);
49 - params["/BaseFont"] = PdfStream.string(baseFont);  
50 params["/Encoding"] = PdfStream.string("/WinAnsiEncoding"); 47 params["/Encoding"] = PdfStream.string("/WinAnsiEncoding");
51 } 48 }
52 49
@@ -55,7 +52,7 @@ class PdfFont extends PdfObject { @@ -55,7 +52,7 @@ class PdfFont extends PdfObject {
55 } 52 }
56 53
57 PdfRect glyphBounds(int charCode) { 54 PdfRect glyphBounds(int charCode) {
58 - return const PdfRect(0.0, 0.0, 0.4, 1.0); 55 + return PdfRect(0.0, 0.0, glyphAdvance(charCode), 1.0);
59 } 56 }
60 57
61 PdfRect stringBounds(String s) { 58 PdfRect stringBounds(String s) {
@@ -96,4 +93,2643 @@ class PdfFont extends PdfObject { @@ -96,4 +93,2643 @@ class PdfFont extends PdfObject {
96 93
97 return PdfPoint(w, h); 94 return PdfPoint(w, h);
98 } 95 }
  96 +
  97 + factory PdfFont.courier(PdfDocument pdfDocument) {
  98 + return PdfType1Font._create(pdfDocument, "Courier", 0.910, -0.220,
  99 + List<double>.generate(256, (int index) => 0.600));
  100 + }
  101 +
  102 + factory PdfFont.courierBold(PdfDocument pdfDocument) {
  103 + return PdfType1Font._create(pdfDocument, "Courier-Bold", 0.910, -0.220,
  104 + List<double>.generate(256, (int index) => 0.600));
  105 + }
  106 +
  107 + factory PdfFont.courierBoldOblique(PdfDocument pdfDocument) {
  108 + return PdfType1Font._create(pdfDocument, "Courier-BoldOblique", 0.910,
  109 + -0.220, List<double>.generate(256, (int index) => 0.600));
  110 + }
  111 +
  112 + factory PdfFont.courierOblique(PdfDocument pdfDocument) {
  113 + return PdfType1Font._create(pdfDocument, "Courier-Oblique", 0.910, -0.220,
  114 + List<double>.generate(256, (int index) => 0.600));
  115 + }
  116 +
  117 + factory PdfFont.helvetica(PdfDocument pdfDocument) {
  118 + return PdfType1Font._create(
  119 + pdfDocument, "Helvetica", 0.931, -0.225, <double>[
  120 + 0.500,
  121 + 0.500,
  122 + 0.500,
  123 + 0.500,
  124 + 0.500,
  125 + 0.500,
  126 + 0.500,
  127 + 0.500,
  128 + 0.500,
  129 + 0.500,
  130 + 0.500,
  131 + 0.500,
  132 + 0.500,
  133 + 0.500,
  134 + 0.500,
  135 + 0.500,
  136 + 0.500,
  137 + 0.500,
  138 + 0.500,
  139 + 0.500,
  140 + 0.500,
  141 + 0.500,
  142 + 0.500,
  143 + 0.500,
  144 + 0.500,
  145 + 0.500,
  146 + 0.500,
  147 + 0.500,
  148 + 0.500,
  149 + 0.500,
  150 + 0.500,
  151 + 0.500,
  152 + 0.278,
  153 + 0.278,
  154 + 0.355,
  155 + 0.556,
  156 + 0.556,
  157 + 0.889,
  158 + 0.667,
  159 + 0.191,
  160 + 0.333,
  161 + 0.333,
  162 + 0.389,
  163 + 0.584,
  164 + 0.278,
  165 + 0.333,
  166 + 0.278,
  167 + 0.278,
  168 + 0.556,
  169 + 0.556,
  170 + 0.556,
  171 + 0.556,
  172 + 0.556,
  173 + 0.556,
  174 + 0.556,
  175 + 0.556,
  176 + 0.556,
  177 + 0.556,
  178 + 0.278,
  179 + 0.278,
  180 + 0.584,
  181 + 0.584,
  182 + 0.584,
  183 + 0.556,
  184 + 1.015,
  185 + 0.667,
  186 + 0.667,
  187 + 0.722,
  188 + 0.722,
  189 + 0.667,
  190 + 0.611,
  191 + 0.778,
  192 + 0.722,
  193 + 0.278,
  194 + 0.500,
  195 + 0.667,
  196 + 0.556,
  197 + 0.833,
  198 + 0.722,
  199 + 0.778,
  200 + 0.667,
  201 + 0.778,
  202 + 0.722,
  203 + 0.667,
  204 + 0.611,
  205 + 0.722,
  206 + 0.667,
  207 + 0.944,
  208 + 0.667,
  209 + 0.667,
  210 + 0.611,
  211 + 0.278,
  212 + 0.278,
  213 + 0.277,
  214 + 0.469,
  215 + 0.556,
  216 + 0.333,
  217 + 0.556,
  218 + 0.556,
  219 + 0.500,
  220 + 0.556,
  221 + 0.556,
  222 + 0.278,
  223 + 0.556,
  224 + 0.556,
  225 + 0.222,
  226 + 0.222,
  227 + 0.500,
  228 + 0.222,
  229 + 0.833,
  230 + 0.556,
  231 + 0.556,
  232 + 0.556,
  233 + 0.556,
  234 + 0.333,
  235 + 0.500,
  236 + 0.278,
  237 + 0.556,
  238 + 0.500,
  239 + 0.722,
  240 + 0.500,
  241 + 0.500,
  242 + 0.500,
  243 + 0.334,
  244 + 0.260,
  245 + 0.334,
  246 + 0.584,
  247 + 0.500,
  248 + 0.655,
  249 + 0.500,
  250 + 0.222,
  251 + 0.278,
  252 + 0.333,
  253 + 1.000,
  254 + 0.556,
  255 + 0.556,
  256 + 0.333,
  257 + 1.000,
  258 + 0.667,
  259 + 0.250,
  260 + 1.000,
  261 + 0.500,
  262 + 0.611,
  263 + 0.500,
  264 + 0.500,
  265 + 0.222,
  266 + 0.221,
  267 + 0.333,
  268 + 0.333,
  269 + 0.350,
  270 + 0.556,
  271 + 1.000,
  272 + 0.333,
  273 + 1.000,
  274 + 0.500,
  275 + 0.250,
  276 + 0.938,
  277 + 0.500,
  278 + 0.500,
  279 + 0.667,
  280 + 0.278,
  281 + 0.278,
  282 + 0.556,
  283 + 0.556,
  284 + 0.556,
  285 + 0.556,
  286 + 0.260,
  287 + 0.556,
  288 + 0.333,
  289 + 0.737,
  290 + 0.370,
  291 + 0.448,
  292 + 0.584,
  293 + 0.333,
  294 + 0.737,
  295 + 0.333,
  296 + 0.606,
  297 + 0.584,
  298 + 0.350,
  299 + 0.350,
  300 + 0.333,
  301 + 0.556,
  302 + 0.537,
  303 + 0.278,
  304 + 0.333,
  305 + 0.350,
  306 + 0.365,
  307 + 0.448,
  308 + 0.869,
  309 + 0.869,
  310 + 0.879,
  311 + 0.556,
  312 + 0.667,
  313 + 0.667,
  314 + 0.667,
  315 + 0.667,
  316 + 0.667,
  317 + 0.667,
  318 + 1.000,
  319 + 0.722,
  320 + 0.667,
  321 + 0.667,
  322 + 0.667,
  323 + 0.667,
  324 + 0.278,
  325 + 0.278,
  326 + 0.278,
  327 + 0.278,
  328 + 0.722,
  329 + 0.722,
  330 + 0.778,
  331 + 0.778,
  332 + 0.778,
  333 + 0.778,
  334 + 0.778,
  335 + 0.584,
  336 + 0.778,
  337 + 0.722,
  338 + 0.722,
  339 + 0.722,
  340 + 0.722,
  341 + 0.667,
  342 + 0.666,
  343 + 0.611,
  344 + 0.556,
  345 + 0.556,
  346 + 0.556,
  347 + 0.556,
  348 + 0.556,
  349 + 0.556,
  350 + 0.896,
  351 + 0.500,
  352 + 0.556,
  353 + 0.556,
  354 + 0.556,
  355 + 0.556,
  356 + 0.251,
  357 + 0.251,
  358 + 0.251,
  359 + 0.251,
  360 + 0.556,
  361 + 0.556,
  362 + 0.556,
  363 + 0.556,
  364 + 0.556,
  365 + 0.556,
  366 + 0.556,
  367 + 0.584,
  368 + 0.611,
  369 + 0.556,
  370 + 0.556,
  371 + 0.556,
  372 + 0.556,
  373 + 0.500,
  374 + 0.555,
  375 + 0.500
  376 + ]);
  377 + }
  378 +
  379 + factory PdfFont.helveticaBold(PdfDocument pdfDocument) {
  380 + return PdfType1Font._create(
  381 + pdfDocument, "Helvetica-Bold", 0.962, -0.228, <double>[
  382 + 0.278,
  383 + 0.278,
  384 + 0.278,
  385 + 0.278,
  386 + 0.278,
  387 + 0.278,
  388 + 0.278,
  389 + 0.278,
  390 + 0.278,
  391 + 0.278,
  392 + 0.278,
  393 + 0.278,
  394 + 0.278,
  395 + 0.278,
  396 + 0.278,
  397 + 0.278,
  398 + 0.278,
  399 + 0.278,
  400 + 0.278,
  401 + 0.278,
  402 + 0.278,
  403 + 0.278,
  404 + 0.278,
  405 + 0.278,
  406 + 0.278,
  407 + 0.278,
  408 + 0.278,
  409 + 0.278,
  410 + 0.278,
  411 + 0.278,
  412 + 0.278,
  413 + 0.278,
  414 + 0.278,
  415 + 0.333,
  416 + 0.474,
  417 + 0.556,
  418 + 0.556,
  419 + 0.889,
  420 + 0.722,
  421 + 0.238,
  422 + 0.333,
  423 + 0.333,
  424 + 0.389,
  425 + 0.584,
  426 + 0.278,
  427 + 0.333,
  428 + 0.278,
  429 + 0.278,
  430 + 0.556,
  431 + 0.556,
  432 + 0.556,
  433 + 0.556,
  434 + 0.556,
  435 + 0.556,
  436 + 0.556,
  437 + 0.556,
  438 + 0.556,
  439 + 0.556,
  440 + 0.333,
  441 + 0.333,
  442 + 0.584,
  443 + 0.584,
  444 + 0.584,
  445 + 0.611,
  446 + 0.975,
  447 + 0.722,
  448 + 0.722,
  449 + 0.722,
  450 + 0.722,
  451 + 0.667,
  452 + 0.611,
  453 + 0.778,
  454 + 0.722,
  455 + 0.278,
  456 + 0.556,
  457 + 0.722,
  458 + 0.611,
  459 + 0.833,
  460 + 0.722,
  461 + 0.778,
  462 + 0.667,
  463 + 0.778,
  464 + 0.722,
  465 + 0.667,
  466 + 0.611,
  467 + 0.722,
  468 + 0.667,
  469 + 0.944,
  470 + 0.667,
  471 + 0.667,
  472 + 0.611,
  473 + 0.333,
  474 + 0.278,
  475 + 0.333,
  476 + 0.584,
  477 + 0.556,
  478 + 0.333,
  479 + 0.556,
  480 + 0.611,
  481 + 0.556,
  482 + 0.611,
  483 + 0.556,
  484 + 0.333,
  485 + 0.611,
  486 + 0.611,
  487 + 0.278,
  488 + 0.278,
  489 + 0.556,
  490 + 0.278,
  491 + 0.889,
  492 + 0.611,
  493 + 0.611,
  494 + 0.611,
  495 + 0.611,
  496 + 0.389,
  497 + 0.556,
  498 + 0.333,
  499 + 0.611,
  500 + 0.556,
  501 + 0.778,
  502 + 0.556,
  503 + 0.556,
  504 + 0.500,
  505 + 0.389,
  506 + 0.280,
  507 + 0.389,
  508 + 0.584,
  509 + 0.350,
  510 + 0.556,
  511 + 0.350,
  512 + 0.278,
  513 + 0.556,
  514 + 0.500,
  515 + 1.000,
  516 + 0.556,
  517 + 0.556,
  518 + 0.333,
  519 + 1.000,
  520 + 0.667,
  521 + 0.333,
  522 + 1.000,
  523 + 0.350,
  524 + 0.611,
  525 + 0.350,
  526 + 0.350,
  527 + 0.278,
  528 + 0.278,
  529 + 0.500,
  530 + 0.500,
  531 + 0.350,
  532 + 0.556,
  533 + 1.000,
  534 + 0.333,
  535 + 1.000,
  536 + 0.556,
  537 + 0.333,
  538 + 0.944,
  539 + 0.350,
  540 + 0.500,
  541 + 0.667,
  542 + 0.278,
  543 + 0.333,
  544 + 0.556,
  545 + 0.556,
  546 + 0.556,
  547 + 0.556,
  548 + 0.280,
  549 + 0.556,
  550 + 0.333,
  551 + 0.737,
  552 + 0.370,
  553 + 0.556,
  554 + 0.584,
  555 + 0.333,
  556 + 0.737,
  557 + 0.333,
  558 + 0.400,
  559 + 0.584,
  560 + 0.333,
  561 + 0.333,
  562 + 0.333,
  563 + 0.611,
  564 + 0.556,
  565 + 0.278,
  566 + 0.333,
  567 + 0.333,
  568 + 0.365,
  569 + 0.556,
  570 + 0.834,
  571 + 0.834,
  572 + 0.834,
  573 + 0.611,
  574 + 0.722,
  575 + 0.722,
  576 + 0.722,
  577 + 0.722,
  578 + 0.722,
  579 + 0.722,
  580 + 1.000,
  581 + 0.722,
  582 + 0.667,
  583 + 0.667,
  584 + 0.667,
  585 + 0.667,
  586 + 0.278,
  587 + 0.278,
  588 + 0.278,
  589 + 0.278,
  590 + 0.722,
  591 + 0.722,
  592 + 0.778,
  593 + 0.778,
  594 + 0.778,
  595 + 0.778,
  596 + 0.778,
  597 + 0.584,
  598 + 0.778,
  599 + 0.722,
  600 + 0.722,
  601 + 0.722,
  602 + 0.722,
  603 + 0.667,
  604 + 0.667,
  605 + 0.611,
  606 + 0.556,
  607 + 0.556,
  608 + 0.556,
  609 + 0.556,
  610 + 0.556,
  611 + 0.556,
  612 + 0.889,
  613 + 0.556,
  614 + 0.556,
  615 + 0.556,
  616 + 0.556,
  617 + 0.556,
  618 + 0.278,
  619 + 0.278,
  620 + 0.278,
  621 + 0.278,
  622 + 0.611,
  623 + 0.611,
  624 + 0.611,
  625 + 0.611,
  626 + 0.611,
  627 + 0.611,
  628 + 0.611,
  629 + 0.584,
  630 + 0.611,
  631 + 0.611,
  632 + 0.611,
  633 + 0.611,
  634 + 0.611,
  635 + 0.556,
  636 + 0.611,
  637 + 0.556
  638 + ]);
  639 + }
  640 +
  641 + factory PdfFont.helveticaBoldOblique(PdfDocument pdfDocument) {
  642 + return PdfType1Font._create(
  643 + pdfDocument, "Helvetica-BoldOblique", 0.962, -0.228, <double>[
  644 + 0.278,
  645 + 0.278,
  646 + 0.278,
  647 + 0.278,
  648 + 0.278,
  649 + 0.278,
  650 + 0.278,
  651 + 0.278,
  652 + 0.278,
  653 + 0.278,
  654 + 0.278,
  655 + 0.278,
  656 + 0.278,
  657 + 0.278,
  658 + 0.278,
  659 + 0.278,
  660 + 0.278,
  661 + 0.278,
  662 + 0.278,
  663 + 0.278,
  664 + 0.278,
  665 + 0.278,
  666 + 0.278,
  667 + 0.278,
  668 + 0.278,
  669 + 0.278,
  670 + 0.278,
  671 + 0.278,
  672 + 0.278,
  673 + 0.278,
  674 + 0.278,
  675 + 0.278,
  676 + 0.278,
  677 + 0.333,
  678 + 0.474,
  679 + 0.556,
  680 + 0.556,
  681 + 0.889,
  682 + 0.722,
  683 + 0.238,
  684 + 0.333,
  685 + 0.333,
  686 + 0.389,
  687 + 0.584,
  688 + 0.278,
  689 + 0.333,
  690 + 0.278,
  691 + 0.278,
  692 + 0.556,
  693 + 0.556,
  694 + 0.556,
  695 + 0.556,
  696 + 0.556,
  697 + 0.556,
  698 + 0.556,
  699 + 0.556,
  700 + 0.556,
  701 + 0.556,
  702 + 0.333,
  703 + 0.333,
  704 + 0.584,
  705 + 0.584,
  706 + 0.584,
  707 + 0.611,
  708 + 0.975,
  709 + 0.722,
  710 + 0.722,
  711 + 0.722,
  712 + 0.722,
  713 + 0.667,
  714 + 0.611,
  715 + 0.778,
  716 + 0.722,
  717 + 0.278,
  718 + 0.556,
  719 + 0.722,
  720 + 0.611,
  721 + 0.833,
  722 + 0.722,
  723 + 0.778,
  724 + 0.667,
  725 + 0.778,
  726 + 0.722,
  727 + 0.667,
  728 + 0.611,
  729 + 0.722,
  730 + 0.667,
  731 + 0.944,
  732 + 0.667,
  733 + 0.667,
  734 + 0.611,
  735 + 0.333,
  736 + 0.278,
  737 + 0.333,
  738 + 0.584,
  739 + 0.556,
  740 + 0.333,
  741 + 0.556,
  742 + 0.611,
  743 + 0.556,
  744 + 0.611,
  745 + 0.556,
  746 + 0.333,
  747 + 0.611,
  748 + 0.611,
  749 + 0.278,
  750 + 0.278,
  751 + 0.556,
  752 + 0.278,
  753 + 0.889,
  754 + 0.611,
  755 + 0.611,
  756 + 0.611,
  757 + 0.611,
  758 + 0.389,
  759 + 0.556,
  760 + 0.333,
  761 + 0.611,
  762 + 0.556,
  763 + 0.778,
  764 + 0.556,
  765 + 0.556,
  766 + 0.500,
  767 + 0.389,
  768 + 0.280,
  769 + 0.389,
  770 + 0.584,
  771 + 0.350,
  772 + 0.556,
  773 + 0.350,
  774 + 0.278,
  775 + 0.556,
  776 + 0.500,
  777 + 1.000,
  778 + 0.556,
  779 + 0.556,
  780 + 0.333,
  781 + 1.000,
  782 + 0.667,
  783 + 0.333,
  784 + 1.000,
  785 + 0.350,
  786 + 0.611,
  787 + 0.350,
  788 + 0.350,
  789 + 0.278,
  790 + 0.278,
  791 + 0.500,
  792 + 0.500,
  793 + 0.350,
  794 + 0.556,
  795 + 1.000,
  796 + 0.333,
  797 + 1.000,
  798 + 0.556,
  799 + 0.333,
  800 + 0.944,
  801 + 0.350,
  802 + 0.500,
  803 + 0.667,
  804 + 0.278,
  805 + 0.333,
  806 + 0.556,
  807 + 0.556,
  808 + 0.556,
  809 + 0.556,
  810 + 0.280,
  811 + 0.556,
  812 + 0.333,
  813 + 0.737,
  814 + 0.370,
  815 + 0.556,
  816 + 0.584,
  817 + 0.333,
  818 + 0.737,
  819 + 0.333,
  820 + 0.400,
  821 + 0.584,
  822 + 0.333,
  823 + 0.333,
  824 + 0.333,
  825 + 0.611,
  826 + 0.556,
  827 + 0.278,
  828 + 0.333,
  829 + 0.333,
  830 + 0.365,
  831 + 0.556,
  832 + 0.834,
  833 + 0.834,
  834 + 0.834,
  835 + 0.611,
  836 + 0.722,
  837 + 0.722,
  838 + 0.722,
  839 + 0.722,
  840 + 0.722,
  841 + 0.722,
  842 + 1.000,
  843 + 0.722,
  844 + 0.667,
  845 + 0.667,
  846 + 0.667,
  847 + 0.667,
  848 + 0.278,
  849 + 0.278,
  850 + 0.278,
  851 + 0.278,
  852 + 0.722,
  853 + 0.722,
  854 + 0.778,
  855 + 0.778,
  856 + 0.778,
  857 + 0.778,
  858 + 0.778,
  859 + 0.584,
  860 + 0.778,
  861 + 0.722,
  862 + 0.722,
  863 + 0.722,
  864 + 0.722,
  865 + 0.667,
  866 + 0.667,
  867 + 0.611,
  868 + 0.556,
  869 + 0.556,
  870 + 0.556,
  871 + 0.556,
  872 + 0.556,
  873 + 0.556,
  874 + 0.889,
  875 + 0.556,
  876 + 0.556,
  877 + 0.556,
  878 + 0.556,
  879 + 0.556,
  880 + 0.278,
  881 + 0.278,
  882 + 0.278,
  883 + 0.278,
  884 + 0.611,
  885 + 0.611,
  886 + 0.611,
  887 + 0.611,
  888 + 0.611,
  889 + 0.611,
  890 + 0.611,
  891 + 0.584,
  892 + 0.611,
  893 + 0.611,
  894 + 0.611,
  895 + 0.611,
  896 + 0.611,
  897 + 0.556,
  898 + 0.611,
  899 + 0.556
  900 + ]);
  901 + }
  902 +
  903 + factory PdfFont.helveticaOblique(PdfDocument pdfDocument) {
  904 + return PdfType1Font._create(
  905 + pdfDocument, "Helvetica-Oblique", 0.931, -0.225, <double>[
  906 + 0.278,
  907 + 0.278,
  908 + 0.278,
  909 + 0.278,
  910 + 0.278,
  911 + 0.278,
  912 + 0.278,
  913 + 0.278,
  914 + 0.278,
  915 + 0.278,
  916 + 0.278,
  917 + 0.278,
  918 + 0.278,
  919 + 0.278,
  920 + 0.278,
  921 + 0.278,
  922 + 0.278,
  923 + 0.278,
  924 + 0.278,
  925 + 0.278,
  926 + 0.278,
  927 + 0.278,
  928 + 0.278,
  929 + 0.278,
  930 + 0.278,
  931 + 0.278,
  932 + 0.278,
  933 + 0.278,
  934 + 0.278,
  935 + 0.278,
  936 + 0.278,
  937 + 0.278,
  938 + 0.278,
  939 + 0.278,
  940 + 0.355,
  941 + 0.556,
  942 + 0.556,
  943 + 0.889,
  944 + 0.667,
  945 + 0.191,
  946 + 0.333,
  947 + 0.333,
  948 + 0.389,
  949 + 0.584,
  950 + 0.278,
  951 + 0.333,
  952 + 0.278,
  953 + 0.278,
  954 + 0.556,
  955 + 0.556,
  956 + 0.556,
  957 + 0.556,
  958 + 0.556,
  959 + 0.556,
  960 + 0.556,
  961 + 0.556,
  962 + 0.556,
  963 + 0.556,
  964 + 0.278,
  965 + 0.278,
  966 + 0.584,
  967 + 0.584,
  968 + 0.584,
  969 + 0.556,
  970 + 1.015,
  971 + 0.667,
  972 + 0.667,
  973 + 0.722,
  974 + 0.722,
  975 + 0.667,
  976 + 0.611,
  977 + 0.778,
  978 + 0.722,
  979 + 0.278,
  980 + 0.500,
  981 + 0.667,
  982 + 0.556,
  983 + 0.833,
  984 + 0.722,
  985 + 0.778,
  986 + 0.667,
  987 + 0.778,
  988 + 0.722,
  989 + 0.667,
  990 + 0.611,
  991 + 0.722,
  992 + 0.667,
  993 + 0.944,
  994 + 0.667,
  995 + 0.667,
  996 + 0.611,
  997 + 0.278,
  998 + 0.278,
  999 + 0.278,
  1000 + 0.469,
  1001 + 0.556,
  1002 + 0.333,
  1003 + 0.556,
  1004 + 0.556,
  1005 + 0.500,
  1006 + 0.556,
  1007 + 0.556,
  1008 + 0.278,
  1009 + 0.556,
  1010 + 0.556,
  1011 + 0.222,
  1012 + 0.222,
  1013 + 0.500,
  1014 + 0.222,
  1015 + 0.833,
  1016 + 0.556,
  1017 + 0.556,
  1018 + 0.556,
  1019 + 0.556,
  1020 + 0.333,
  1021 + 0.500,
  1022 + 0.278,
  1023 + 0.556,
  1024 + 0.500,
  1025 + 0.722,
  1026 + 0.500,
  1027 + 0.500,
  1028 + 0.500,
  1029 + 0.334,
  1030 + 0.260,
  1031 + 0.334,
  1032 + 0.584,
  1033 + 0.350,
  1034 + 0.556,
  1035 + 0.350,
  1036 + 0.222,
  1037 + 0.556,
  1038 + 0.333,
  1039 + 1.000,
  1040 + 0.556,
  1041 + 0.556,
  1042 + 0.333,
  1043 + 1.000,
  1044 + 0.667,
  1045 + 0.333,
  1046 + 1.000,
  1047 + 0.350,
  1048 + 0.611,
  1049 + 0.350,
  1050 + 0.350,
  1051 + 0.222,
  1052 + 0.222,
  1053 + 0.333,
  1054 + 0.333,
  1055 + 0.350,
  1056 + 0.556,
  1057 + 1.000,
  1058 + 0.333,
  1059 + 1.000,
  1060 + 0.500,
  1061 + 0.333,
  1062 + 0.944,
  1063 + 0.350,
  1064 + 0.500,
  1065 + 0.667,
  1066 + 0.278,
  1067 + 0.333,
  1068 + 0.556,
  1069 + 0.556,
  1070 + 0.556,
  1071 + 0.556,
  1072 + 0.260,
  1073 + 0.556,
  1074 + 0.333,
  1075 + 0.737,
  1076 + 0.370,
  1077 + 0.556,
  1078 + 0.584,
  1079 + 0.333,
  1080 + 0.737,
  1081 + 0.333,
  1082 + 0.400,
  1083 + 0.584,
  1084 + 0.333,
  1085 + 0.333,
  1086 + 0.333,
  1087 + 0.556,
  1088 + 0.537,
  1089 + 0.278,
  1090 + 0.333,
  1091 + 0.333,
  1092 + 0.365,
  1093 + 0.556,
  1094 + 0.834,
  1095 + 0.834,
  1096 + 0.834,
  1097 + 0.611,
  1098 + 0.667,
  1099 + 0.667,
  1100 + 0.667,
  1101 + 0.667,
  1102 + 0.667,
  1103 + 0.667,
  1104 + 1.000,
  1105 + 0.722,
  1106 + 0.667,
  1107 + 0.667,
  1108 + 0.667,
  1109 + 0.667,
  1110 + 0.278,
  1111 + 0.278,
  1112 + 0.278,
  1113 + 0.278,
  1114 + 0.722,
  1115 + 0.722,
  1116 + 0.778,
  1117 + 0.778,
  1118 + 0.778,
  1119 + 0.778,
  1120 + 0.778,
  1121 + 0.584,
  1122 + 0.778,
  1123 + 0.722,
  1124 + 0.722,
  1125 + 0.722,
  1126 + 0.722,
  1127 + 0.667,
  1128 + 0.667,
  1129 + 0.611,
  1130 + 0.556,
  1131 + 0.556,
  1132 + 0.556,
  1133 + 0.556,
  1134 + 0.556,
  1135 + 0.556,
  1136 + 0.889,
  1137 + 0.500,
  1138 + 0.556,
  1139 + 0.556,
  1140 + 0.556,
  1141 + 0.556,
  1142 + 0.278,
  1143 + 0.278,
  1144 + 0.278,
  1145 + 0.278,
  1146 + 0.556,
  1147 + 0.556,
  1148 + 0.556,
  1149 + 0.556,
  1150 + 0.556,
  1151 + 0.556,
  1152 + 0.556,
  1153 + 0.584,
  1154 + 0.611,
  1155 + 0.556,
  1156 + 0.556,
  1157 + 0.556,
  1158 + 0.556,
  1159 + 0.500,
  1160 + 0.556,
  1161 + 0.500
  1162 + ]);
  1163 + }
  1164 +
  1165 + factory PdfFont.times(PdfDocument pdfDocument) {
  1166 + return PdfType1Font._create(
  1167 + pdfDocument, "Times-Roman", 0.898, -0.218, <double>[
  1168 + 0.250,
  1169 + 0.250,
  1170 + 0.250,
  1171 + 0.250,
  1172 + 0.250,
  1173 + 0.250,
  1174 + 0.250,
  1175 + 0.250,
  1176 + 0.250,
  1177 + 0.250,
  1178 + 0.250,
  1179 + 0.250,
  1180 + 0.250,
  1181 + 0.250,
  1182 + 0.250,
  1183 + 0.250,
  1184 + 0.250,
  1185 + 0.250,
  1186 + 0.250,
  1187 + 0.250,
  1188 + 0.250,
  1189 + 0.250,
  1190 + 0.250,
  1191 + 0.250,
  1192 + 0.250,
  1193 + 0.250,
  1194 + 0.250,
  1195 + 0.250,
  1196 + 0.250,
  1197 + 0.250,
  1198 + 0.250,
  1199 + 0.250,
  1200 + 0.250,
  1201 + 0.333,
  1202 + 0.408,
  1203 + 0.500,
  1204 + 0.500,
  1205 + 0.833,
  1206 + 0.778,
  1207 + 0.180,
  1208 + 0.333,
  1209 + 0.333,
  1210 + 0.500,
  1211 + 0.564,
  1212 + 0.250,
  1213 + 0.333,
  1214 + 0.250,
  1215 + 0.278,
  1216 + 0.500,
  1217 + 0.500,
  1218 + 0.500,
  1219 + 0.500,
  1220 + 0.500,
  1221 + 0.500,
  1222 + 0.500,
  1223 + 0.500,
  1224 + 0.500,
  1225 + 0.500,
  1226 + 0.278,
  1227 + 0.278,
  1228 + 0.564,
  1229 + 0.564,
  1230 + 0.564,
  1231 + 0.444,
  1232 + 0.921,
  1233 + 0.722,
  1234 + 0.667,
  1235 + 0.667,
  1236 + 0.722,
  1237 + 0.611,
  1238 + 0.556,
  1239 + 0.722,
  1240 + 0.722,
  1241 + 0.333,
  1242 + 0.389,
  1243 + 0.722,
  1244 + 0.611,
  1245 + 0.889,
  1246 + 0.722,
  1247 + 0.722,
  1248 + 0.556,
  1249 + 0.722,
  1250 + 0.667,
  1251 + 0.556,
  1252 + 0.611,
  1253 + 0.722,
  1254 + 0.722,
  1255 + 0.944,
  1256 + 0.722,
  1257 + 0.722,
  1258 + 0.611,
  1259 + 0.333,
  1260 + 0.278,
  1261 + 0.333,
  1262 + 0.469,
  1263 + 0.500,
  1264 + 0.333,
  1265 + 0.444,
  1266 + 0.500,
  1267 + 0.444,
  1268 + 0.500,
  1269 + 0.444,
  1270 + 0.333,
  1271 + 0.500,
  1272 + 0.500,
  1273 + 0.278,
  1274 + 0.278,
  1275 + 0.500,
  1276 + 0.278,
  1277 + 0.778,
  1278 + 0.500,
  1279 + 0.500,
  1280 + 0.500,
  1281 + 0.500,
  1282 + 0.333,
  1283 + 0.389,
  1284 + 0.278,
  1285 + 0.500,
  1286 + 0.500,
  1287 + 0.722,
  1288 + 0.500,
  1289 + 0.500,
  1290 + 0.444,
  1291 + 0.480,
  1292 + 0.200,
  1293 + 0.480,
  1294 + 0.541,
  1295 + 0.350,
  1296 + 0.500,
  1297 + 0.350,
  1298 + 0.333,
  1299 + 0.500,
  1300 + 0.444,
  1301 + 1.000,
  1302 + 0.500,
  1303 + 0.500,
  1304 + 0.333,
  1305 + 1.000,
  1306 + 0.556,
  1307 + 0.333,
  1308 + 0.889,
  1309 + 0.350,
  1310 + 0.611,
  1311 + 0.350,
  1312 + 0.350,
  1313 + 0.333,
  1314 + 0.333,
  1315 + 0.444,
  1316 + 0.444,
  1317 + 0.350,
  1318 + 0.500,
  1319 + 1.000,
  1320 + 0.333,
  1321 + 0.980,
  1322 + 0.389,
  1323 + 0.333,
  1324 + 0.722,
  1325 + 0.350,
  1326 + 0.444,
  1327 + 0.722,
  1328 + 0.250,
  1329 + 0.333,
  1330 + 0.500,
  1331 + 0.500,
  1332 + 0.500,
  1333 + 0.500,
  1334 + 0.200,
  1335 + 0.500,
  1336 + 0.333,
  1337 + 0.760,
  1338 + 0.276,
  1339 + 0.500,
  1340 + 0.564,
  1341 + 0.333,
  1342 + 0.760,
  1343 + 0.333,
  1344 + 0.400,
  1345 + 0.564,
  1346 + 0.300,
  1347 + 0.300,
  1348 + 0.333,
  1349 + 0.500,
  1350 + 0.453,
  1351 + 0.250,
  1352 + 0.333,
  1353 + 0.300,
  1354 + 0.310,
  1355 + 0.500,
  1356 + 0.750,
  1357 + 0.750,
  1358 + 0.750,
  1359 + 0.444,
  1360 + 0.722,
  1361 + 0.722,
  1362 + 0.722,
  1363 + 0.722,
  1364 + 0.722,
  1365 + 0.722,
  1366 + 0.889,
  1367 + 0.667,
  1368 + 0.611,
  1369 + 0.611,
  1370 + 0.611,
  1371 + 0.611,
  1372 + 0.333,
  1373 + 0.333,
  1374 + 0.333,
  1375 + 0.333,
  1376 + 0.722,
  1377 + 0.722,
  1378 + 0.722,
  1379 + 0.722,
  1380 + 0.722,
  1381 + 0.722,
  1382 + 0.722,
  1383 + 0.564,
  1384 + 0.722,
  1385 + 0.722,
  1386 + 0.722,
  1387 + 0.722,
  1388 + 0.722,
  1389 + 0.722,
  1390 + 0.556,
  1391 + 0.500,
  1392 + 0.444,
  1393 + 0.444,
  1394 + 0.444,
  1395 + 0.444,
  1396 + 0.444,
  1397 + 0.444,
  1398 + 0.667,
  1399 + 0.444,
  1400 + 0.444,
  1401 + 0.444,
  1402 + 0.444,
  1403 + 0.444,
  1404 + 0.278,
  1405 + 0.278,
  1406 + 0.278,
  1407 + 0.278,
  1408 + 0.500,
  1409 + 0.500,
  1410 + 0.500,
  1411 + 0.500,
  1412 + 0.500,
  1413 + 0.500,
  1414 + 0.500,
  1415 + 0.564,
  1416 + 0.500,
  1417 + 0.500,
  1418 + 0.500,
  1419 + 0.500,
  1420 + 0.500,
  1421 + 0.500,
  1422 + 0.500,
  1423 + 0.500
  1424 + ]);
  1425 + }
  1426 +
  1427 + factory PdfFont.timesBold(PdfDocument pdfDocument) {
  1428 + return PdfType1Font._create(
  1429 + pdfDocument, "Times-Bold", 0.935, -0.218, <double>[
  1430 + 0.250,
  1431 + 0.250,
  1432 + 0.250,
  1433 + 0.250,
  1434 + 0.250,
  1435 + 0.250,
  1436 + 0.250,
  1437 + 0.250,
  1438 + 0.250,
  1439 + 0.250,
  1440 + 0.250,
  1441 + 0.250,
  1442 + 0.250,
  1443 + 0.250,
  1444 + 0.250,
  1445 + 0.250,
  1446 + 0.250,
  1447 + 0.250,
  1448 + 0.250,
  1449 + 0.250,
  1450 + 0.250,
  1451 + 0.250,
  1452 + 0.250,
  1453 + 0.250,
  1454 + 0.250,
  1455 + 0.250,
  1456 + 0.250,
  1457 + 0.250,
  1458 + 0.250,
  1459 + 0.250,
  1460 + 0.250,
  1461 + 0.250,
  1462 + 0.250,
  1463 + 0.333,
  1464 + 0.555,
  1465 + 0.500,
  1466 + 0.500,
  1467 + 1.000,
  1468 + 0.833,
  1469 + 0.278,
  1470 + 0.333,
  1471 + 0.333,
  1472 + 0.500,
  1473 + 0.570,
  1474 + 0.250,
  1475 + 0.333,
  1476 + 0.250,
  1477 + 0.278,
  1478 + 0.500,
  1479 + 0.500,
  1480 + 0.500,
  1481 + 0.500,
  1482 + 0.500,
  1483 + 0.500,
  1484 + 0.500,
  1485 + 0.500,
  1486 + 0.500,
  1487 + 0.500,
  1488 + 0.333,
  1489 + 0.333,
  1490 + 0.570,
  1491 + 0.570,
  1492 + 0.570,
  1493 + 0.500,
  1494 + 0.930,
  1495 + 0.722,
  1496 + 0.667,
  1497 + 0.722,
  1498 + 0.722,
  1499 + 0.667,
  1500 + 0.611,
  1501 + 0.778,
  1502 + 0.778,
  1503 + 0.389,
  1504 + 0.500,
  1505 + 0.778,
  1506 + 0.667,
  1507 + 0.944,
  1508 + 0.722,
  1509 + 0.778,
  1510 + 0.611,
  1511 + 0.778,
  1512 + 0.722,
  1513 + 0.556,
  1514 + 0.667,
  1515 + 0.722,
  1516 + 0.722,
  1517 + 1.000,
  1518 + 0.722,
  1519 + 0.722,
  1520 + 0.667,
  1521 + 0.333,
  1522 + 0.278,
  1523 + 0.333,
  1524 + 0.581,
  1525 + 0.500,
  1526 + 0.333,
  1527 + 0.500,
  1528 + 0.556,
  1529 + 0.444,
  1530 + 0.556,
  1531 + 0.444,
  1532 + 0.333,
  1533 + 0.500,
  1534 + 0.556,
  1535 + 0.278,
  1536 + 0.333,
  1537 + 0.556,
  1538 + 0.278,
  1539 + 0.833,
  1540 + 0.556,
  1541 + 0.500,
  1542 + 0.556,
  1543 + 0.556,
  1544 + 0.444,
  1545 + 0.389,
  1546 + 0.333,
  1547 + 0.556,
  1548 + 0.500,
  1549 + 0.722,
  1550 + 0.500,
  1551 + 0.500,
  1552 + 0.444,
  1553 + 0.394,
  1554 + 0.220,
  1555 + 0.394,
  1556 + 0.520,
  1557 + 0.350,
  1558 + 0.500,
  1559 + 0.350,
  1560 + 0.333,
  1561 + 0.500,
  1562 + 0.500,
  1563 + 1.000,
  1564 + 0.500,
  1565 + 0.500,
  1566 + 0.333,
  1567 + 1.000,
  1568 + 0.556,
  1569 + 0.333,
  1570 + 1.000,
  1571 + 0.350,
  1572 + 0.667,
  1573 + 0.350,
  1574 + 0.350,
  1575 + 0.333,
  1576 + 0.333,
  1577 + 0.500,
  1578 + 0.500,
  1579 + 0.350,
  1580 + 0.500,
  1581 + 1.000,
  1582 + 0.333,
  1583 + 1.000,
  1584 + 0.389,
  1585 + 0.333,
  1586 + 0.722,
  1587 + 0.350,
  1588 + 0.444,
  1589 + 0.722,
  1590 + 0.250,
  1591 + 0.333,
  1592 + 0.500,
  1593 + 0.500,
  1594 + 0.500,
  1595 + 0.500,
  1596 + 0.220,
  1597 + 0.500,
  1598 + 0.333,
  1599 + 0.747,
  1600 + 0.300,
  1601 + 0.500,
  1602 + 0.570,
  1603 + 0.333,
  1604 + 0.747,
  1605 + 0.333,
  1606 + 0.400,
  1607 + 0.570,
  1608 + 0.300,
  1609 + 0.300,
  1610 + 0.333,
  1611 + 0.556,
  1612 + 0.540,
  1613 + 0.250,
  1614 + 0.333,
  1615 + 0.300,
  1616 + 0.330,
  1617 + 0.500,
  1618 + 0.750,
  1619 + 0.750,
  1620 + 0.750,
  1621 + 0.500,
  1622 + 0.722,
  1623 + 0.722,
  1624 + 0.722,
  1625 + 0.722,
  1626 + 0.722,
  1627 + 0.722,
  1628 + 1.000,
  1629 + 0.722,
  1630 + 0.667,
  1631 + 0.667,
  1632 + 0.667,
  1633 + 0.667,
  1634 + 0.389,
  1635 + 0.389,
  1636 + 0.389,
  1637 + 0.389,
  1638 + 0.722,
  1639 + 0.722,
  1640 + 0.778,
  1641 + 0.778,
  1642 + 0.778,
  1643 + 0.778,
  1644 + 0.778,
  1645 + 0.570,
  1646 + 0.778,
  1647 + 0.722,
  1648 + 0.722,
  1649 + 0.722,
  1650 + 0.722,
  1651 + 0.722,
  1652 + 0.611,
  1653 + 0.556,
  1654 + 0.500,
  1655 + 0.500,
  1656 + 0.500,
  1657 + 0.500,
  1658 + 0.500,
  1659 + 0.500,
  1660 + 0.722,
  1661 + 0.444,
  1662 + 0.444,
  1663 + 0.444,
  1664 + 0.444,
  1665 + 0.444,
  1666 + 0.278,
  1667 + 0.278,
  1668 + 0.278,
  1669 + 0.278,
  1670 + 0.500,
  1671 + 0.556,
  1672 + 0.500,
  1673 + 0.500,
  1674 + 0.500,
  1675 + 0.500,
  1676 + 0.500,
  1677 + 0.570,
  1678 + 0.500,
  1679 + 0.556,
  1680 + 0.556,
  1681 + 0.556,
  1682 + 0.556,
  1683 + 0.500,
  1684 + 0.556,
  1685 + 0.500
  1686 + ]);
  1687 + }
  1688 +
  1689 + factory PdfFont.timesBoldItalic(PdfDocument pdfDocument) {
  1690 + return PdfType1Font._create(
  1691 + pdfDocument, "Times-BoldItalic", 0.921, -0.218, <double>[
  1692 + 0.250,
  1693 + 0.250,
  1694 + 0.250,
  1695 + 0.250,
  1696 + 0.250,
  1697 + 0.250,
  1698 + 0.250,
  1699 + 0.250,
  1700 + 0.250,
  1701 + 0.250,
  1702 + 0.250,
  1703 + 0.250,
  1704 + 0.250,
  1705 + 0.250,
  1706 + 0.250,
  1707 + 0.250,
  1708 + 0.250,
  1709 + 0.250,
  1710 + 0.250,
  1711 + 0.250,
  1712 + 0.250,
  1713 + 0.250,
  1714 + 0.250,
  1715 + 0.250,
  1716 + 0.250,
  1717 + 0.250,
  1718 + 0.250,
  1719 + 0.250,
  1720 + 0.250,
  1721 + 0.250,
  1722 + 0.250,
  1723 + 0.250,
  1724 + 0.250,
  1725 + 0.389,
  1726 + 0.555,
  1727 + 0.500,
  1728 + 0.500,
  1729 + 0.833,
  1730 + 0.778,
  1731 + 0.278,
  1732 + 0.333,
  1733 + 0.333,
  1734 + 0.500,
  1735 + 0.570,
  1736 + 0.250,
  1737 + 0.333,
  1738 + 0.250,
  1739 + 0.278,
  1740 + 0.500,
  1741 + 0.500,
  1742 + 0.500,
  1743 + 0.500,
  1744 + 0.500,
  1745 + 0.500,
  1746 + 0.500,
  1747 + 0.500,
  1748 + 0.500,
  1749 + 0.500,
  1750 + 0.333,
  1751 + 0.333,
  1752 + 0.570,
  1753 + 0.570,
  1754 + 0.570,
  1755 + 0.500,
  1756 + 0.832,
  1757 + 0.667,
  1758 + 0.667,
  1759 + 0.667,
  1760 + 0.722,
  1761 + 0.667,
  1762 + 0.667,
  1763 + 0.722,
  1764 + 0.778,
  1765 + 0.389,
  1766 + 0.500,
  1767 + 0.667,
  1768 + 0.611,
  1769 + 0.889,
  1770 + 0.722,
  1771 + 0.722,
  1772 + 0.611,
  1773 + 0.722,
  1774 + 0.667,
  1775 + 0.556,
  1776 + 0.611,
  1777 + 0.722,
  1778 + 0.667,
  1779 + 0.889,
  1780 + 0.667,
  1781 + 0.611,
  1782 + 0.611,
  1783 + 0.333,
  1784 + 0.278,
  1785 + 0.333,
  1786 + 0.570,
  1787 + 0.500,
  1788 + 0.333,
  1789 + 0.500,
  1790 + 0.500,
  1791 + 0.444,
  1792 + 0.500,
  1793 + 0.444,
  1794 + 0.333,
  1795 + 0.500,
  1796 + 0.556,
  1797 + 0.278,
  1798 + 0.278,
  1799 + 0.500,
  1800 + 0.278,
  1801 + 0.778,
  1802 + 0.556,
  1803 + 0.500,
  1804 + 0.500,
  1805 + 0.500,
  1806 + 0.389,
  1807 + 0.389,
  1808 + 0.278,
  1809 + 0.556,
  1810 + 0.444,
  1811 + 0.667,
  1812 + 0.500,
  1813 + 0.444,
  1814 + 0.389,
  1815 + 0.348,
  1816 + 0.220,
  1817 + 0.348,
  1818 + 0.570,
  1819 + 0.350,
  1820 + 0.500,
  1821 + 0.350,
  1822 + 0.333,
  1823 + 0.500,
  1824 + 0.500,
  1825 + 1.000,
  1826 + 0.500,
  1827 + 0.500,
  1828 + 0.333,
  1829 + 1.000,
  1830 + 0.556,
  1831 + 0.333,
  1832 + 0.944,
  1833 + 0.350,
  1834 + 0.611,
  1835 + 0.350,
  1836 + 0.350,
  1837 + 0.333,
  1838 + 0.333,
  1839 + 0.500,
  1840 + 0.500,
  1841 + 0.350,
  1842 + 0.500,
  1843 + 1.000,
  1844 + 0.333,
  1845 + 1.000,
  1846 + 0.389,
  1847 + 0.333,
  1848 + 0.722,
  1849 + 0.350,
  1850 + 0.389,
  1851 + 0.611,
  1852 + 0.250,
  1853 + 0.389,
  1854 + 0.500,
  1855 + 0.500,
  1856 + 0.500,
  1857 + 0.500,
  1858 + 0.220,
  1859 + 0.500,
  1860 + 0.333,
  1861 + 0.747,
  1862 + 0.266,
  1863 + 0.500,
  1864 + 0.606,
  1865 + 0.333,
  1866 + 0.747,
  1867 + 0.333,
  1868 + 0.400,
  1869 + 0.570,
  1870 + 0.300,
  1871 + 0.300,
  1872 + 0.333,
  1873 + 0.576,
  1874 + 0.500,
  1875 + 0.250,
  1876 + 0.333,
  1877 + 0.300,
  1878 + 0.300,
  1879 + 0.500,
  1880 + 0.750,
  1881 + 0.750,
  1882 + 0.750,
  1883 + 0.500,
  1884 + 0.667,
  1885 + 0.667,
  1886 + 0.667,
  1887 + 0.667,
  1888 + 0.667,
  1889 + 0.667,
  1890 + 0.944,
  1891 + 0.667,
  1892 + 0.667,
  1893 + 0.667,
  1894 + 0.667,
  1895 + 0.667,
  1896 + 0.389,
  1897 + 0.389,
  1898 + 0.389,
  1899 + 0.389,
  1900 + 0.722,
  1901 + 0.722,
  1902 + 0.722,
  1903 + 0.722,
  1904 + 0.722,
  1905 + 0.722,
  1906 + 0.722,
  1907 + 0.570,
  1908 + 0.722,
  1909 + 0.722,
  1910 + 0.722,
  1911 + 0.722,
  1912 + 0.722,
  1913 + 0.611,
  1914 + 0.611,
  1915 + 0.500,
  1916 + 0.500,
  1917 + 0.500,
  1918 + 0.500,
  1919 + 0.500,
  1920 + 0.500,
  1921 + 0.500,
  1922 + 0.722,
  1923 + 0.444,
  1924 + 0.444,
  1925 + 0.444,
  1926 + 0.444,
  1927 + 0.444,
  1928 + 0.278,
  1929 + 0.278,
  1930 + 0.278,
  1931 + 0.278,
  1932 + 0.500,
  1933 + 0.556,
  1934 + 0.500,
  1935 + 0.500,
  1936 + 0.500,
  1937 + 0.500,
  1938 + 0.500,
  1939 + 0.570,
  1940 + 0.500,
  1941 + 0.556,
  1942 + 0.556,
  1943 + 0.556,
  1944 + 0.556,
  1945 + 0.444,
  1946 + 0.500,
  1947 + 0.444
  1948 + ]);
  1949 + }
  1950 +
  1951 + factory PdfFont.timesItalic(PdfDocument pdfDocument) {
  1952 + return PdfType1Font._create(
  1953 + pdfDocument, "Times-Italic", 0.883, -0.217, <double>[
  1954 + 0.250,
  1955 + 0.250,
  1956 + 0.250,
  1957 + 0.250,
  1958 + 0.250,
  1959 + 0.250,
  1960 + 0.250,
  1961 + 0.250,
  1962 + 0.250,
  1963 + 0.250,
  1964 + 0.250,
  1965 + 0.250,
  1966 + 0.250,
  1967 + 0.250,
  1968 + 0.250,
  1969 + 0.250,
  1970 + 0.250,
  1971 + 0.250,
  1972 + 0.250,
  1973 + 0.250,
  1974 + 0.250,
  1975 + 0.250,
  1976 + 0.250,
  1977 + 0.250,
  1978 + 0.250,
  1979 + 0.250,
  1980 + 0.250,
  1981 + 0.250,
  1982 + 0.250,
  1983 + 0.250,
  1984 + 0.250,
  1985 + 0.250,
  1986 + 0.250,
  1987 + 0.333,
  1988 + 0.420,
  1989 + 0.500,
  1990 + 0.500,
  1991 + 0.833,
  1992 + 0.778,
  1993 + 0.214,
  1994 + 0.333,
  1995 + 0.333,
  1996 + 0.500,
  1997 + 0.675,
  1998 + 0.250,
  1999 + 0.333,
  2000 + 0.250,
  2001 + 0.278,
  2002 + 0.500,
  2003 + 0.500,
  2004 + 0.500,
  2005 + 0.500,
  2006 + 0.500,
  2007 + 0.500,
  2008 + 0.500,
  2009 + 0.500,
  2010 + 0.500,
  2011 + 0.500,
  2012 + 0.333,
  2013 + 0.333,
  2014 + 0.675,
  2015 + 0.675,
  2016 + 0.675,
  2017 + 0.500,
  2018 + 0.920,
  2019 + 0.611,
  2020 + 0.611,
  2021 + 0.667,
  2022 + 0.722,
  2023 + 0.611,
  2024 + 0.611,
  2025 + 0.722,
  2026 + 0.722,
  2027 + 0.333,
  2028 + 0.444,
  2029 + 0.667,
  2030 + 0.556,
  2031 + 0.833,
  2032 + 0.667,
  2033 + 0.722,
  2034 + 0.611,
  2035 + 0.722,
  2036 + 0.611,
  2037 + 0.500,
  2038 + 0.556,
  2039 + 0.722,
  2040 + 0.611,
  2041 + 0.833,
  2042 + 0.611,
  2043 + 0.556,
  2044 + 0.556,
  2045 + 0.389,
  2046 + 0.278,
  2047 + 0.389,
  2048 + 0.422,
  2049 + 0.500,
  2050 + 0.333,
  2051 + 0.500,
  2052 + 0.500,
  2053 + 0.444,
  2054 + 0.500,
  2055 + 0.444,
  2056 + 0.278,
  2057 + 0.500,
  2058 + 0.500,
  2059 + 0.278,
  2060 + 0.278,
  2061 + 0.444,
  2062 + 0.278,
  2063 + 0.722,
  2064 + 0.500,
  2065 + 0.500,
  2066 + 0.500,
  2067 + 0.500,
  2068 + 0.389,
  2069 + 0.389,
  2070 + 0.278,
  2071 + 0.500,
  2072 + 0.444,
  2073 + 0.667,
  2074 + 0.444,
  2075 + 0.444,
  2076 + 0.389,
  2077 + 0.400,
  2078 + 0.275,
  2079 + 0.400,
  2080 + 0.541,
  2081 + 0.350,
  2082 + 0.500,
  2083 + 0.350,
  2084 + 0.333,
  2085 + 0.500,
  2086 + 0.556,
  2087 + 0.889,
  2088 + 0.500,
  2089 + 0.500,
  2090 + 0.333,
  2091 + 1.000,
  2092 + 0.500,
  2093 + 0.333,
  2094 + 0.944,
  2095 + 0.350,
  2096 + 0.556,
  2097 + 0.350,
  2098 + 0.350,
  2099 + 0.333,
  2100 + 0.333,
  2101 + 0.556,
  2102 + 0.556,
  2103 + 0.350,
  2104 + 0.500,
  2105 + 0.889,
  2106 + 0.333,
  2107 + 0.980,
  2108 + 0.389,
  2109 + 0.333,
  2110 + 0.667,
  2111 + 0.350,
  2112 + 0.389,
  2113 + 0.556,
  2114 + 0.250,
  2115 + 0.389,
  2116 + 0.500,
  2117 + 0.500,
  2118 + 0.500,
  2119 + 0.500,
  2120 + 0.275,
  2121 + 0.500,
  2122 + 0.333,
  2123 + 0.760,
  2124 + 0.276,
  2125 + 0.500,
  2126 + 0.675,
  2127 + 0.333,
  2128 + 0.760,
  2129 + 0.333,
  2130 + 0.400,
  2131 + 0.675,
  2132 + 0.300,
  2133 + 0.300,
  2134 + 0.333,
  2135 + 0.500,
  2136 + 0.523,
  2137 + 0.250,
  2138 + 0.333,
  2139 + 0.300,
  2140 + 0.310,
  2141 + 0.500,
  2142 + 0.750,
  2143 + 0.750,
  2144 + 0.750,
  2145 + 0.500,
  2146 + 0.611,
  2147 + 0.611,
  2148 + 0.611,
  2149 + 0.611,
  2150 + 0.611,
  2151 + 0.611,
  2152 + 0.889,
  2153 + 0.667,
  2154 + 0.611,
  2155 + 0.611,
  2156 + 0.611,
  2157 + 0.611,
  2158 + 0.333,
  2159 + 0.333,
  2160 + 0.333,
  2161 + 0.333,
  2162 + 0.722,
  2163 + 0.667,
  2164 + 0.722,
  2165 + 0.722,
  2166 + 0.722,
  2167 + 0.722,
  2168 + 0.722,
  2169 + 0.675,
  2170 + 0.722,
  2171 + 0.722,
  2172 + 0.722,
  2173 + 0.722,
  2174 + 0.722,
  2175 + 0.556,
  2176 + 0.611,
  2177 + 0.500,
  2178 + 0.500,
  2179 + 0.500,
  2180 + 0.500,
  2181 + 0.500,
  2182 + 0.500,
  2183 + 0.500,
  2184 + 0.667,
  2185 + 0.444,
  2186 + 0.444,
  2187 + 0.444,
  2188 + 0.444,
  2189 + 0.444,
  2190 + 0.278,
  2191 + 0.278,
  2192 + 0.278,
  2193 + 0.278,
  2194 + 0.500,
  2195 + 0.500,
  2196 + 0.500,
  2197 + 0.500,
  2198 + 0.500,
  2199 + 0.500,
  2200 + 0.500,
  2201 + 0.675,
  2202 + 0.500,
  2203 + 0.500,
  2204 + 0.500,
  2205 + 0.500,
  2206 + 0.500,
  2207 + 0.444,
  2208 + 0.500,
  2209 + 0.444
  2210 + ]);
  2211 + }
  2212 +
  2213 + factory PdfFont.symbol(PdfDocument pdfDocument) {
  2214 + return PdfType1Font._create(pdfDocument, "Symbol", 1.010, -0.293, <double>[
  2215 + 0.587,
  2216 + 0.587,
  2217 + 0.587,
  2218 + 0.587,
  2219 + 0.587,
  2220 + 0.587,
  2221 + 0.587,
  2222 + 0.587,
  2223 + 0.587,
  2224 + 0.587,
  2225 + 0.587,
  2226 + 0.587,
  2227 + 0.587,
  2228 + 0.587,
  2229 + 0.587,
  2230 + 0.587,
  2231 + 0.587,
  2232 + 0.587,
  2233 + 0.587,
  2234 + 0.587,
  2235 + 0.587,
  2236 + 0.587,
  2237 + 0.587,
  2238 + 0.587,
  2239 + 0.587,
  2240 + 0.587,
  2241 + 0.587,
  2242 + 0.587,
  2243 + 0.587,
  2244 + 0.587,
  2245 + 0.587,
  2246 + 0.587,
  2247 + 0.250,
  2248 + 0.333,
  2249 + 0.713,
  2250 + 0.500,
  2251 + 0.549,
  2252 + 0.833,
  2253 + 0.778,
  2254 + 0.439,
  2255 + 0.333,
  2256 + 0.333,
  2257 + 0.500,
  2258 + 0.549,
  2259 + 0.250,
  2260 + 0.549,
  2261 + 0.250,
  2262 + 0.278,
  2263 + 0.500,
  2264 + 0.500,
  2265 + 0.500,
  2266 + 0.500,
  2267 + 0.500,
  2268 + 0.500,
  2269 + 0.500,
  2270 + 0.500,
  2271 + 0.500,
  2272 + 0.500,
  2273 + 0.278,
  2274 + 0.278,
  2275 + 0.549,
  2276 + 0.549,
  2277 + 0.549,
  2278 + 0.444,
  2279 + 0.549,
  2280 + 0.722,
  2281 + 0.667,
  2282 + 0.722,
  2283 + 0.612,
  2284 + 0.611,
  2285 + 0.763,
  2286 + 0.603,
  2287 + 0.722,
  2288 + 0.333,
  2289 + 0.631,
  2290 + 0.722,
  2291 + 0.686,
  2292 + 0.889,
  2293 + 0.722,
  2294 + 0.722,
  2295 + 0.768,
  2296 + 0.741,
  2297 + 0.556,
  2298 + 0.592,
  2299 + 0.611,
  2300 + 0.690,
  2301 + 0.439,
  2302 + 0.768,
  2303 + 0.645,
  2304 + 0.795,
  2305 + 0.611,
  2306 + 0.333,
  2307 + 0.863,
  2308 + 0.333,
  2309 + 0.658,
  2310 + 0.500,
  2311 + 0.500,
  2312 + 0.631,
  2313 + 0.549,
  2314 + 0.549,
  2315 + 0.494,
  2316 + 0.439,
  2317 + 0.521,
  2318 + 0.411,
  2319 + 0.603,
  2320 + 0.329,
  2321 + 0.603,
  2322 + 0.549,
  2323 + 0.549,
  2324 + 0.576,
  2325 + 0.521,
  2326 + 0.549,
  2327 + 0.549,
  2328 + 0.521,
  2329 + 0.549,
  2330 + 0.603,
  2331 + 0.439,
  2332 + 0.576,
  2333 + 0.713,
  2334 + 0.686,
  2335 + 0.493,
  2336 + 0.686,
  2337 + 0.494,
  2338 + 0.480,
  2339 + 0.200,
  2340 + 0.480,
  2341 + 0.549,
  2342 + 0.587,
  2343 + 0.587,
  2344 + 0.587,
  2345 + 0.587,
  2346 + 0.587,
  2347 + 0.587,
  2348 + 0.587,
  2349 + 0.587,
  2350 + 0.587,
  2351 + 0.587,
  2352 + 0.587,
  2353 + 0.587,
  2354 + 0.587,
  2355 + 0.587,
  2356 + 0.587,
  2357 + 0.587,
  2358 + 0.587,
  2359 + 0.587,
  2360 + 0.587,
  2361 + 0.587,
  2362 + 0.587,
  2363 + 0.587,
  2364 + 0.587,
  2365 + 0.587,
  2366 + 0.587,
  2367 + 0.587,
  2368 + 0.587,
  2369 + 0.587,
  2370 + 0.587,
  2371 + 0.587,
  2372 + 0.587,
  2373 + 0.587,
  2374 + 0.587,
  2375 + 0.750,
  2376 + 0.620,
  2377 + 0.247,
  2378 + 0.549,
  2379 + 0.167,
  2380 + 0.713,
  2381 + 0.500,
  2382 + 0.753,
  2383 + 0.753,
  2384 + 0.753,
  2385 + 0.753,
  2386 + 1.042,
  2387 + 0.987,
  2388 + 0.603,
  2389 + 0.987,
  2390 + 0.603,
  2391 + 0.400,
  2392 + 0.549,
  2393 + 0.411,
  2394 + 0.549,
  2395 + 0.549,
  2396 + 0.713,
  2397 + 0.494,
  2398 + 0.460,
  2399 + 0.549,
  2400 + 0.549,
  2401 + 0.549,
  2402 + 0.549,
  2403 + 1.000,
  2404 + 0.603,
  2405 + 1.000,
  2406 + 0.658,
  2407 + 0.823,
  2408 + 0.686,
  2409 + 0.795,
  2410 + 0.987,
  2411 + 0.768,
  2412 + 0.768,
  2413 + 0.823,
  2414 + 0.768,
  2415 + 0.768,
  2416 + 0.713,
  2417 + 0.713,
  2418 + 0.713,
  2419 + 0.713,
  2420 + 0.713,
  2421 + 0.713,
  2422 + 0.713,
  2423 + 0.768,
  2424 + 0.713,
  2425 + 0.790,
  2426 + 0.790,
  2427 + 0.890,
  2428 + 0.823,
  2429 + 0.549,
  2430 + 0.250,
  2431 + 0.713,
  2432 + 0.603,
  2433 + 0.603,
  2434 + 1.042,
  2435 + 0.987,
  2436 + 0.603,
  2437 + 0.987,
  2438 + 0.603,
  2439 + 0.494,
  2440 + 0.329,
  2441 + 0.790,
  2442 + 0.790,
  2443 + 0.786,
  2444 + 0.713,
  2445 + 0.384,
  2446 + 0.384,
  2447 + 0.384,
  2448 + 0.384,
  2449 + 0.384,
  2450 + 0.384,
  2451 + 0.494,
  2452 + 0.494,
  2453 + 0.494,
  2454 + 0.494,
  2455 + 0.587,
  2456 + 0.329,
  2457 + 0.274,
  2458 + 0.686,
  2459 + 0.686,
  2460 + 0.686,
  2461 + 0.384,
  2462 + 0.384,
  2463 + 0.384,
  2464 + 0.384,
  2465 + 0.384,
  2466 + 0.384,
  2467 + 0.494,
  2468 + 0.494,
  2469 + 0.494,
  2470 + 0.587
  2471 + ]);
  2472 + }
  2473 +
  2474 + factory PdfFont.zapfDingbats(PdfDocument pdfDocument) {
  2475 + return PdfType1Font._create(
  2476 + pdfDocument, "ZapfDingbats", 0.820, -0.143, <double>[
  2477 + 0.746,
  2478 + 0.746,
  2479 + 0.746,
  2480 + 0.746,
  2481 + 0.746,
  2482 + 0.746,
  2483 + 0.746,
  2484 + 0.746,
  2485 + 0.746,
  2486 + 0.746,
  2487 + 0.746,
  2488 + 0.746,
  2489 + 0.746,
  2490 + 0.746,
  2491 + 0.746,
  2492 + 0.746,
  2493 + 0.746,
  2494 + 0.746,
  2495 + 0.746,
  2496 + 0.746,
  2497 + 0.746,
  2498 + 0.746,
  2499 + 0.746,
  2500 + 0.746,
  2501 + 0.746,
  2502 + 0.746,
  2503 + 0.746,
  2504 + 0.746,
  2505 + 0.746,
  2506 + 0.746,
  2507 + 0.746,
  2508 + 0.746,
  2509 + 0.278,
  2510 + 0.974,
  2511 + 0.961,
  2512 + 0.974,
  2513 + 0.980,
  2514 + 0.719,
  2515 + 0.789,
  2516 + 0.790,
  2517 + 0.791,
  2518 + 0.690,
  2519 + 0.960,
  2520 + 0.939,
  2521 + 0.549,
  2522 + 0.855,
  2523 + 0.911,
  2524 + 0.933,
  2525 + 0.911,
  2526 + 0.945,
  2527 + 0.974,
  2528 + 0.755,
  2529 + 0.846,
  2530 + 0.762,
  2531 + 0.761,
  2532 + 0.571,
  2533 + 0.677,
  2534 + 0.763,
  2535 + 0.760,
  2536 + 0.759,
  2537 + 0.754,
  2538 + 0.494,
  2539 + 0.552,
  2540 + 0.537,
  2541 + 0.577,
  2542 + 0.692,
  2543 + 0.786,
  2544 + 0.788,
  2545 + 0.788,
  2546 + 0.790,
  2547 + 0.793,
  2548 + 0.794,
  2549 + 0.816,
  2550 + 0.823,
  2551 + 0.789,
  2552 + 0.841,
  2553 + 0.823,
  2554 + 0.833,
  2555 + 0.816,
  2556 + 0.831,
  2557 + 0.923,
  2558 + 0.744,
  2559 + 0.723,
  2560 + 0.749,
  2561 + 0.790,
  2562 + 0.792,
  2563 + 0.695,
  2564 + 0.776,
  2565 + 0.768,
  2566 + 0.792,
  2567 + 0.759,
  2568 + 0.707,
  2569 + 0.708,
  2570 + 0.682,
  2571 + 0.701,
  2572 + 0.826,
  2573 + 0.815,
  2574 + 0.789,
  2575 + 0.789,
  2576 + 0.707,
  2577 + 0.687,
  2578 + 0.696,
  2579 + 0.689,
  2580 + 0.786,
  2581 + 0.787,
  2582 + 0.713,
  2583 + 0.791,
  2584 + 0.785,
  2585 + 0.791,
  2586 + 0.873,
  2587 + 0.761,
  2588 + 0.762,
  2589 + 0.762,
  2590 + 0.759,
  2591 + 0.759,
  2592 + 0.892,
  2593 + 0.892,
  2594 + 0.788,
  2595 + 0.784,
  2596 + 0.438,
  2597 + 0.138,
  2598 + 0.277,
  2599 + 0.415,
  2600 + 0.392,
  2601 + 0.392,
  2602 + 0.668,
  2603 + 0.668,
  2604 + 0.746,
  2605 + 0.390,
  2606 + 0.390,
  2607 + 0.317,
  2608 + 0.317,
  2609 + 0.276,
  2610 + 0.276,
  2611 + 0.509,
  2612 + 0.509,
  2613 + 0.410,
  2614 + 0.410,
  2615 + 0.234,
  2616 + 0.234,
  2617 + 0.334,
  2618 + 0.334,
  2619 + 0.746,
  2620 + 0.746,
  2621 + 0.746,
  2622 + 0.746,
  2623 + 0.746,
  2624 + 0.746,
  2625 + 0.746,
  2626 + 0.746,
  2627 + 0.746,
  2628 + 0.746,
  2629 + 0.746,
  2630 + 0.746,
  2631 + 0.746,
  2632 + 0.746,
  2633 + 0.746,
  2634 + 0.746,
  2635 + 0.746,
  2636 + 0.746,
  2637 + 0.746,
  2638 + 0.732,
  2639 + 0.544,
  2640 + 0.544,
  2641 + 0.910,
  2642 + 0.667,
  2643 + 0.760,
  2644 + 0.760,
  2645 + 0.776,
  2646 + 0.595,
  2647 + 0.694,
  2648 + 0.626,
  2649 + 0.788,
  2650 + 0.788,
  2651 + 0.788,
  2652 + 0.788,
  2653 + 0.788,
  2654 + 0.788,
  2655 + 0.788,
  2656 + 0.788,
  2657 + 0.788,
  2658 + 0.788,
  2659 + 0.788,
  2660 + 0.788,
  2661 + 0.788,
  2662 + 0.788,
  2663 + 0.788,
  2664 + 0.788,
  2665 + 0.788,
  2666 + 0.788,
  2667 + 0.788,
  2668 + 0.788,
  2669 + 0.788,
  2670 + 0.788,
  2671 + 0.788,
  2672 + 0.788,
  2673 + 0.788,
  2674 + 0.788,
  2675 + 0.788,
  2676 + 0.788,
  2677 + 0.788,
  2678 + 0.788,
  2679 + 0.788,
  2680 + 0.788,
  2681 + 0.788,
  2682 + 0.788,
  2683 + 0.788,
  2684 + 0.788,
  2685 + 0.788,
  2686 + 0.788,
  2687 + 0.788,
  2688 + 0.788,
  2689 + 0.894,
  2690 + 0.838,
  2691 + 1.016,
  2692 + 0.458,
  2693 + 0.748,
  2694 + 0.924,
  2695 + 0.748,
  2696 + 0.918,
  2697 + 0.927,
  2698 + 0.928,
  2699 + 0.928,
  2700 + 0.834,
  2701 + 0.873,
  2702 + 0.828,
  2703 + 0.924,
  2704 + 0.924,
  2705 + 0.917,
  2706 + 0.930,
  2707 + 0.931,
  2708 + 0.463,
  2709 + 0.883,
  2710 + 0.836,
  2711 + 0.836,
  2712 + 0.867,
  2713 + 0.867,
  2714 + 0.696,
  2715 + 0.696,
  2716 + 0.874,
  2717 + 0.746,
  2718 + 0.874,
  2719 + 0.760,
  2720 + 0.946,
  2721 + 0.771,
  2722 + 0.865,
  2723 + 0.771,
  2724 + 0.888,
  2725 + 0.967,
  2726 + 0.888,
  2727 + 0.831,
  2728 + 0.873,
  2729 + 0.927,
  2730 + 0.970,
  2731 + 0.918,
  2732 + 0.746
  2733 + ]);
  2734 + }
99 } 2735 }
@@ -29,7 +29,7 @@ class PdfFontDescriptor extends PdfObject { @@ -29,7 +29,7 @@ class PdfFontDescriptor extends PdfObject {
29 void _prepare() { 29 void _prepare() {
30 super._prepare(); 30 super._prepare();
31 31
32 - params["/FontName"] = PdfStream.string(ttfFont.baseFont); 32 + params["/FontName"] = PdfStream.string(ttfFont.fontName);
33 params["/FontFile2"] = file.ref(); 33 params["/FontFile2"] = file.ref();
34 params["/Flags"] = PdfStream.intNum(32); 34 params["/Flags"] = PdfStream.intNum(32);
35 params["/FontBBox"] = PdfStream() 35 params["/FontBBox"] = PdfStream()
@@ -32,7 +32,7 @@ class PdfGraphics { @@ -32,7 +32,7 @@ class PdfGraphics {
32 32
33 PdfFont get defaultFont { 33 PdfFont get defaultFont {
34 if (page.pdfDocument.fonts.length == 0) { 34 if (page.pdfDocument.fonts.length == 0) {
35 - PdfFont(page.pdfDocument); 35 + PdfFont.helvetica(page.pdfDocument);
36 } 36 }
37 37
38 return page.pdfDocument.fonts.elementAt(0); 38 return page.pdfDocument.fonts.elementAt(0);
@@ -30,9 +30,7 @@ class PdfTtfFont extends PdfFont { @@ -30,9 +30,7 @@ class PdfTtfFont extends PdfFont {
30 /// Constructs a [PdfTtfFont] 30 /// Constructs a [PdfTtfFont]
31 PdfTtfFont(PdfDocument pdfDocument, ByteData bytes) 31 PdfTtfFont(PdfDocument pdfDocument, ByteData bytes)
32 : font = TtfParser(bytes), 32 : font = TtfParser(bytes),
33 - super(pdfDocument, subtype: "/TrueType") {  
34 - baseFont = "/" + font.fontName.replaceAll(" ", "");  
35 - 33 + super._create(pdfDocument, subtype: "/TrueType") {
36 PdfObjectStream file = PdfObjectStream(pdfDocument, isBinary: true); 34 PdfObjectStream file = PdfObjectStream(pdfDocument, isBinary: true);
37 final data = bytes.buffer.asUint8List(); 35 final data = bytes.buffer.asUint8List();
38 file.buf.putBytes(data); 36 file.buf.putBytes(data);
@@ -51,6 +49,9 @@ class PdfTtfFont extends PdfFont { @@ -51,6 +49,9 @@ class PdfTtfFont extends PdfFont {
51 } 49 }
52 50
53 @override 51 @override
  52 + String get fontName => "/" + font.fontName.replaceAll(" ", "");
  53 +
  54 + @override
54 double glyphAdvance(int charCode) { 55 double glyphAdvance(int charCode) {
55 var g = font.charToGlyphIndexMap[charCode]; 56 var g = font.charToGlyphIndexMap[charCode];
56 57
@@ -77,6 +78,7 @@ class PdfTtfFont extends PdfFont { @@ -77,6 +78,7 @@ class PdfTtfFont extends PdfFont {
77 void _prepare() { 78 void _prepare() {
78 super._prepare(); 79 super._prepare();
79 80
  81 + params["/BaseFont"] = PdfStream.string(fontName);
80 params["/FirstChar"] = PdfStream.intNum(_charMin); 82 params["/FirstChar"] = PdfStream.intNum(_charMin);
81 params["/LastChar"] = PdfStream.intNum(_charMax); 83 params["/LastChar"] = PdfStream.intNum(_charMax);
82 params["/Widths"] = widthsObject.ref(); 84 params["/Widths"] = widthsObject.ref();
  1 +/*
  2 + * Copyright (C) 2017, David PHAM-VAN <dev.nfet.net@gmail.com>
  3 + *
  4 + * This library is free software; you can redistribute it and/or
  5 + * modify it under the terms of the GNU Lesser General
  6 + * License as published by the Free Software Foundation; either
  7 + * version 2.1 of the License, or (at your option) any later version.
  8 + *
  9 + * This library is distributed in the hope that it will be useful,
  10 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12 + * Lesser General License for more details.
  13 + *
  14 + * You should have received a copy of the GNU Lesser General
  15 + * License along with this library; if not, write to the Free Software
  16 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17 + */
  18 +
  19 +part of pdf;
  20 +
  21 +class PdfType1Font extends PdfFont {
  22 + /// The font's real name
  23 + final String fontName;
  24 + final double ascent;
  25 + final double descent;
  26 + final List<double> widths;
  27 +
  28 + /// Constructs a [PdfTtfFont]
  29 + PdfType1Font._create(PdfDocument pdfDocument, this.fontName, this.ascent,
  30 + this.descent, this.widths)
  31 + : super._create(pdfDocument, subtype: "/Type1") {}
  32 +
  33 + /// @param os OutputStream to send the object to
  34 + @override
  35 + void _prepare() {
  36 + super._prepare();
  37 +
  38 + params["/BaseFont"] = PdfStream.string("/" + fontName);
  39 + }
  40 +
  41 + @override
  42 + double glyphAdvance(int charCode) {
  43 + if (charCode > widths.length) {
  44 + return super.glyphAdvance(charCode);
  45 + }
  46 +
  47 + return widths[charCode];
  48 + }
  49 +
  50 + @override
  51 + PdfRect glyphBounds(int charCode) {
  52 + return PdfRect(0.0, descent, glyphAdvance(charCode), ascent);
  53 + }
  54 +}
@@ -26,7 +26,7 @@ void main() { @@ -26,7 +26,7 @@ void main() {
26 g.setTransform(tm); 26 g.setTransform(tm);
27 // g.drawShape("M37 0H9C6.24 0 4 2.24 4 5v38c0 2.76 2.24 5 5 5h28c2.76 0 5-2.24 5-5V5c0-2.76-2.24-5-5-5zM23 46c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm15-8H8V6h30v32z"); 27 // g.drawShape("M37 0H9C6.24 0 4 2.24 4 5v38c0 2.76 2.24 5 5 5h28c2.76 0 5-2.24 5-5V5c0-2.76-2.24-5-5-5zM23 46c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm15-8H8V6h30v32z");
28 g.restoreContext(); 28 g.restoreContext();
29 - var font1 = PdfFont(pdf); 29 + var font1 = g.defaultFont;
30 30
31 var font2 = PdfTtfFont( 31 var font2 = PdfTtfFont(
32 pdf, 32 pdf,
  1 +import 'dart:io';
  2 +
  3 +import 'package:pdf/pdf.dart';
  4 +import 'package:test/test.dart';
  5 +
  6 +void printText(PdfGraphics g, String text, PdfFont font, double top) {
  7 + text = text + font.fontName;
  8 + var r = font.stringBounds(text);
  9 + const FS = 20.0;
  10 + g.setColor(PdfColor(0.9, 0.9, 0.9));
  11 + g.drawRect(50.0 + r.x * FS, g.page.pageFormat.height - top + r.y * FS,
  12 + r.w * FS, r.h * FS);
  13 + g.fillPath();
  14 + g.setColor(PdfColor(0.3, 0.3, 0.3));
  15 + g.drawString(font, FS, text, 50.0, g.page.pageFormat.height - top);
  16 +}
  17 +
  18 +void main() {
  19 + test('Pdf', () {
  20 + var pdf = PdfDocument();
  21 + var page = PdfPage(pdf, pageFormat: const PdfPageFormat(500.0, 430.0));
  22 +
  23 + var g = page.getGraphics();
  24 + var top = 0;
  25 + const s = "Hello ";
  26 +
  27 + printText(g, s, PdfFont.courier(pdf), 20.0 + 30.0 * top++);
  28 + printText(g, s, PdfFont.courierBold(pdf), 20.0 + 30.0 * top++);
  29 + printText(g, s, PdfFont.courierOblique(pdf), 20.0 + 30.0 * top++);
  30 + printText(g, s, PdfFont.courierBoldOblique(pdf), 20.0 + 30.0 * top++);
  31 +
  32 + printText(g, s, PdfFont.helvetica(pdf), 20.0 + 30.0 * top++);
  33 + printText(g, s, PdfFont.helveticaBold(pdf), 20.0 + 30.0 * top++);
  34 + printText(g, s, PdfFont.helveticaOblique(pdf), 20.0 + 30.0 * top++);
  35 + printText(g, s, PdfFont.helveticaBoldOblique(pdf), 20.0 + 30.0 * top++);
  36 +
  37 + printText(g, s, PdfFont.times(pdf), 20.0 + 30.0 * top++);
  38 + printText(g, s, PdfFont.timesBold(pdf), 20.0 + 30.0 * top++);
  39 + printText(g, s, PdfFont.timesItalic(pdf), 20.0 + 30.0 * top++);
  40 + printText(g, s, PdfFont.timesBoldItalic(pdf), 20.0 + 30.0 * top++);
  41 +
  42 + printText(g, s, PdfFont.symbol(pdf), 20.0 + 30.0 * top++);
  43 + printText(g, s, PdfFont.zapfDingbats(pdf), 20.0 + 30.0 * top++);
  44 +
  45 + var file = File('file3.pdf');
  46 + file.writeAsBytesSync(pdf.save());
  47 + });
  48 +}