You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.1 KiB
156 lines
3.1 KiB
/*+
|
|
|
|
Copyright (c) 1996 Adobe Systems Incorporated
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
cjkfonts.h
|
|
|
|
Abstract:
|
|
|
|
Convert CJK AFMs to NTMs.
|
|
|
|
Environment:
|
|
|
|
Windows NT PostScript driver: makentf utility.
|
|
|
|
Revision History:
|
|
|
|
1/13/96 -rkiesler-
|
|
Wrote it.
|
|
-*/
|
|
|
|
//
|
|
// Various #defines.
|
|
//
|
|
#define NUM_CJK_CHAR_ORDERINGS 4
|
|
|
|
//
|
|
// Some defines to make stuff read nice.
|
|
//
|
|
#define H_CMAP 0 // Horizontal variant CMAP info
|
|
#define V_CMAP 1 // Index of Vertical variant CMAP info
|
|
#define NUM_VARIANTS V_CMAP + 1 // Total number of variants
|
|
|
|
//
|
|
// CMap specific tokens
|
|
//
|
|
#define CMAP_NAME_TOK "/CMapName"
|
|
#define CID_RANGE_TOK "begincidrange"
|
|
#define DSC_EOF_TOK "%%EOF"
|
|
|
|
//
|
|
// CJK specific data structures.
|
|
//
|
|
typedef struct _CMAPRANGE
|
|
{
|
|
ULONG CIDStrt;
|
|
USHORT ChCodeStrt;
|
|
USHORT cChars;
|
|
} CMAPRANGE, *PCMAPRANGE;
|
|
|
|
typedef struct _CMAP
|
|
{
|
|
ULONG cRuns;
|
|
ULONG cChars;
|
|
CMAPRANGE CMapRange[1];
|
|
} CMAP, *PCMAP;
|
|
|
|
//
|
|
// Macros for parsing a Postscript CMap.
|
|
//
|
|
#define GET_NUM_CID_RANGES(pToken, numRanges) \
|
|
while (!IS_WHTSPACE(pToken)) \
|
|
{ \
|
|
pToken--; \
|
|
} \
|
|
while (IS_WHTSPACE(pToken)) \
|
|
{ \
|
|
pToken--; \
|
|
} \
|
|
while (!IS_WHTSPACE(pToken)) \
|
|
{ \
|
|
pToken--; \
|
|
} \
|
|
pToken++; \
|
|
numRanges = atoi(pToken)
|
|
|
|
ULONG
|
|
CreateCJKGlyphSets(
|
|
PBYTE *pColCMaps,
|
|
PBYTE *pUniCMaps,
|
|
PGLYPHSETDATA *pGlyphSets,
|
|
PWINCODEPAGE pWinCodePage,
|
|
PULONG *pUniPsTbl
|
|
);
|
|
|
|
BOOLEAN
|
|
NumUV2CIDRuns(
|
|
PBYTE pCMapFile,
|
|
PULONG pcRuns,
|
|
PULONG pcChars
|
|
);
|
|
|
|
BOOLEAN
|
|
BuildUV2CIDMap(
|
|
PBYTE pCMapFile,
|
|
PCMAP pCMap
|
|
);
|
|
|
|
BOOLEAN
|
|
NumUV2CCRuns(
|
|
PBYTE pFile,
|
|
PULONG pcRuns,
|
|
PULONG pcChars
|
|
);
|
|
|
|
BOOLEAN
|
|
BuildUV2CCMap(
|
|
PBYTE pFile,
|
|
PCMAP pCMap
|
|
);
|
|
|
|
int __cdecl
|
|
CmpCMapRunsCID(
|
|
const VOID *p1,
|
|
const VOID *p2
|
|
);
|
|
|
|
int __cdecl
|
|
CmpCMapRunsChCode(
|
|
const VOID *p1,
|
|
const VOID *p2
|
|
);
|
|
|
|
int __cdecl
|
|
FindCIDRun(
|
|
const VOID *p1,
|
|
const VOID *p2
|
|
);
|
|
|
|
int __cdecl
|
|
FindChCodeRun(
|
|
const VOID *p1,
|
|
const VOID *p2
|
|
);
|
|
|
|
CHSETSUPPORT
|
|
IsCJKFont(
|
|
PBYTE pAFM
|
|
);
|
|
|
|
BOOLEAN
|
|
IsVGlyphSet(
|
|
PGLYPHSETDATA pGlyphSetData
|
|
);
|
|
|
|
BOOLEAN
|
|
BIsCloneFont(
|
|
PBYTE pAFM
|
|
);
|
|
|
|
BOOLEAN
|
|
IsCIDFont(
|
|
PBYTE pAFM
|
|
);
|