⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 charcodetounicode.h

📁 这是一个做pdf阅读器的源代码文件,是大家学习阅读器资料的很好参考
💻 H
字号:
//========================================================================//// CharCodeToUnicode.h//// Mapping from character codes to Unicode.//// Copyright 2001-2003 Glyph & Cog, LLC////========================================================================#ifndef CHARCODETOUNICODE_H#define CHARCODETOUNICODE_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "CharTypes.h"#if MULTITHREADED#include "GMutex.h"#endifstruct CharCodeToUnicodeString;//------------------------------------------------------------------------class CharCodeToUnicode {public:  // Read the CID-to-Unicode mapping for <collection> from the file  // specified by <fileName>.  Sets the initial reference count to 1.  // Returns NULL on failure.  static CharCodeToUnicode *parseCIDToUnicode(GString *fileName,					      GString *collection);  // Create a Unicode-to-Unicode mapping from the file specified by  // <fileName>.  Sets the initial reference count to 1.  Returns NULL  // on failure.  static CharCodeToUnicode *parseUnicodeToUnicode(GString *fileName);  // Create the CharCode-to-Unicode mapping for an 8-bit font.  // <toUnicode> is an array of 256 Unicode indexes.  Sets the initial  // reference count to 1.  static CharCodeToUnicode *make8BitToUnicode(Unicode *toUnicode);  // Parse a ToUnicode CMap for an 8- or 16-bit font.  static CharCodeToUnicode *parseCMap(GString *buf, int nBits);  // Parse a ToUnicode CMap for an 8- or 16-bit font, merging it into  // <this>.  void mergeCMap(GString *buf, int nBits);  ~CharCodeToUnicode();  void incRefCnt();  void decRefCnt();  // Return true if this mapping matches the specified <tagA>.  GBool match(GString *tagA);  // Set the mapping for <c>.  void setMapping(CharCode c, Unicode *u, int len);  // Map a CharCode to Unicode.  int mapToUnicode(CharCode c, Unicode *u, int size);  // Return the mapping's length, i.e., one more than the max char  // code supported by the mapping.  CharCode getLength() { return mapLen; }private:  void parseCMap1(int (*getCharFunc)(void *), void *data, int nBits);  void addMapping(CharCode code, char *uStr, int n, int offset);  CharCodeToUnicode(GString *tagA);  CharCodeToUnicode(GString *tagA, Unicode *mapA,		    CharCode mapLenA, GBool copyMap,		    CharCodeToUnicodeString *sMapA,		    int sMapLenA, int sMapSizeA);  GString *tag;  Unicode *map;  CharCode mapLen;  CharCodeToUnicodeString *sMap;  int sMapLen, sMapSize;  int refCnt;#if MULTITHREADED  GMutex mutex;#endif};//------------------------------------------------------------------------class CharCodeToUnicodeCache {public:  CharCodeToUnicodeCache(int sizeA);  ~CharCodeToUnicodeCache();  // Get the CharCodeToUnicode object for <tag>.  Increments its  // reference count; there will be one reference for the cache plus  // one for the caller of this function.  Returns NULL on failure.  CharCodeToUnicode *getCharCodeToUnicode(GString *tag);  // Insert <ctu> into the cache, in the most-recently-used position.  void add(CharCodeToUnicode *ctu);private:  CharCodeToUnicode **cache;  int size;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -