pdf-font.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // pdf-font.h
  2. //
  3. #ifndef LZZ_pdf_font_h
  4. #define LZZ_pdf_font_h
  5. #include <string>
  6. #include <set>
  7. #define LZZ_INLINE inline
  8. enum e_font_type
  9. {
  10. e_font_type_core,
  11. e_font_type_type1,
  12. e_font_type_ttf
  13. };
  14. typedef int font_width_t;
  15. struct st_pdf_font_core
  16. {
  17. e_font_type type;
  18. int up;
  19. int ut;
  20. font_width_t (cw) [256];
  21. };
  22. struct st_pdf_font_base
  23. {
  24. int i;
  25. int n;
  26. char const * name;
  27. st_pdf_font_core & font;
  28. st_pdf_font_base (st_pdf_font_core & f);
  29. };
  30. struct pdf_font_Courier : public st_pdf_font_base
  31. {
  32. pdf_font_Courier ();
  33. };
  34. struct pdf_font_CourierOblique : public st_pdf_font_base
  35. {
  36. pdf_font_CourierOblique ();
  37. };
  38. struct pdf_font_CourierBold : public st_pdf_font_base
  39. {
  40. pdf_font_CourierBold ();
  41. };
  42. struct pdf_font_CourierBoldOblique : public st_pdf_font_base
  43. {
  44. pdf_font_CourierBoldOblique ();
  45. };
  46. struct pdf_font_Helvetica : public st_pdf_font_base
  47. {
  48. pdf_font_Helvetica ();
  49. };
  50. struct pdf_font_HelveticaOblique : public st_pdf_font_base
  51. {
  52. pdf_font_HelveticaOblique ();
  53. };
  54. struct pdf_font_HelveticaBold : public st_pdf_font_base
  55. {
  56. pdf_font_HelveticaBold ();
  57. };
  58. struct pdf_font_HelveticaBoldOblique : public st_pdf_font_base
  59. {
  60. pdf_font_HelveticaBoldOblique ();
  61. };
  62. struct pdf_font_Times : public st_pdf_font_base
  63. {
  64. pdf_font_Times ();
  65. };
  66. struct pdf_font_TimesOblique : public st_pdf_font_base
  67. {
  68. pdf_font_TimesOblique ();
  69. };
  70. struct pdf_font_TimesBold : public st_pdf_font_base
  71. {
  72. pdf_font_TimesBold ();
  73. };
  74. struct pdf_font_TimesBoldOblique : public st_pdf_font_base
  75. {
  76. pdf_font_TimesBoldOblique ();
  77. };
  78. struct pdf_font_Symbol : public st_pdf_font_base
  79. {
  80. pdf_font_Symbol ();
  81. };
  82. struct pdf_font_ZapfDingbats : public st_pdf_font_base
  83. {
  84. pdf_font_ZapfDingbats ();
  85. };
  86. bool isPdfFontCore (char const * fname);
  87. extern st_pdf_font_core pdf_font_core_Courier;
  88. extern st_pdf_font_core pdf_font_core_Helvetica;
  89. extern st_pdf_font_core pdf_font_core_HelveticaBold;
  90. extern st_pdf_font_core pdf_font_core_Times;
  91. extern st_pdf_font_core pdf_font_core_TimesOblique;
  92. extern st_pdf_font_core pdf_font_core_TimesBold;
  93. extern st_pdf_font_core pdf_font_core_TimesBoldOblique;
  94. extern st_pdf_font_core pdf_font_core_Symbol;
  95. extern st_pdf_font_core pdf_font_core_ZapfDingbats;
  96. #undef LZZ_INLINE
  97. #endif