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

📄 xref.h

📁 source code: Covert TXT to PDF
💻 H
字号:
//========================================================================//// XRef.h//// Copyright 1996-2002 Glyph & Cog, LLC////========================================================================#ifndef XREF_H#define XREF_H#include <aconf.h>#ifdef USE_GCC_PRAGMAS#pragma interface#endif#include "gtypes.h"#include "Object.h"class Dict;class Stream;//------------------------------------------------------------------------// XRef//------------------------------------------------------------------------struct XRefEntry {  Guint offset;  int gen;  GBool used;};class XRef {public:  // Constructor.  Read xref table from stream.  XRef(BaseStream *strA, GString *ownerPassword, GString *userPassword);  // Destructor.  ~XRef();  // Is xref table valid?  GBool isOk() { return ok; }  // Get the error code (if isOk() returns false).  int getErrorCode() { return errCode; }  // Is the file encrypted?#ifndef NO_DECRYPTION  GBool isEncrypted() { return encrypted; }#else  GBool isEncrypted() { return gFalse; }#endif  // Check various permissions.  GBool okToPrint(GBool ignoreOwnerPW = gFalse);  GBool okToChange(GBool ignoreOwnerPW = gFalse);  GBool okToCopy(GBool ignoreOwnerPW = gFalse);  GBool okToAddNotes(GBool ignoreOwnerPW = gFalse);  // Get catalog object.  Object *getCatalog(Object *obj) { return fetch(rootNum, rootGen, obj); }  // Fetch an indirect reference.  Object *fetch(int num, int gen, Object *obj);  // Return the document's Info dictionary (if any).  Object *getDocInfo(Object *obj);  Object *getDocInfoNF(Object *obj);  // Return the number of objects in the xref table.  int getNumObjects() { return size; }  // Return the offset of the last xref table.  Guint getLastXRefPos() { return lastXRefPos; }  // Return the catalog object reference.  int getRootNum() { return rootNum; }  int getRootGen() { return rootGen; }  // Get end position for a stream in a damaged file.  // Returns false if unknown or file is not damaged.  GBool getStreamEnd(Guint streamStart, Guint *streamEnd);  // Direct access.  int getSize() { return size; }  XRefEntry *getEntry(int i) { return &entries[i]; }  Object *getTrailerDict() { return &trailerDict; }private:  BaseStream *str;		// input stream  Guint start;			// offset in file (to allow for garbage				//   at beginning of file)  XRefEntry *entries;		// xref entries  int size;			// size of <entries> array  int rootNum, rootGen;		// catalog dict  GBool ok;			// true if xref table is valid  int errCode;			// error code (if <ok> is false)  Object trailerDict;		// trailer dictionary  Guint lastXRefPos;		// offset of last xref table  Guint *streamEnds;		// 'endstream' positions - only used in				//   damaged files  int streamEndsLen;		// number of valid entries in streamEnds#ifndef NO_DECRYPTION  GBool encrypted;		// true if file is encrypted  int encVersion;		// encryption algorithm  int encRevision;		// security handler revision  int keyLength;		// length of key, in bytes  int permFlags;		// permission bits  Guchar fileKey[16];		// file decryption key  GBool ownerPasswordOk;	// true if owner password is correct#endif  Guint readTrailer();  GBool readXRef(Guint *pos);  GBool constructXRef();  GBool checkEncrypted(GString *ownerPassword, GString *userPassword);  Guint strToUnsigned(char *s);};#endif

⌨️ 快捷键说明

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