Files
DocumentServer-v-9.2.0/core/PdfFile/lib/xpdf/WebFont.h
Yajbir Singh f1b860b25c
Some checks failed
check / markdownlint (push) Has been cancelled
check / spellchecker (push) Has been cancelled
updated
2025-12-11 19:03:17 +05:30

70 lines
1.7 KiB
C++

//========================================================================
//
// WebFont.h
//
// Modify/convert embedded PDF fonts to a form usable by web browsers.
//
// Copyright 2019 Glyph & Cog, LLC
//
//========================================================================
#ifndef WEBFONT_H
#define WEBFONT_H
#include <aconf.h>
#ifdef USE_GCC_PRAGMAS
#pragma interface
#endif
#include "gtypes.h"
#include "GfxFont.h"
class FoFiTrueType;
class FoFiType1C;
class XRef;
//------------------------------------------------------------------------
class WebFont {
public:
WebFont(GfxFont *gfxFontA, XRef *xref);
~WebFont();
// Returns true if the font is, or can be converted to, a TrueType
// font.
GBool canWriteTTF();
// Returns true if the font is, or can be converted to, an OpenType
// font.
GBool canWriteOTF();
// Write a TrueType (.ttf) file to [fontFilePath]. This can only be
// called if canWriteTTF() returns true. Returns true on success.
GBool writeTTF(const char *fontFilePath);
// Write an OpenType (.otf) file to [fontFilePath]. This can only
// be called if canWriteOTF() returns true. Returns true on
// success.
GBool writeOTF(const char *fontFilePath);
private:
Gushort *makeType1CWidths(int *codeToGID, int nCodes, int *nWidths);
Gushort *makeCIDType0CWidths(int *codeToGID, int nCodes, int *nWidths);
Guchar *makeUnicodeCmapTable(int *codeToGID, int nCodes,
int *unicodeCmapLength);
int *makeUnicodeToGID(int *codeToGID, int nCodes, int *unicodeToGIDLength);
GfxFont *gfxFont;
char *fontBuf;
int fontLength;
FoFiTrueType *ffTrueType;
FoFiType1C *ffType1C;
GBool isOpenType;
};
#endif