1 /*
2 Copyright (C) 2012-2021, Dirk Krause
3 SPDX-License-Identifier: BSD-3-Clause
4 */
5
6 /*
7 WARNING: This file was generated by the dkct program (see
8 http://dktools.sourceforge.net/ for details).
9 Changes you make here will be lost if dkct is run again!
10 You should modify the original source and run dkct on it.
11 Original source: dk3font.ctr
12 */
13
14 /** @file dk3font.c The dk3font module.
15 */
16
17
18 #include <libdk3c/dk3all.h>
19 #include <libdk3fig/dk3font.h>
20
21
22
23
24
25
26
27 /*
28 PLACES TO SEARCH FOR PFB FILES:
29 ===============================
30
31 Linux
32 -----
33 /usr/share/ghostscript/_version_/Resource/Font/_newname_
34 /usr/share/fonts/default/Type1/_oldname_.pfb
35
36 Windows
37 -------
38 _windowsdirectory_/Fonts
39 Ghostscript font directories
40 */
41
42
43
44 /** Additional system font families usable as replacements.
45 */
46 static char const * const dk3font_times_family_names[] = {
47 /* 0 */
48 "Times New Roman",
49
50 /* 1 */
51 "Bodoni MT",
52
53 NULL
54
55 };
56
57
58
59 /** Additional system font families usable as replacements.
60 */
61 static char const * const dk3font_avantgarde_family_names[] = {
62 /* 0 */
63 "Trebuchet MS",
64
65 /* 1 */
66 "Verdana",
67
68 NULL
69
70 };
71
72
73
74 /** Additional system font families usable as replacements.
75 */
76 static char const * const dk3font_bookman_light_family_names[] = {
77 /* 0 */
78 "Bookman Old Style",
79
80 /* 1 */
81 "Times New Roman",
82
83 NULL
84
85 };
86
87
88
89 /** Additional system font families usable as replacements.
90 */
91 static char const * const dk3font_courier_family_names[] = {
92 /* 0 */
93 "Courier New",
94
95 NULL
96
97 };
98
99
100
101 /** Additional system font families usable as replacements.
102 */
103 static char const * const dk3font_helvetica_family_names[] = {
104 /* 0 */
105 "Arial",
106
107 /* 1 */
108 "Gill Sans MT",
109
110 /* 2 */
111 "Lucida Sans",
112
113 /* 3 */
114 "Tahoma",
115
116 NULL
117
118 };
119
120
121
122 /** Additional system font families usable as replacements.
123 */
124 static char const * const dk3font_helvetica_narrow_family_names[] = {
125 /* 0 */
126 "Arial Narrow",
127
128 /* 1 */
129 "Arial",
130
131 NULL
132
133 };
134
135
136
137 /** Additional system font families usable as replacements.
138 */
139 static char const * const dk3font_ncschoolbook_family_names[] = {
140 /* 0 */
141 "Century Schoolbook",
142
143 /* 1 */
144 "Times New Roman",
145
146 NULL
147
148 };
149
150
151
152 /** Additional system font families usable as replacements.
153 */
154 static char const * const dk3font_palatino_family_names[] = {
155 /* 0 */
156 "Palatino Linotype",
157
158 /* 1 */
159 "Times New Roman",
160
161 NULL
162
163 };
164
165
166
167 /** Additional system font families usable as replacements.
168 */
169 static char const * const dk3font_symbol_family_names[] = {
170 /* 0 */
171 "Symbol",
172
173 NULL
174
175 };
176
177
178
179 /** Additional system font families usable as replacements.
180 */
181 static char const * const dk3font_zapfchancery_family_names[] = {
182 /* 0 */
183 "Edwardian Script ITC",
184
185 /* 1 */
186 "Blackadder ITC",
187
188 NULL
189
190 };
191
192
193
194 /** Additional system font families usable as replacements.
195 */
196 static char const * const dk3font_zapfdingbats_family_names[] = {
197 /* 0 */
198 "WingDings",
199
200 NULL
201
202 };
203
204
205
206 /** Font information.
207 */
208 static dk3_font_t const dk3font_data[] = {
209 { /* 0 */
210 "Times-Roman",
211 "ptmr",
212 "ptm",
213 "NimbusRomNo9L-Regu",
214 "n021003l",
215 "NimbusRomNo9L-Regu",
216 "Times",
217 "Nimbus Roman No9 L",
218 "NimbusRomanNo9L-Regu",
219 dk3font_times_family_names,
220 DK3_FONT_ROMAN,
221 DK3_FONT_ROMAN,
222 400
223 },
224 { /* 1 */
225 "Times-Italic",
226 "ptmri",
227 "ptm",
228 "NimbusRomNo9L-ReguItal",
229 "n021023l",
230 "NimbusRomNo9L-ReguItal",
231 "Times",
232 "Nimbus Roman No9 L",
233 "NimbusRomNo9L-ReguItal",
234 dk3font_times_family_names,
235 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
236 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
237 400
238 },
239 { /* 2 */
240 "Times-Bold",
241 "ptmb",
242 "ptm",
243 "NimbusRomNo9L-Medi",
244 "n021004l",
245 "NimbusRomNo9L-Medi",
246 "Times",
247 "Nimbus Roman No9 L",
248 "NimbusRomNo9L-Medi",
249 dk3font_times_family_names,
250 (DK3_FONT_ROMAN | DK3_FONT_BOLD),
251 DK3_FONT_ROMAN,
252 500
253 },
254 { /* 3 */
255 "Times-BoldItalic",
256 "ptmbi",
257 "ptm",
258 "NimbusRomNo9L-MediItal",
259 "n021024l",
260 "NimbusRomNo9L-MediItal",
261 "Times",
262 "Nimbus Roman No9 L",
263 "NimbusRomNo9L-MediItal",
264 dk3font_times_family_names,
265 (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
266 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
267 500
268 },
269 { /* 4 */
270 "AvantGarde-Book",
271 "pagk",
272 "pag",
273 "URWGothicL-Book",
274 "a010013l",
275 "URWGothicL-Book",
276 "AvantGarde",
277 "URW Gothic L",
278 "URWGothicL-Book",
279 dk3font_avantgarde_family_names,
280 DK3_FONT_SANS_SERIF,
281 DK3_FONT_SANS_SERIF,
282 400
283 },
284 { /* 5 */
285 "AvantGarde-BookOblique",
286 "pagko",
287 "pag",
288 "URWGothicL-BookObli",
289 "a010033l",
290 "URWGothicL-BookObli",
291 "AvantGarde",
292 "URW Gothic L",
293 "URWGothicL-BookObli",
294 dk3font_avantgarde_family_names,
295 (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
296 (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE),
297 400
298 },
299 { /* 6 */
300 "AvantGarde-Demi",
301 "pagd",
302 "pag",
303 "URWGothicL-Demi",
304 "a010015l",
305 "URWGothicL-Demi",
306 "AvantGarde",
307 "URW Gothic L",
308 "URWGothicL-Demi",
309 dk3font_avantgarde_family_names,
310 (DK3_FONT_SANS_SERIF | DK3_FONT_BOLD),
311 DK3_FONT_SANS_SERIF,
312 600
313 },
314 { /* 7 */
315 "AvantGarde-DemiOblique",
316 "pagdo",
317 "pag",
318 "URWGothicL-DemiObli",
319 "a010035l",
320 "URWGothicL-DemiObli",
321 "AvantGarde",
322 "URW Gothic L",
323 "URWGothicL-DemiObli",
324 dk3font_avantgarde_family_names,
325 (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC | DK3_FONT_BOLD),
326 (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE | DK3_FONT_BOLD),
327 600
328 },
329 { /* 8 */
330 "Bookman-Light",
331 "pbkl",
332 "pbk",
333 "URWBookmanL-Ligh",
334 "b018012l",
335 "URWBookmanL-Ligh",
336 "Bookman",
337 "URW Bookman L",
338 "URWBookmanL-Ligh",
339 dk3font_bookman_light_family_names,
340 DK3_FONT_ROMAN,
341 DK3_FONT_ROMAN,
342 400
343 },
344 { /* 9 */
345 "Bookman-LightItalic",
346 "pbkli",
347 "pbk",
348 "URWBookmanL-LighItal",
349 "b018032l",
350 "URWBookmanL-LighItal",
351 "Bookman",
352 "URW Bookman L",
353 "URWBookmanL-LighItal",
354 dk3font_bookman_light_family_names,
355 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
356 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
357 400
358 },
359 { /* 10 */
360 "Bookman-Demi",
361 "pbkd",
362 "pbk",
363 "URWBookmanL-DemiBold", /* 2.2.22: URWBookmanL-Demi */
364 "b018015l",
365 "URWBookmanL-DemiBold",
366 "Bookman",
367 "URW Bookman L",
368 "URWBookmanL-DemiBold",
369 dk3font_bookman_light_family_names,
370 (DK3_FONT_ROMAN | DK3_FONT_BOLD),
371 DK3_FONT_ROMAN,
372 600
373 },
374 { /* 11 */
375 "Bookman-DemiItalic",
376 "pbkdi",
377 "pbk",
378 "URWBookmanL-DemiBoldItal", /* 2.2.22: URWBookmanL-DemiItal */
379 "b018035l",
380 "URWBookmanL-DemiBoldItal",
381 "Bookman",
382 "URW Bookman L",
383 "URWBookmanL-DemiBoldItal",
384 dk3font_bookman_light_family_names,
385 (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
386 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
387 600
388 },
389 { /* 12 */
390 "Courier",
391 "pcrr",
392 "pcr",
393 "NimbusMonL-Regu",
394 "n022003l",
395 "NimbusMonL-Regu",
396 "Courier",
397 "Nimbus Mono L",
398 "NimbusMonL-Regu",
399 dk3font_courier_family_names,
400 DK3_FONT_TYPEWRITER,
401 DK3_FONT_TYPEWRITER,
402 400
403 },
404 { /* 13 */
405 "Courier-Oblique",
406 "pcrro",
407 "pcr",
408 "NimbusMonL-ReguObli",
409 "n022023l",
410 "NimbusMonL-ReguObli",
411 "Courier",
412 "Nimbus Mono L",
413 "NimbusMonL-ReguObli",
414 dk3font_courier_family_names,
415 (DK3_FONT_TYPEWRITER | DK3_FONT_ITALIC),
416 (DK3_FONT_TYPEWRITER | DK3_FONT_OBLIQUE),
417 400
418 },
419 { /* 14 */
420 "Courier-Bold",
421 "pcrb",
422 "pcr",
423 "NimbusMonL-Bold",
424 "n022004l",
425 "NimbusMonL-Bold",
426 "Courier",
427 "Nimbus Mono L",
428 "NimbusMonL-Bold",
429 dk3font_courier_family_names,
430 (DK3_FONT_TYPEWRITER | DK3_FONT_BOLD),
431 DK3_FONT_TYPEWRITER,
432 700
433 },
434 { /* 15 */
435 "Courier-BoldOblique",
436 "pcrbo",
437 "pcr",
438 "NimbusMonL-BoldObli",
439 "n022024l",
440 "NimbusMonL-BoldObli",
441 "Courier",
442 "Nimbus Mono L",
443 "NimbusMonL-BoldObli",
444 dk3font_courier_family_names,
445 (DK3_FONT_TYPEWRITER | DK3_FONT_ITALIC | DK3_FONT_BOLD),
446 (DK3_FONT_TYPEWRITER | DK3_FONT_OBLIQUE),
447 700
448 },
449 { /* 16 */
450 "Helvetica",
451 "phvr",
452 "phv",
453 "NimbusSanL-Regu",
454 "n019003l",
455 "NimbusSanL-Regu",
456 "Helvetica",
457 "Nimbus Sans L",
458 "NimbusSansL-Regu",
459 dk3font_helvetica_family_names,
460 DK3_FONT_SANS_SERIF,
461 DK3_FONT_SANS_SERIF,
462 400
463 },
464 { /* 17 */
465 "Helvetica-Oblique",
466 "phvro",
467 "phv",
468 "NimbusSanL-ReguItal",
469 "n019023l",
470 "NimbusSanL-ReguItal",
471 "Helvetica",
472 "Nimbus Sans L",
473 "NimbusSanL-ReguItal",
474 dk3font_helvetica_family_names,
475 (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE),
476 (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
477 400
478 },
479 { /* 18 */
480 "Helvetica-Bold",
481 "phvb",
482 "phv",
483 "NimbusSanL-Bold",
484 "n019004l",
485 "NimbusSanL-Bold",
486 "Helvetica",
487 "Nimbus Sans L",
488 "NimbusSanL-Bold",
489 dk3font_helvetica_family_names,
490 (DK3_FONT_SANS_SERIF | DK3_FONT_BOLD),
491 DK3_FONT_SANS_SERIF,
492 700
493 },
494 { /* 19 */
495 "Helvetica-BoldOblique",
496 "phvbo",
497 "phv",
498 "NimbusSanL-BoldItal",
499 "n019024l",
500 "NimbusSanL-BoldItal",
501 "Helvetica",
502 "Nimbus Sans L",
503 "NimbusSanL-BoldItal",
504 dk3font_helvetica_family_names,
505 (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE | DK3_FONT_BOLD),
506 (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
507 700
508 },
509 { /* 20 */
510 "Helvetica-Narrow",
511 "phvrrn",
512 "phv",
513 "NimbusSanL-ReguCond",
514 "n019043l",
515 "NimbusSanL-ReguCond",
516 "Helvetica Narrow",
517 "Nimbus Sans L",
518 "NimbusSanL-ReguCond",
519 dk3font_helvetica_narrow_family_names,
520 DK3_FONT_SANS_SERIF,
521 DK3_FONT_SANS_SERIF,
522 400
523 },
524 { /* 21 */
525 "Helvetica-Narrow-Oblique",
526 "phvron",
527 "phv",
528 "NimbusSanL-ReguCondItal",
529 "n019063l",
530 "NimbusSanL-ReguCondItal",
531 "Helvetica Narrow",
532 "Nimbus Sans L",
533 "NimbusSanL-ReguCondItal",
534 dk3font_helvetica_narrow_family_names,
535 (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE),
536 (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
537 400
538 },
539 { /* 22 */
540 "Helvetica-Narrow-Bold",
541 "phvbrn",
542 "phv",
543 "NimbusSanL-BoldCond",
544 "n019044l",
545 "NimbusSanL-BoldCond",
546 "Helvetica Narrow",
547 "Nimbus Sans L",
548 "NimbusSanL-BoldCond",
549 dk3font_helvetica_narrow_family_names,
550 (DK3_FONT_SANS_SERIF | DK3_FONT_BOLD),
551 DK3_FONT_SANS_SERIF,
552 700
553 },
554 { /* 23 */
555 "Helvetica-Narrow-BoldOblique",
556 "phvbon",
557 "phv",
558 "NimbusSanL-BoldCondItal",
559 "n019064l",
560 "NimbusSanL-BoldCondItal",
561 "Helvetica Narrow",
562 "Nimbus Sans L",
563 "NimbusSanL-BoldCondItal",
564 dk3font_helvetica_narrow_family_names,
565 (DK3_FONT_SANS_SERIF | DK3_FONT_OBLIQUE | DK3_FONT_BOLD),
566 (DK3_FONT_SANS_SERIF | DK3_FONT_ITALIC),
567 700
568 },
569 { /* 24 */
570 "NewCenturySchlbk-Roman",
571 "pncr",
572 "pnc",
573 "CenturySchL-Roma",
574 "c059013l",
575 "CenturySchL-Roma",
576 "New Century Schoolbook",
577 "Century Schoolbook L",
578 "CenturySchL-Roma",
579 dk3font_ncschoolbook_family_names,
580 DK3_FONT_ROMAN,
581 DK3_FONT_ROMAN,
582 400
583 },
584 { /* 25 */
585 "NewCenturySchlbk-Italic",
586 "pncri",
587 "pnc",
588 "CenturySchL-RomaItal",
589 "c059033l",
590 "CenturySchL-Ital",
591 "New Century Schoolbook",
592 "Century Schoolbook L",
593 "CenturySchL-Ital",
594 dk3font_ncschoolbook_family_names,
595 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
596 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
597 400
598 },
599 { /* 26 */
600 "NewCenturySchlbk-Bold",
601 "pncb",
602 "pnc",
603 "CenturySchL-Bold",
604 "c059016l",
605 "CenturySchL-Bold",
606 "New Century Schoolbook",
607 "Century Schoolbook L",
608 "CenturySchL-Bold",
609 dk3font_ncschoolbook_family_names,
610 (DK3_FONT_ROMAN | DK3_FONT_BOLD),
611 DK3_FONT_ROMAN,
612 700
613 },
614 { /* 27 */
615 "NewCenturySchlbk-BoldItalic",
616 "pncbi",
617 "pnc",
618 "CenturySchL-BoldItal",
619 "c059036l",
620 "CenturySchL-BoldItal",
621 "New Century Schoolbook",
622 "Century Schoolbook L",
623 "CenturySchL-BoldItal",
624 dk3font_ncschoolbook_family_names,
625 (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
626 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
627 700
628 },
629 { /* 28 */
630 "Palatino-Roman",
631 "pplr",
632 "ppl",
633 "URWPalladioL-Roma",
634 "p052003l",
635 "URWPalladioL-Roma",
636 "Palatino",
637 "URW Palladio L",
638 "URWPalladioL-Roma",
639 dk3font_palatino_family_names,
640 DK3_FONT_ROMAN,
641 DK3_FONT_ROMAN,
642 400
643 },
644 { /* 29 */
645 "Palatino-Italic",
646 "pplri",
647 "ppl",
648 "URWPalladioL-Ital",
649 "p052023l",
650 "URWPalladioL-Ital",
651 "Palatino",
652 "URW Palladio L",
653 "URWPalladioL-Ital",
654 dk3font_palatino_family_names,
655 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
656 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
657 400
658 },
659 { /* 30 */
660 "Palatino-Bold",
661 "pplb",
662 "ppl",
663 "URWPalladioL-Bold",
664 "p052004l",
665 "URWPalladioL-Bold",
666 "Palatino",
667 "URW Palladio L",
668 "URWPalladioL-Bold",
669 dk3font_palatino_family_names,
670 (DK3_FONT_ROMAN | DK3_FONT_BOLD),
671 DK3_FONT_ROMAN,
672 700
673 },
674 { /* 31 */
675 "Palatino-BoldItalic",
676 "pplbi",
677 "ppl",
678 "URWPalladioL-BoldItal",
679 "p052024l",
680 "URWPalladioL-BoldItal",
681 "Palatino",
682 "URW Palladio L",
683 "URWPalladioL-BoldItal",
684 dk3font_palatino_family_names,
685 (DK3_FONT_ROMAN | DK3_FONT_ITALIC | DK3_FONT_BOLD),
686 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
687 700
688 },
689 { /* 32 */
690 "Symbol",
691 "psyr",
692 "psy",
693 "StandardSymL",
694 "s050000l",
695 "StandardSymL",
696 "Symbol",
697 "Standard Symbols L",
698 "StandardSymL",
699 dk3font_symbol_family_names,
700 0,
701 0,
702 400
703 },
704 { /* 33 */
705 "ZapfChancery-MediumItalic",
706 "pzcmi",
707 "pzc",
708 "URWChanceryL-MediItal",
709 "z003034l",
710 "URWChanceryL-MediItal",
711 "Zapf Chancery",
712 "URW Chancery L",
713 "URWChanceryL-MediItal",
714 dk3font_zapfchancery_family_names,
715 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
716 (DK3_FONT_ROMAN | DK3_FONT_ITALIC),
717 500
718 },
719 { /* 34 */
720 "ZapfDingbats",
721 "pzdr",
722 "pzd",
723 "Dingbats",
724 "d050000l",
725 "Dingbats",
726 "DingBats",
727 "Dingbats",
728 "Dingbats",
729 dk3font_zapfdingbats_family_names,
730 0,
731 0,
732 400
733 }
734 };
735
736
737
738 /** Preference names to search for GhostScript font files.
739 */
740 static dkChar const * const dk3font_base_pref_names[] = {
741 dkT("/fonts/ghostscript/web"),
742 dkT("/fonts/ghostscript/local"),
743 NULL
744 };
745
746
747
748 char const *
dk3font_get_ps_font_name(int fontno)749 dk3font_get_ps_font_name(int fontno)
750 {
751 char const *back = NULL;
752 if((fontno >= 0) && (fontno < 35)) {
753 back = dk3font_data[fontno].psFontName;
754 }
755 return back;
756 }
757
758
759
760 char const *
dk3font_get_gs_font_name(int fontno)761 dk3font_get_gs_font_name(int fontno)
762 {
763 char const *back = NULL;
764 if((fontno >= 0) && (fontno < 35)) {
765 back = dk3font_data[fontno].gsFontName;
766 }
767 return back;
768 }
769
770
771
772 char const *
dk3font_get_tex_font_name(int fontno)773 dk3font_get_tex_font_name(int fontno)
774 {
775 char const *back = NULL;
776 if((fontno >= 0) && (fontno < 35)) {
777 back = dk3font_data[fontno].texFontName;
778 }
779 return back;
780 }
781
782
783
784 char const *
dk3font_get_tex_family_name(int fontno)785 dk3font_get_tex_family_name(int fontno)
786 {
787 char const *back = NULL;
788 if((fontno >= 0) && (fontno < 35)) {
789 back = dk3font_data[fontno].texFamilyName;
790 }
791 return back;
792 }
793
794
795
796 char const *
dk3font_get_gs_old_file(int fontno)797 dk3font_get_gs_old_file(int fontno)
798 {
799 char const *back = NULL;
800 if((fontno >= 0) && (fontno < 35)) {
801 back = dk3font_data[fontno].gsFileOld;
802 }
803 return back;
804 }
805
806
807
808 char const *
dk3font_get_gs_new_file(int fontno)809 dk3font_get_gs_new_file(int fontno)
810 {
811 char const *back = NULL;
812 if((fontno >= 0) && (fontno < 35)) {
813 back = dk3font_data[fontno].gsFileNew;
814 }
815 return back;
816 }
817
818
819
820 int
dk3font_get_features(int fontno)821 dk3font_get_features(int fontno)
822 {
823 int back = 0;
824 if((fontno >= 0) && (fontno < 35)) {
825 back = dk3font_data[fontno].features;
826 }
827 return back;
828 }
829
830
831 int
dk3font_get_svg_features(int fontno)832 dk3font_get_svg_features(int fontno)
833 {
834 int back = 0;
835 if((fontno >= 0) && (fontno < 35)) {
836 back = dk3font_data[fontno].svgFeatures;
837 }
838 return back;
839 }
840
841
842
843 char const *
dk3font_get_ps_family(int fontno)844 dk3font_get_ps_family(int fontno)
845 {
846 char const *back = NULL;
847 if((fontno >= 0) && (fontno < 35)) {
848 back = dk3font_data[fontno].psFamilyName;
849 }
850 return back;
851 }
852
853
854
855 char const *
dk3font_get_svg_family(int fontno)856 dk3font_get_svg_family(int fontno)
857 {
858 char const *back = NULL;
859
860 if((fontno >= 0) && (fontno < 35)) {
861 back = dk3font_data[fontno].svgFamilyName;
862 }
863 return back;
864 }
865
866
867
868 char const *
dk3font_get_svg_fontid(int fontno)869 dk3font_get_svg_fontid(int fontno)
870 {
871 char const *back = NULL;
872
873 if((fontno >= 0) && (fontno < 35)) {
874 back = dk3font_data[fontno].svgFontId;
875 }
876 return back;
877 }
878
879
880
881 int
dk3font_get_svg_font_weight(int fontno)882 dk3font_get_svg_font_weight(int fontno)
883 {
884 int back = 0;
885 if((fontno >= 0) && (fontno < 35)) {
886 back = dk3font_data[fontno].svgFontWeight;
887 }
888 return back;
889 }
890
891
892
893 int
dk3font_gs_base_web(dk3_app_t * app,dkChar * buf,size_t bs)894 dk3font_gs_base_web(dk3_app_t *app, dkChar *buf, size_t bs)
895 {
896 int back;
897 back = dk3app_get_dir_from_pref(app, dk3font_base_pref_names[0], buf, bs, 0);
898 return back;
899 }
900
901
902
903 int
dk3font_gs_base_local(dk3_app_t * app,dkChar * buf,size_t bs)904 dk3font_gs_base_local(dk3_app_t *app, dkChar *buf, size_t bs)
905 {
906 int back;
907 back = dk3app_get_dir_from_pref(app, dk3font_base_pref_names[1], buf, bs, 1);
908 return back;
909 }
910
911
912
913 char const * const *
dk3font_get_replacement_families(int fontno)914 dk3font_get_replacement_families(int fontno)
915 {
916 char const * const *back = NULL;
917 if((0 <= fontno) && (fontno < 35)) {
918 back = dk3font_data[fontno].replacements;
919 }
920 return back;
921 }
922
923
924