pdfrb 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +51 -0
- data/RELEASE.md +46 -33
- data/data/pdfrb/afm/Courier-Bold.afm +342 -342
- data/data/pdfrb/afm/Courier-BoldOblique.afm +342 -342
- data/data/pdfrb/afm/Courier-Oblique.afm +342 -342
- data/data/pdfrb/afm/Courier.afm +342 -342
- data/data/pdfrb/afm/Helvetica-Bold.afm +2827 -2827
- data/data/pdfrb/afm/Helvetica-BoldOblique.afm +2827 -2827
- data/data/pdfrb/afm/Helvetica-Oblique.afm +3051 -3051
- data/data/pdfrb/afm/Helvetica.afm +3051 -3051
- data/data/pdfrb/afm/Symbol.afm +213 -213
- data/data/pdfrb/afm/Times-Bold.afm +2588 -2588
- data/data/pdfrb/afm/Times-BoldItalic.afm +2384 -2384
- data/data/pdfrb/afm/Times-Italic.afm +2667 -2667
- data/data/pdfrb/afm/Times-Roman.afm +2419 -2419
- data/data/pdfrb/afm/ZapfDingbats.afm +225 -225
- data/lib/pdfrb/content/canvas.rb +137 -0
- data/lib/pdfrb/content/operators/inline_image.rb +53 -0
- data/lib/pdfrb/content/operators.rb +1 -0
- data/lib/pdfrb/image_loader/png.rb +76 -19
- data/lib/pdfrb/model/type/page_piece_info.rb +58 -0
- data/lib/pdfrb/model/type.rb +3 -0
- data/lib/pdfrb/task/regenerate_appearances.rb +98 -0
- data/lib/pdfrb/task.rb +1 -0
- data/lib/pdfrb/version.rb +1 -1
- metadata +9 -3
|
@@ -1,225 +1,225 @@
|
|
|
1
|
-
StartFontMetrics 4.1
|
|
2
|
-
Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
|
3
|
-
Comment Creation Date: Thu May 1 15:14:13 1997
|
|
4
|
-
Comment UniqueID 43082
|
|
5
|
-
Comment VMusage 45775 55535
|
|
6
|
-
FontName ZapfDingbats
|
|
7
|
-
FullName ITC Zapf Dingbats
|
|
8
|
-
FamilyName ZapfDingbats
|
|
9
|
-
Weight Medium
|
|
10
|
-
ItalicAngle 0
|
|
11
|
-
IsFixedPitch false
|
|
12
|
-
CharacterSet Special
|
|
13
|
-
FontBBox -1 -143 981 820
|
|
14
|
-
UnderlinePosition -100
|
|
15
|
-
UnderlineThickness 50
|
|
16
|
-
Version 002.000
|
|
17
|
-
Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
|
|
18
|
-
EncodingScheme FontSpecific
|
|
19
|
-
StdHW 28
|
|
20
|
-
StdVW 90
|
|
21
|
-
StartCharMetrics 202
|
|
22
|
-
C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
|
|
23
|
-
C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ;
|
|
24
|
-
C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ;
|
|
25
|
-
C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ;
|
|
26
|
-
C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ;
|
|
27
|
-
C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ;
|
|
28
|
-
C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ;
|
|
29
|
-
C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ;
|
|
30
|
-
C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ;
|
|
31
|
-
C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ;
|
|
32
|
-
C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ;
|
|
33
|
-
C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ;
|
|
34
|
-
C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ;
|
|
35
|
-
C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ;
|
|
36
|
-
C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ;
|
|
37
|
-
C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ;
|
|
38
|
-
C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ;
|
|
39
|
-
C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ;
|
|
40
|
-
C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ;
|
|
41
|
-
C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ;
|
|
42
|
-
C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ;
|
|
43
|
-
C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ;
|
|
44
|
-
C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ;
|
|
45
|
-
C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ;
|
|
46
|
-
C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ;
|
|
47
|
-
C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ;
|
|
48
|
-
C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ;
|
|
49
|
-
C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ;
|
|
50
|
-
C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ;
|
|
51
|
-
C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ;
|
|
52
|
-
C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ;
|
|
53
|
-
C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ;
|
|
54
|
-
C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ;
|
|
55
|
-
C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ;
|
|
56
|
-
C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ;
|
|
57
|
-
C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ;
|
|
58
|
-
C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ;
|
|
59
|
-
C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ;
|
|
60
|
-
C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ;
|
|
61
|
-
C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ;
|
|
62
|
-
C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ;
|
|
63
|
-
C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ;
|
|
64
|
-
C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ;
|
|
65
|
-
C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ;
|
|
66
|
-
C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ;
|
|
67
|
-
C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ;
|
|
68
|
-
C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ;
|
|
69
|
-
C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ;
|
|
70
|
-
C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ;
|
|
71
|
-
C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ;
|
|
72
|
-
C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ;
|
|
73
|
-
C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ;
|
|
74
|
-
C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ;
|
|
75
|
-
C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ;
|
|
76
|
-
C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ;
|
|
77
|
-
C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ;
|
|
78
|
-
C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ;
|
|
79
|
-
C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ;
|
|
80
|
-
C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ;
|
|
81
|
-
C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ;
|
|
82
|
-
C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ;
|
|
83
|
-
C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ;
|
|
84
|
-
C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ;
|
|
85
|
-
C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ;
|
|
86
|
-
C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ;
|
|
87
|
-
C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ;
|
|
88
|
-
C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ;
|
|
89
|
-
C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ;
|
|
90
|
-
C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ;
|
|
91
|
-
C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ;
|
|
92
|
-
C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ;
|
|
93
|
-
C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ;
|
|
94
|
-
C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ;
|
|
95
|
-
C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ;
|
|
96
|
-
C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ;
|
|
97
|
-
C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ;
|
|
98
|
-
C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ;
|
|
99
|
-
C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ;
|
|
100
|
-
C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ;
|
|
101
|
-
C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ;
|
|
102
|
-
C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ;
|
|
103
|
-
C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ;
|
|
104
|
-
C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ;
|
|
105
|
-
C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ;
|
|
106
|
-
C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ;
|
|
107
|
-
C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ;
|
|
108
|
-
C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ;
|
|
109
|
-
C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ;
|
|
110
|
-
C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ;
|
|
111
|
-
C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ;
|
|
112
|
-
C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ;
|
|
113
|
-
C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ;
|
|
114
|
-
C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ;
|
|
115
|
-
C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ;
|
|
116
|
-
C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ;
|
|
117
|
-
C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ;
|
|
118
|
-
C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ;
|
|
119
|
-
C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ;
|
|
120
|
-
C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ;
|
|
121
|
-
C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ;
|
|
122
|
-
C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ;
|
|
123
|
-
C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ;
|
|
124
|
-
C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ;
|
|
125
|
-
C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ;
|
|
126
|
-
C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ;
|
|
127
|
-
C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ;
|
|
128
|
-
C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ;
|
|
129
|
-
C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ;
|
|
130
|
-
C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ;
|
|
131
|
-
C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ;
|
|
132
|
-
C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ;
|
|
133
|
-
C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ;
|
|
134
|
-
C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ;
|
|
135
|
-
C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ;
|
|
136
|
-
C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ;
|
|
137
|
-
C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ;
|
|
138
|
-
C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ;
|
|
139
|
-
C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ;
|
|
140
|
-
C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ;
|
|
141
|
-
C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ;
|
|
142
|
-
C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ;
|
|
143
|
-
C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ;
|
|
144
|
-
C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ;
|
|
145
|
-
C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ;
|
|
146
|
-
C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ;
|
|
147
|
-
C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ;
|
|
148
|
-
C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ;
|
|
149
|
-
C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ;
|
|
150
|
-
C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ;
|
|
151
|
-
C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ;
|
|
152
|
-
C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ;
|
|
153
|
-
C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ;
|
|
154
|
-
C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ;
|
|
155
|
-
C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ;
|
|
156
|
-
C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ;
|
|
157
|
-
C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ;
|
|
158
|
-
C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ;
|
|
159
|
-
C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ;
|
|
160
|
-
C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ;
|
|
161
|
-
C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ;
|
|
162
|
-
C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ;
|
|
163
|
-
C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ;
|
|
164
|
-
C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ;
|
|
165
|
-
C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ;
|
|
166
|
-
C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ;
|
|
167
|
-
C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ;
|
|
168
|
-
C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ;
|
|
169
|
-
C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ;
|
|
170
|
-
C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ;
|
|
171
|
-
C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ;
|
|
172
|
-
C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ;
|
|
173
|
-
C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ;
|
|
174
|
-
C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ;
|
|
175
|
-
C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ;
|
|
176
|
-
C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ;
|
|
177
|
-
C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ;
|
|
178
|
-
C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ;
|
|
179
|
-
C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ;
|
|
180
|
-
C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ;
|
|
181
|
-
C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ;
|
|
182
|
-
C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ;
|
|
183
|
-
C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ;
|
|
184
|
-
C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ;
|
|
185
|
-
C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ;
|
|
186
|
-
C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ;
|
|
187
|
-
C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ;
|
|
188
|
-
C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ;
|
|
189
|
-
C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ;
|
|
190
|
-
C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ;
|
|
191
|
-
C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ;
|
|
192
|
-
C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ;
|
|
193
|
-
C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ;
|
|
194
|
-
C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ;
|
|
195
|
-
C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ;
|
|
196
|
-
C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ;
|
|
197
|
-
C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ;
|
|
198
|
-
C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ;
|
|
199
|
-
C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ;
|
|
200
|
-
C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ;
|
|
201
|
-
C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ;
|
|
202
|
-
C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ;
|
|
203
|
-
C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ;
|
|
204
|
-
C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ;
|
|
205
|
-
C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ;
|
|
206
|
-
C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ;
|
|
207
|
-
C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ;
|
|
208
|
-
C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ;
|
|
209
|
-
C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ;
|
|
210
|
-
C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ;
|
|
211
|
-
C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ;
|
|
212
|
-
C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ;
|
|
213
|
-
C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ;
|
|
214
|
-
C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ;
|
|
215
|
-
C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ;
|
|
216
|
-
C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ;
|
|
217
|
-
C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ;
|
|
218
|
-
C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ;
|
|
219
|
-
C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ;
|
|
220
|
-
C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ;
|
|
221
|
-
C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ;
|
|
222
|
-
C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ;
|
|
223
|
-
C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ;
|
|
224
|
-
EndCharMetrics
|
|
225
|
-
EndFontMetrics
|
|
1
|
+
StartFontMetrics 4.1
|
|
2
|
+
Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.
|
|
3
|
+
Comment Creation Date: Thu May 1 15:14:13 1997
|
|
4
|
+
Comment UniqueID 43082
|
|
5
|
+
Comment VMusage 45775 55535
|
|
6
|
+
FontName ZapfDingbats
|
|
7
|
+
FullName ITC Zapf Dingbats
|
|
8
|
+
FamilyName ZapfDingbats
|
|
9
|
+
Weight Medium
|
|
10
|
+
ItalicAngle 0
|
|
11
|
+
IsFixedPitch false
|
|
12
|
+
CharacterSet Special
|
|
13
|
+
FontBBox -1 -143 981 820
|
|
14
|
+
UnderlinePosition -100
|
|
15
|
+
UnderlineThickness 50
|
|
16
|
+
Version 002.000
|
|
17
|
+
Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
|
|
18
|
+
EncodingScheme FontSpecific
|
|
19
|
+
StdHW 28
|
|
20
|
+
StdVW 90
|
|
21
|
+
StartCharMetrics 202
|
|
22
|
+
C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
|
|
23
|
+
C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ;
|
|
24
|
+
C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ;
|
|
25
|
+
C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ;
|
|
26
|
+
C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ;
|
|
27
|
+
C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ;
|
|
28
|
+
C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ;
|
|
29
|
+
C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ;
|
|
30
|
+
C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ;
|
|
31
|
+
C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ;
|
|
32
|
+
C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ;
|
|
33
|
+
C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ;
|
|
34
|
+
C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ;
|
|
35
|
+
C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ;
|
|
36
|
+
C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ;
|
|
37
|
+
C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ;
|
|
38
|
+
C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ;
|
|
39
|
+
C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ;
|
|
40
|
+
C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ;
|
|
41
|
+
C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ;
|
|
42
|
+
C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ;
|
|
43
|
+
C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ;
|
|
44
|
+
C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ;
|
|
45
|
+
C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ;
|
|
46
|
+
C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ;
|
|
47
|
+
C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ;
|
|
48
|
+
C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ;
|
|
49
|
+
C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ;
|
|
50
|
+
C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ;
|
|
51
|
+
C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ;
|
|
52
|
+
C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ;
|
|
53
|
+
C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ;
|
|
54
|
+
C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ;
|
|
55
|
+
C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ;
|
|
56
|
+
C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ;
|
|
57
|
+
C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ;
|
|
58
|
+
C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ;
|
|
59
|
+
C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ;
|
|
60
|
+
C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ;
|
|
61
|
+
C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ;
|
|
62
|
+
C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ;
|
|
63
|
+
C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ;
|
|
64
|
+
C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ;
|
|
65
|
+
C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ;
|
|
66
|
+
C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ;
|
|
67
|
+
C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ;
|
|
68
|
+
C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ;
|
|
69
|
+
C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ;
|
|
70
|
+
C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ;
|
|
71
|
+
C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ;
|
|
72
|
+
C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ;
|
|
73
|
+
C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ;
|
|
74
|
+
C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ;
|
|
75
|
+
C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ;
|
|
76
|
+
C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ;
|
|
77
|
+
C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ;
|
|
78
|
+
C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ;
|
|
79
|
+
C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ;
|
|
80
|
+
C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ;
|
|
81
|
+
C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ;
|
|
82
|
+
C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ;
|
|
83
|
+
C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ;
|
|
84
|
+
C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ;
|
|
85
|
+
C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ;
|
|
86
|
+
C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ;
|
|
87
|
+
C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ;
|
|
88
|
+
C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ;
|
|
89
|
+
C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ;
|
|
90
|
+
C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ;
|
|
91
|
+
C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ;
|
|
92
|
+
C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ;
|
|
93
|
+
C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ;
|
|
94
|
+
C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ;
|
|
95
|
+
C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ;
|
|
96
|
+
C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ;
|
|
97
|
+
C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ;
|
|
98
|
+
C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ;
|
|
99
|
+
C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ;
|
|
100
|
+
C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ;
|
|
101
|
+
C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ;
|
|
102
|
+
C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ;
|
|
103
|
+
C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ;
|
|
104
|
+
C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ;
|
|
105
|
+
C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ;
|
|
106
|
+
C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ;
|
|
107
|
+
C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ;
|
|
108
|
+
C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ;
|
|
109
|
+
C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ;
|
|
110
|
+
C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ;
|
|
111
|
+
C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ;
|
|
112
|
+
C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ;
|
|
113
|
+
C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ;
|
|
114
|
+
C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ;
|
|
115
|
+
C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ;
|
|
116
|
+
C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ;
|
|
117
|
+
C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ;
|
|
118
|
+
C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ;
|
|
119
|
+
C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ;
|
|
120
|
+
C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ;
|
|
121
|
+
C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ;
|
|
122
|
+
C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ;
|
|
123
|
+
C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ;
|
|
124
|
+
C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ;
|
|
125
|
+
C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ;
|
|
126
|
+
C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ;
|
|
127
|
+
C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ;
|
|
128
|
+
C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ;
|
|
129
|
+
C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ;
|
|
130
|
+
C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ;
|
|
131
|
+
C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ;
|
|
132
|
+
C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ;
|
|
133
|
+
C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ;
|
|
134
|
+
C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ;
|
|
135
|
+
C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ;
|
|
136
|
+
C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ;
|
|
137
|
+
C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ;
|
|
138
|
+
C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ;
|
|
139
|
+
C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ;
|
|
140
|
+
C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ;
|
|
141
|
+
C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ;
|
|
142
|
+
C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ;
|
|
143
|
+
C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ;
|
|
144
|
+
C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ;
|
|
145
|
+
C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ;
|
|
146
|
+
C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ;
|
|
147
|
+
C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ;
|
|
148
|
+
C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ;
|
|
149
|
+
C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ;
|
|
150
|
+
C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ;
|
|
151
|
+
C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ;
|
|
152
|
+
C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ;
|
|
153
|
+
C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ;
|
|
154
|
+
C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ;
|
|
155
|
+
C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ;
|
|
156
|
+
C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ;
|
|
157
|
+
C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ;
|
|
158
|
+
C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ;
|
|
159
|
+
C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ;
|
|
160
|
+
C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ;
|
|
161
|
+
C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ;
|
|
162
|
+
C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ;
|
|
163
|
+
C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ;
|
|
164
|
+
C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ;
|
|
165
|
+
C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ;
|
|
166
|
+
C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ;
|
|
167
|
+
C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ;
|
|
168
|
+
C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ;
|
|
169
|
+
C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ;
|
|
170
|
+
C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ;
|
|
171
|
+
C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ;
|
|
172
|
+
C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ;
|
|
173
|
+
C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ;
|
|
174
|
+
C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ;
|
|
175
|
+
C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ;
|
|
176
|
+
C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ;
|
|
177
|
+
C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ;
|
|
178
|
+
C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ;
|
|
179
|
+
C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ;
|
|
180
|
+
C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ;
|
|
181
|
+
C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ;
|
|
182
|
+
C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ;
|
|
183
|
+
C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ;
|
|
184
|
+
C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ;
|
|
185
|
+
C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ;
|
|
186
|
+
C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ;
|
|
187
|
+
C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ;
|
|
188
|
+
C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ;
|
|
189
|
+
C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ;
|
|
190
|
+
C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ;
|
|
191
|
+
C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ;
|
|
192
|
+
C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ;
|
|
193
|
+
C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ;
|
|
194
|
+
C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ;
|
|
195
|
+
C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ;
|
|
196
|
+
C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ;
|
|
197
|
+
C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ;
|
|
198
|
+
C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ;
|
|
199
|
+
C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ;
|
|
200
|
+
C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ;
|
|
201
|
+
C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ;
|
|
202
|
+
C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ;
|
|
203
|
+
C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ;
|
|
204
|
+
C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ;
|
|
205
|
+
C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ;
|
|
206
|
+
C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ;
|
|
207
|
+
C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ;
|
|
208
|
+
C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ;
|
|
209
|
+
C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ;
|
|
210
|
+
C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ;
|
|
211
|
+
C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ;
|
|
212
|
+
C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ;
|
|
213
|
+
C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ;
|
|
214
|
+
C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ;
|
|
215
|
+
C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ;
|
|
216
|
+
C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ;
|
|
217
|
+
C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ;
|
|
218
|
+
C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ;
|
|
219
|
+
C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ;
|
|
220
|
+
C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ;
|
|
221
|
+
C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ;
|
|
222
|
+
C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ;
|
|
223
|
+
C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ;
|
|
224
|
+
EndCharMetrics
|
|
225
|
+
EndFontMetrics
|
data/lib/pdfrb/content/canvas.rb
CHANGED
|
@@ -68,6 +68,122 @@ module Pdfrb
|
|
|
68
68
|
move_to(x1, y1).line_to(x2, y2)
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
+
# Draw a connected polyline through +points+. Each point is
|
|
72
|
+
# [x, y]. If +close+ is true, append a close-path operator.
|
|
73
|
+
def polyline(points, close: false)
|
|
74
|
+
return self if points.empty?
|
|
75
|
+
|
|
76
|
+
first = points.first
|
|
77
|
+
move_to(first[0], first[1])
|
|
78
|
+
points.drop(1).each { |x, y| line_to(x, y) }
|
|
79
|
+
close_path if close
|
|
80
|
+
self
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# Draw a closed polygon through +points+.
|
|
84
|
+
def polygon(points)
|
|
85
|
+
polyline(points, close: true)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Approximate a circular arc from +start_angle+ to +end_angle+
|
|
89
|
+
# (radians) centered at (cx, cy) with +radius+. Uses 16-line
|
|
90
|
+
# segment approximation per full revolution.
|
|
91
|
+
def arc(cx, cy, radius, start_angle:, end_angle:, segments_per_rev: 16)
|
|
92
|
+
span = end_angle - start_angle
|
|
93
|
+
return self if span.abs < 1e-6
|
|
94
|
+
|
|
95
|
+
seg_count = [(segments_per_rev * span.abs / (2 * Math::PI)).ceil, 1].max
|
|
96
|
+
step = span / seg_count
|
|
97
|
+
seg_count.times do |i|
|
|
98
|
+
a0 = start_angle + (i * step)
|
|
99
|
+
a1 = a0 + step
|
|
100
|
+
x0 = cx + (radius * Math.cos(a0))
|
|
101
|
+
y0 = cy + (radius * Math.sin(a0))
|
|
102
|
+
x1 = cx + (radius * Math.cos(a1))
|
|
103
|
+
y1 = cy + (radius * Math.sin(a1))
|
|
104
|
+
i.zero? ? move_to(x0, y0) : line_to(x0, y0)
|
|
105
|
+
line_to(x1, y1)
|
|
106
|
+
end
|
|
107
|
+
self
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Full circle centered at (cx, cy) with +radius+.
|
|
111
|
+
def circle(cx, cy, radius)
|
|
112
|
+
arc(cx, cy, radius, start_angle: 0, end_angle: 2 * Math::PI)
|
|
113
|
+
close_path
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Ellipse centered at (cx, cy) with x/y radii (rx, ry).
|
|
117
|
+
# Built from a scaled circle.
|
|
118
|
+
def ellipse(cx, cy, rx, ry)
|
|
119
|
+
save_graphics_state do
|
|
120
|
+
translate(cx, cy)
|
|
121
|
+
concat(1, 0, 0, 1, 0, 0)
|
|
122
|
+
# Approximate ellipse by scaling a unit circle.
|
|
123
|
+
segments = 32
|
|
124
|
+
segments.times do |i|
|
|
125
|
+
a0 = (i / segments.to_f) * 2 * Math::PI
|
|
126
|
+
a1 = ((i + 1) / segments.to_f) * 2 * Math::PI
|
|
127
|
+
x0 = rx * Math.cos(a0)
|
|
128
|
+
y0 = ry * Math.sin(a0)
|
|
129
|
+
x1 = rx * Math.cos(a1)
|
|
130
|
+
y1 = ry * Math.sin(a1)
|
|
131
|
+
i.zero? ? move_to(x0, y0) : line_to(x0, y0)
|
|
132
|
+
line_to(x1, y1)
|
|
133
|
+
end
|
|
134
|
+
close_path
|
|
135
|
+
end
|
|
136
|
+
self
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Rectangle with rounded corners. +radius+ is the corner radius
|
|
140
|
+
# (a single value or 4-element [tl, tr, br, bl]).
|
|
141
|
+
def rounded_rectangle(x, y, width, height, radius)
|
|
142
|
+
radii = radius.is_a?(::Array) ? radius : [radius] * 4
|
|
143
|
+
tl, tr, br, bl = radii
|
|
144
|
+
# bottom edge
|
|
145
|
+
move_to(x + bl, y)
|
|
146
|
+
line_to(x + width - br, y)
|
|
147
|
+
corner(x + width - br, y, x + width, y + br)
|
|
148
|
+
line_to(x + width, y + height - tr)
|
|
149
|
+
corner(x + width, y + height - tr,
|
|
150
|
+
x + width - tr, y + height)
|
|
151
|
+
line_to(x + tl, y + height)
|
|
152
|
+
corner(x + tl, y + height, x, y + height - tl)
|
|
153
|
+
line_to(x, y + bl)
|
|
154
|
+
corner(x, y + bl, x + bl, y)
|
|
155
|
+
close_path
|
|
156
|
+
self
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Convenience alias matching HexaPDF's naming. Accepts either
|
|
160
|
+
# an Array (interpreted as the dash array, phase 0) or an
|
|
161
|
+
# [array, phase] pair.
|
|
162
|
+
def dash=(spec)
|
|
163
|
+
array, phase = case spec
|
|
164
|
+
when ::Array
|
|
165
|
+
if spec.first.is_a?(::Array)
|
|
166
|
+
spec
|
|
167
|
+
else
|
|
168
|
+
[spec, 0]
|
|
169
|
+
end
|
|
170
|
+
else
|
|
171
|
+
[[spec], 0]
|
|
172
|
+
end
|
|
173
|
+
emit_op(Pdfrb::Content::Operator::DashPattern, array, phase)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Draw a quarter-circle corner from (x0, y0) to (x1, y1) by
|
|
177
|
+
# multi-segment linear interpolation. Adequate for typical
|
|
178
|
+
# radii (< 30 pts); for larger radii use curve_to directly.
|
|
179
|
+
def corner(x0, y0, x1, y1)
|
|
180
|
+
segments = 6
|
|
181
|
+
segments.times do |i|
|
|
182
|
+
t = (i + 1) / segments.to_f
|
|
183
|
+
line_to(x0 + ((x1 - x0) * t), y0 + ((y1 - y0) * t))
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
|
|
71
187
|
def curve_to(c1x, c1y, c2x, c2y, x, y)
|
|
72
188
|
emit_op(Pdfrb::Content::Operator::CurveTo, c1x, c1y, c2x, c2y, x, y)
|
|
73
189
|
self
|
|
@@ -214,6 +330,27 @@ module Pdfrb
|
|
|
214
330
|
self
|
|
215
331
|
end
|
|
216
332
|
|
|
333
|
+
# Emit an inline image (BI ... ID ... EI) directly into the
|
|
334
|
+
# content stream. Avoids the /Resources /XObject registration
|
|
335
|
+
# overhead for one-shot images. The +dict+ keys are the image
|
|
336
|
+
# header keys (/W, /H, /CS, /BPC, /F, etc.); +data+ is the
|
|
337
|
+
# encoded image bytes (raw, Flate-compressed, or DCT).
|
|
338
|
+
#
|
|
339
|
+
# @param dict [Hash{Symbol=>Object}] inline image header entries
|
|
340
|
+
# (e.g. { W: 100, H: 100, CS: :RGB, BPC: 8, F: :DCTDecode }).
|
|
341
|
+
# @param data [String] raw image bytes (binary-encoded).
|
|
342
|
+
def inline_image(dict:, data:)
|
|
343
|
+
header = +"BI\n"
|
|
344
|
+
dict.each do |k, v|
|
|
345
|
+
header << @serializer.serialize(k) << " " << @serializer.serialize(v) << "\n"
|
|
346
|
+
end
|
|
347
|
+
header << "ID\n"
|
|
348
|
+
append(header)
|
|
349
|
+
append(data)
|
|
350
|
+
append("\nEI\n")
|
|
351
|
+
self
|
|
352
|
+
end
|
|
353
|
+
|
|
217
354
|
def text(str, at:, font:, size:, char_spacing: nil, word_spacing: nil)
|
|
218
355
|
@used_fonts[font] = size
|
|
219
356
|
encoded = encode_for_font(str.to_s, font)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Content
|
|
5
|
+
module Operator
|
|
6
|
+
# Inline image operators (s8.9.7). Inline images embed raw image
|
|
7
|
+
# data directly in the content stream, framed by BI ... ID ...
|
|
8
|
+
# EI. They're an alternative to /XObject /Image for one-shot
|
|
9
|
+
# images: smaller overhead per image, no /Resources entry
|
|
10
|
+
# needed, but the bytes live in the content stream so they
|
|
11
|
+
# can't be reused.
|
|
12
|
+
#
|
|
13
|
+
# The serialise path emits the BI dict, ID marker, raw bytes,
|
|
14
|
+
# and EI marker. The invoke path is intentionally a no-op; the
|
|
15
|
+
# content Parser handles BI/ID/EI as a single bounded block
|
|
16
|
+
# rather than via the operator dispatch table.
|
|
17
|
+
class BeginInlineImage < Base
|
|
18
|
+
class << self
|
|
19
|
+
def name; "BI"; end
|
|
20
|
+
|
|
21
|
+
def serialize(serializer, **dict)
|
|
22
|
+
buf = +"BI\n"
|
|
23
|
+
dict.each do |k, v|
|
|
24
|
+
buf << serializer.serialize(k) << " " << serializer.serialize(v) << "\n"
|
|
25
|
+
end
|
|
26
|
+
buf << "ID\n"
|
|
27
|
+
buf
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def invoke(_processor, *_operands); end
|
|
31
|
+
register
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class EndInlineImage < Base
|
|
36
|
+
class << self
|
|
37
|
+
def name; "EI"; end
|
|
38
|
+
|
|
39
|
+
# The byte payload sits between ID and EI. The serializer
|
|
40
|
+
# for inline images writes the payload directly via
|
|
41
|
+
# Canvas#inline_image; this method is here so the registry
|
|
42
|
+
# knows about EI.
|
|
43
|
+
def serialize(_serializer, *_operands)
|
|
44
|
+
"EI\n"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def invoke(_processor, *_operands); end
|
|
48
|
+
register
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -16,6 +16,7 @@ module Pdfrb
|
|
|
16
16
|
autoload :GraphicsStateParams, "pdfrb/content/operators/graphics_state_params"
|
|
17
17
|
autoload :MarkedContent, "pdfrb/content/operators/marked_content"
|
|
18
18
|
autoload :Clipping, "pdfrb/content/operators/clipping"
|
|
19
|
+
autoload :InlineImage, "pdfrb/content/operators/inline_image"
|
|
19
20
|
end
|
|
20
21
|
end
|
|
21
22
|
end
|