File indexing completed on 2025-12-11 10:26:10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027 #ifndef SPLASHFONTENGINE_H
0028 #define SPLASHFONTENGINE_H
0029
0030 #include <array>
0031
0032 #include "SplashTypes.h"
0033 #include "poppler_private_export.h"
0034
0035 class SplashT1FontEngine;
0036 class SplashFTFontEngine;
0037 class SplashDTFontEngine;
0038 class SplashDT4FontEngine;
0039 class SplashFontFile;
0040 class SplashFontFileID;
0041 class SplashFont;
0042 class SplashFontSrc;
0043
0044
0045
0046
0047
0048 class POPPLER_PRIVATE_EXPORT SplashFontEngine
0049 {
0050 public:
0051
0052 SplashFontEngine(bool enableFreeType, bool enableFreeTypeHinting, bool enableSlightHinting, bool aa);
0053
0054 ~SplashFontEngine();
0055
0056 SplashFontEngine(const SplashFontEngine &) = delete;
0057 SplashFontEngine &operator=(const SplashFontEngine &) = delete;
0058
0059
0060
0061 SplashFontFile *getFontFile(SplashFontFileID *id);
0062
0063
0064 SplashFontFile *loadType1Font(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
0065 SplashFontFile *loadType1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
0066 SplashFontFile *loadOpenTypeT1CFont(SplashFontFileID *idA, SplashFontSrc *src, const char **enc);
0067 SplashFontFile *loadCIDFont(SplashFontFileID *idA, SplashFontSrc *src);
0068 SplashFontFile *loadOpenTypeCFFFont(SplashFontFileID *idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen);
0069 SplashFontFile *loadTrueTypeFont(SplashFontFileID *idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex = 0);
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079 SplashFont *getFont(SplashFontFile *fontFile, const SplashCoord *textMat, const SplashCoord *ctm);
0080 bool getAA();
0081 void setAA(bool aa);
0082
0083 private:
0084 std::array<SplashFont *, 16> fontCache;
0085
0086 SplashFTFontEngine *ftEngine;
0087 };
0088
0089 #endif