Foxit PDF SDK
fs_basictypes.h
浏览该文件的文档.
1 
16 #ifndef FS_BASIC_TYPES_H_
17 #define FS_BASIC_TYPES_H_
18 
19 #include <cstddef>
20 #include <fstream>
21 #include <iostream>
22 #include <string>
23 #include <memory>
24 #include <vector>
25 #include <exception>
26 #include <cmath>
27 #include <cfloat>
28 #include <stdlib.h>
29 #include <string.h>
30 
31 #include "common/fxcrt/fx_basic.h"
34 
35 #if defined(_WIN32) || defined(_WIN64)
36 #include <Windows.h>
37 #endif // defined(_WIN32) || defined(_WIN64)
38 
39 #define FSDK_DEFINE_ARRAY(ArrayName, Type) \
40 class ArrayName : public Object { \
41  public: \
42 \
43  ArrayName(); \
44 \
45  ~ArrayName(); \
46 \
50  ArrayName(const ArrayName& other); \
51 \
56  ArrayName& operator = (const ArrayName& other); \
57 \
61  size_t GetSize() const; \
62 \
67  Type GetAt(size_t index) const; \
68 \
73  Type& operator[](size_t index) const; \
74 \
79  void Add(const Type& element); \
80 \
86  void RemoveAt(size_t index); \
87 \
94  void InsertAt(size_t index, const Type& element); \
95 \
99  void RemoveAll(); \
100  \
101  private: \
102  void* data_; \
103 };
104 
105 namespace std {
106 class exception;
107 }
108 
116 inline CFX_ByteString FX_UTF8Encode(const wchar_t* wstr) {
118 }
119 
128 inline bool operator==(const char* str1, const CFX_ByteString& str2) {
129  return str2.Equal(str1);
130 }
131 
140 inline bool operator!=(const char* str1, const CFX_ByteString& str2) {
141  return !str2.Equal(str1);
142 }
143 
152 inline std::ostream& operator<<(std::ostream& os, const CFX_ByteString& str) {
153  return os << (const char*) str;
154 }
155 
164 inline std::wostream& operator<<(std::wostream& os, const CFX_WideString& str) {
165  return os << (const wchar_t*) str;
166 }
167 
168 #ifndef TRUE
169 
170 #define TRUE true
171 #endif
172 
173 #ifndef FALSE
174 
175 #define FALSE false
176 #endif
177 
178 #ifndef NULL
179 
180 #define NULL ((void*)0)
181 #endif
182 
188 namespace foxit {
190 typedef FX_INT64 int64;
192 typedef FX_UINT64 uint64;
194 typedef FX_INT32 int32;
198 typedef FX_INT16 int16;
202 typedef FX_INT8 int8;
204 typedef FX_UINT8 uint8;
210 typedef uint32 ARGB;
212 typedef uint32 RGB;
214 typedef void* FS_HANDLE;
215 
216 #if defined(_WIN32) || defined(_WIN64)
217 
218 typedef void* FX_HWND;
219 #endif
220 
221 typedef CFX_Object Object;
226 
228 FSDK_DEFINE_ARRAY(WStringArray, WString)
230 FSDK_DEFINE_ARRAY(StringArray, String)
231 
237 typedef enum _ErrorCode {
438 } ErrorCode;
439 
440 
447 
449 class Base : public Object {
450  public:
456  FS_HANDLE Handle() const {
457  return handle_;
458  }
459  virtual ~Base(){}
460 
461  protected:
462  explicit Base(FS_HANDLE handle = NULL) : handle_(handle) {}
463  FS_HANDLE handle_;
464 };
465 
471 typedef PointF Offset;
475 typedef FX_RECT RectI;
480 
482 class DateTime : public Object {
483  public:
489  static DateTime GetUTCTime();
495  static DateTime GetLocalTime();
496 
515  : year(year)
516  , month(month)
517  , day(day)
518  , hour(hour)
519  , minute(minute)
520  , second(second)
524 
527  : year(0)
528  , month(0)
529  , day(0)
530  , hour(0)
531  , minute(0)
532  , second(0)
533  , milliseconds(0)
534  , utc_hour_offset(0)
535  , utc_minute_offset(0) {}
541  explicit DateTime(const FXCRT_DATETIMEZONE& time);
547  DateTime(const DateTime& dt)
548  : year(dt.year)
549  , month(dt.month)
550  , day(dt.day)
551  , hour(dt.hour)
552  , minute(dt.minute)
553  , second(dt.second)
557 
566  year = dt.year;
567  month = dt.month;
568  day = dt.day;
569  hour = dt.hour;
570  minute = dt.minute;
571  second = dt.second;
575  return *this;
576  }
578  operator FXCRT_DATETIMEZONE() const;
579 
580 #if (defined(_WIN32) || defined(_WIN64)) && !defined(SWIG)
581 
586  explicit DateTime(const SYSTEMTIME& systime)
587  : year(systime.wYear)
588  , month(systime.wMonth)
589  , day(systime.wDay)
590  , hour(systime.wHour)
591  , minute(systime.wMinute)
592  , second(systime.wSecond)
593  , milliseconds(systime.wMilliseconds)
594  , utc_hour_offset(0)
595  , utc_minute_offset(0) {}
596 
598  operator SYSTEMTIME() const;
599 #endif // defined(_WIN32) || defined(_WIN64)
600 
621  this->year = year;
622  this->month = month;
623  this->day = day;
624  this->hour = hour;
625  this->minute = minute;
626  this->second = second;
627  this->milliseconds = milliseconds;
628  this->utc_hour_offset = utc_hour_offset;
629  this->utc_minute_offset = utc_minute_offset;
630  }
631 
639  bool IsValid() const;
640 
648  bool operator == (const DateTime& datetime) const;
656  bool operator != (const DateTime& datetime) const;
664  bool operator > (const DateTime& datetime) const;
674  bool operator >= (const DateTime& datetime) const;
682  bool operator < (const DateTime& datetime) const;
693  bool operator <= (const DateTime& datetime) const;
694 
701 
707  DateTime& ToUTCTime();
708 
731 
734 
735 };
736 
737 //#if !defined(_SWIG_ANDROID_) && !defined(_SWIG_IOS_)
738 
740 class Exception : public std::exception , public Object {
741  public:
752  Exception(const char* file_name, int line_number, const char* function_name, ErrorCode error_code);
753 
759  Exception(const Exception& exception)
760  : error_code_(exception.error_code_)
761  , error_message_(exception.error_message_)
762  , name_(exception.name_) {}
763 
771  Exception& operator = (const Exception& exception) {
772  error_code_ = exception.error_code_;
773  error_message_ = exception.error_message_;
774  return *this;
775  }
776 
778  ~Exception() throw() {}
779 
786  return error_code_;
787  }
788 
795  {
796  return error_message_;
797  }
798 
804  String GetName() const
805  { return name_; }
806 
807  private:
808  ErrorCode error_code_;
809  String error_message_;
810  String name_;
811 };
812 
813 #define throw(Exception)
814 //#endif // !defined(_SWIG_ANDROID_) && !defined(_SWIG_IOS_)
815 
816 #if __cpluscplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1700)
817 #define FS_FINAL final
818 #else
819 #define FS_FINAL
820 #endif
821 
822 #if __cpluscplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
823 #define FS_OVERRIDE override
824 #else
825 #define FS_OVERRIDE
826 #endif
827 
828 } // namespace foxit
829 #endif
DateTime & operator=(const DateTime &dt)
赋值操作符。
Definition: fs_basictypes.h:565
无效或不正确的状态。
Definition: fs_basictypes.h:290
ErrorCode GetErrCode() const
获取错误代码。
Definition: fs_basictypes.h:785
int16 utc_hour_offset
时区小时。有效范围:从-12到12。
Definition: fs_basictypes.h:730
String GetMessage() const
获取错误消息字符串。
Definition: fs_basictypes.h:794
无效密码。通常,在加载带密码的 PDF 文档时可能出现此错误。 遇到此错误时,用户应使用正确的密码重新加载文档。
Definition: fs_basictypes.h:248
(仅限合规)无法找到或打开合规资源文件。请检查合规资源文件夹 和该文件夹中的文件是否有效。
Definition: fs_basictypes.h:361
DateTime & ToLocalTime()
将当前对象转换为本地时间。
无"转换"模块权限。
Definition: fs_basictypes.h:383
(仅适用于 ConnectedPDF)无法将 ACL 设置到 ConnectedPDF 服务器。
Definition: fs_basictypes.h:308
(仅适用于 ConnectedPDF)无法从 ConnectedPDF 服务器获取客户端 ID。
Definition: fs_basictypes.h:320
PointF Offset
偏移信息,浮点型。
Definition: fs_basictypes.h:471
格式无效。对于文件,这也可能意味着文件已损坏。
Definition: fs_basictypes.h:243
CFX_Object Object
对象类型。
Definition: fs_basictypes.h:221
(仅限合规)使用无效的解锁代码初始化合规引擎。
Definition: fs_basictypes.h:338
DateTime(const DateTime &dt)
带另一个日期时间对象的构造函数。
Definition: fs_basictypes.h:547
uint16 minute
分钟。有效范围:从0到59。
Definition: fs_basictypes.h:718
无"表格制作器"模块权限。
Definition: fs_basictypes.h:401
(仅限合规)初始化合规引擎失败。
Definition: fs_basictypes.h:340
void Set(uint16 year, uint16 month, uint16 day, uint16 hour, uint16 minute, uint16 second, uint16 milliseconds, int16 utc_hour_offset, uint16 utc_minute_offset)
设置值。
Definition: fs_basictypes.h:618
(仅限LTV)检查DTS失败。
Definition: fs_basictypes.h:350
无"RMS"模块权限。
Definition: fs_basictypes.h:373
FX_DWORD FX_UINT32
无符号32位整数。
Definition: fx_system.h:767
当前对象的数据无效。
Definition: fs_basictypes.h:284
wchar_t const * FX_LPCWSTR
指向常量Unicode字符的指针。
Definition: fx_system.h:736
无"Office2PDF"模块权限。
Definition: fs_basictypes.h:421
FX_UINT8 uint8
无符号 8 位整数。
Definition: fs_basictypes.h:204
Definition: fs_basictypes.h:228
Definition: fs_basictypes.h:482
(仅限OCR)磁盘空间不足。
Definition: fs_basictypes.h:330
bool operator<(const DateTime &datetime) const
小于操作符。
文件或文件夹路径不存在。
Definition: fs_basictypes.h:334
uint16 hour
小时。有效范围:从0到23。
Definition: fs_basictypes.h:716
无"PDF2Office"模块权限。
Definition: fs_basictypes.h:407
DateTime(uint16 year, uint16 month, uint16 day, uint16 hour, uint16 minute, uint16 second, uint16 milliseconds, int16 utc_hour_offset, uint16 utc_minute_offset)
带参数的构造函数。
Definition: fs_basictypes.h:512
uint32 RGB
RGB 颜色类型,24 位,((b) | ((g) << 8) | ((r) << 16)))
Definition: fs_basictypes.h:212
uint16 milliseconds
毫秒。有效范围:从0到999。PDF标准目前不支持,如果不适用可以省略。
Definition: fs_basictypes.h:724
Definition: fx_coordinates.h:30
(仅适用于 ConnectedPDF)输入的 ConnectedPDF DRM 包装文档无效。
Definition: fs_basictypes.h:318
uint16 year
年份。应该是四位数字,如2014。
Definition: fs_basictypes.h:710
时间戳服务器管理器尚未设置默认服务器。
Definition: fs_basictypes.h:363
无"XFA"模块权限。
Definition: fs_basictypes.h:369
MIP引擎:根据ID获取扩展标签信息失败。
Definition: fs_basictypes.h:429
文件无法找到或无法打开。
Definition: fs_basictypes.h:241
(仅适用于 ConnectedPDF)无法连接到 ConnectedPDF 服务器。
Definition: fs_basictypes.h:294
uint16 month
月份。有效范围:从1到12。
Definition: fs_basictypes.h:712
(仅限LTV)加载DSS失败。
Definition: fs_basictypes.h:352
错误句柄。
Definition: fs_basictypes.h:250
PDF 文档被某些不受支持的安全处理程序加密。
Definition: fs_basictypes.h:267
无"合规"模块权限。
Definition: fs_basictypes.h:379
Exception & operator=(const Exception &exception)
赋值操作符。
Definition: fs_basictypes.h:771
宽字符串类
Definition: fx_string.h:1457
std::ostream & operator<<(std::ostream &os, const CFX_ByteString &str)
将字节字符串输出到 std::ostream。
Definition: fs_basictypes.h:152
CFX_WideString WString
宽字符串。
Definition: fs_basictypes.h:223
MIP引擎:添加保护引擎失败。
Definition: fs_basictypes.h:425
void * FX_POSITION
用于表示集合中元素位置的值。
Definition: fx_system.h:658
无"高级编辑"模块权限。
Definition: fs_basictypes.h:405
无法使用当前默认时间戳服务器。请检查默认时间戳服务器是否可用。
Definition: fs_basictypes.h:365
(仅适用于 ConnectedPDF)当前用户无权打开 ConnectedPDF DRM 文档。
Definition: fs_basictypes.h:298
无"3D"模块权限。
Definition: fs_basictypes.h:415
FX_UINT64 uint64
无符号 64 位整数。
Definition: fs_basictypes.h:192
(仅适用于 ConnectedPDF)加载的文档不是 ConnectedPDF DRM 文档。
Definition: fs_basictypes.h:292
无"布局识别"模块权限。
Definition: fs_basictypes.h:391
(仅适用于 ConnectedPDF)无法从 ConnectedPDF 服务器获取用户令牌。
Definition: fs_basictypes.h:322
bool operator==(const DateTime &datetime) const
相等操作符。
(仅限ConnectedPDF)响应数据中有错误。
Definition: fs_basictypes.h:433
uint16 day
月份中的日期。有效范围:从1到31。
Definition: fs_basictypes.h:714
(仅限OCR)OCR引擎尚未成功初始化。
Definition: fs_basictypes.h:328
日期和时间结构。
Definition: fx_process.h:95
Definition: fs_basictypes.h:740
(仅限Office转PDF)当前系统未安装Microsoft Office。
Definition: fs_basictypes.h:387
无"优化器"模块权限。
Definition: fs_basictypes.h:381
参数错误:函数的任何输入参数值无效。
Definition: fs_basictypes.h:261
static DateTime GetUTCTime()
获取 UTC 时间。
当前对象尚未加载。
Definition: fs_basictypes.h:288
(仅限DWG转PDF)未找到ODA引擎。
Definition: fs_basictypes.h:399
无"ConnectedPDF"模块权限。
Definition: fs_basictypes.h:367
使用无效许可证初始化 Foxit PDF SDK 库。
Definition: fs_basictypes.h:259
int FX_INT32
32位有符号整数。
Definition: fx_system.h:683
bool operator >(const DateTime &datetime) const
大于操作符。
(仅适用于 ConnectedPDF)无法从 ConnectedPDF 服务器移除安全性。
Definition: fs_basictypes.h:304
int FX_STRSIZE
字符串大小限制为 2^31-1。
Definition: fx_string.h:35
(仅限OFD)OFD引擎尚未成功初始化。
Definition: fs_basictypes.h:411
FS_HANDLE Handle() const
获取当前对象的句柄。
Definition: fs_basictypes.h:456
(仅限ConnectedPDF)输入的ACL无效。
Definition: fs_basictypes.h:324
bool operator==(const char *str1, const CFX_ByteString &str2)
检查两个字节字符串是否相等。
Definition: fs_basictypes.h:128
(仅限Office转PDF)Office COM尚未成功初始化。
Definition: fs_basictypes.h:385
输入对象或当前对象的类型无效。
Definition: fs_basictypes.h:273
(仅限HTML转PDF)转换的URL在黑名单中。
Definition: fs_basictypes.h:409
无"DWG2PDF"模块权限。
Definition: fs_basictypes.h:403
(仅适用于 ConnectedPDF)无法将 ConnectedPDF DRM 文档信息上传到 ConnectedPDF 服务器。
Definition: fs_basictypes.h:316
数据未准备就绪。通常用作异常错误代码 当以异步方式加载文档时。
Definition: fs_basictypes.h:282
内容尚未解析。通常,这表示 PDF 页面尚未解析。
Definition: fs_basictypes.h:269
证书错误:PDF 文档已通过数字证书加密 但当前用户没有正确的证书。
Definition: fs_basictypes.h:255
CFX_FloatRect RectF
矩形,浮点型。
Definition: fs_basictypes.h:473
uint32 ARGB
ARGB 颜色类型,32 位,((b) | ((g) << 8) | ((r) << 16)) | ((a) << 24)
Definition: fs_basictypes.h:210
#define FXSYS_wcslen
获取宽字符字符串的长度。
Definition: fx_system.h:1028
ErrorCode
错误代码的枚举。
Definition: fs_basictypes.h:237
CFX_ByteString FX_UTF8Encode(const wchar_t *wstr)
将宽字符串转换为 UTF-8 编码字节字符串。
Definition: fs_basictypes.h:116
signed char FX_INT8
有符号8位整数。
Definition: fx_system.h:661
CFX_PointF PointF
点信息,浮点型。
Definition: fs_basictypes.h:469
(仅适用于 ConnectedPDF)加载的文档已经是 ConnectedPDF 文档。
Definition: fs_basictypes.h:310
(仅限Office转PDF)未找到WPS office引擎。
Definition: fs_basictypes.h:393
CFX_ArrayTemplate< int32 > Int32Array
有符号整数值数组。
Definition: fs_basictypes.h:444
(仅适用于 ConnectedPDF)加载的文档已经是 ConnectedPDF DRM 文档。
Definition: fs_basictypes.h:312
发生任何未知状态。
Definition: fs_basictypes.h:277
(仅适用于 ConnectedPDF)当前设备被限制打开 ConnectedPDF DRM 文档。
Definition: fs_basictypes.h:302
bool operator<=(const DateTime &datetime) const
小于或等于操作符。
时间戳服务器管理器尚未成功初始化。
Definition: fs_basictypes.h:342
bool operator >=(const DateTime &datetime) const
大于或等于操作符。
无"OCR"模块权限。
Definition: fs_basictypes.h:375
FX_POSITION POSITION
用于表示集合中元素位置的值。
Definition: fs_basictypes.h:206
Exception(const char *file_name, int line_number, const char *function_name, ErrorCode error_code)
带参数的构造函数。
MIP引擎:添加UPE引擎失败。
Definition: fs_basictypes.h:423
FX_INT64 int64
有符号 64 位整数。
Definition: fs_basictypes.h:190
(用于PDF优化器)存在一些非图像类型的对象。
Definition: fs_basictypes.h:437
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:196
(仅限合规)合规引擎尚未成功初始化。
Definition: fs_basictypes.h:336
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:214
CFX_ByteString String
字节字符串。
Definition: fs_basictypes.h:225
(仅限LTV)LTV验证模式尚未设置。
Definition: fs_basictypes.h:344
FX_INT64 FILESIZE
文件大小。直接支持大文件
Definition: fs_basictypes.h:208
进程和线程相关定义和类的头文件。
(仅限ConnectedPDF)输入的客户端ID无效。
Definition: fs_basictypes.h:326
(仅限HTML2PDF)加载网页时发生超时。
Definition: fs_basictypes.h:435
FX_INT8 int8
有符号 8 位整数。
Definition: fs_basictypes.h:202
unsigned short FX_UINT16
无符号16位整数。
Definition: fx_system.h:673
(仅限OCR)OCR模块试用期已结束。
Definition: fs_basictypes.h:332
(仅限签名)正在操作的签名需要被签名。
Definition: fs_basictypes.h:356
CFX_ArrayTemplate< uint32 > UInt32Array
无符号整数值数组。
Definition: fs_basictypes.h:446
Definition: fx_coordinates.h:596
CFX_Matrix Matrix
矩阵信息,浮点型。
Definition: fs_basictypes.h:467
DateTime()
构造函数。
Definition: fs_basictypes.h:526
unsigned char FX_UINT8
无符号8位整数。
Definition: fx_system.h:663
FX_INT32 int32
有符号 32 位整数。
Definition: fs_basictypes.h:194
新数据与现有数据冲突。
Definition: fs_basictypes.h:275
Definition: fs_basictypes.h:449
(仅适用于 ConnectedPDF)无法将 ConnectedPDF 文档信息上传到 ConnectedPDF 服务器。
Definition: fs_basictypes.h:314
Definition: fs_basictypes.h:230
无"无障碍"模块权限。
Definition: fs_basictypes.h:397
String GetName() const
获取错误代码的字符串。
Definition: fs_basictypes.h:804
bool operator !=(const DateTime &datetime) const
不相等操作符。
uint16 second
秒。有效范围:从0到60。60表示闰秒。
Definition: fs_basictypes.h:720
uint16 utc_minute_offset
时区分钟。有效范围:从0到59。
Definition: fs_basictypes.h:733
FX_INT16 int16
有符号 16 位整数。
Definition: fs_basictypes.h:198
Foxit命名空间。
Definition: fs_taggedpdf.h:27
XFA 加载错误。
Definition: fs_basictypes.h:286
short FX_INT16
有符号16位整数。
Definition: fx_system.h:671
(仅适用于 ConnectedPDF)无法从 ConnectedPDF 服务器获取 ACL。
Definition: fs_basictypes.h:306
无"比较"模块权限。
Definition: fs_basictypes.h:377
Exception(const Exception &exception)
带另一个异常对象的构造函数。
Definition: fs_basictypes.h:759
无"OFD"模块权限。
Definition: fs_basictypes.h:413
无效的正则表达式。
Definition: fs_basictypes.h:417
字节字符串类
Definition: fx_string.h:317
FX_UINT16 uint16
无符号 16 位整数。
Definition: fs_basictypes.h:200
(仅限Office转PDF)未找到LibreOffice引擎。
Definition: fs_basictypes.h:395
基本数据类的头文件。
static DateTime GetLocalTime()
获取本地时间。
(仅限LTV)加载DTS失败。
Definition: fs_basictypes.h:354
无"Print2PDF"模块权限。
Definition: fs_basictypes.h:431
#define NULL
空指针值。
Definition: fx_system.h:792
bool operator!=(const char *str1, const CFX_ByteString &str2)
检查两个字节字符串是否不相等。
Definition: fs_basictypes.h:140
CFX_ArrayTemplate< PointF > PointFArray
PointF对象数组。
Definition: fs_basictypes.h:479
Definition: fx_coordinates.h:1076
成功,无错误发生。
Definition: fs_basictypes.h:239
CFX_ArrayTemplate< RectF > RectFArray
RectF对象数组。
Definition: fs_basictypes.h:477
bool Equal(FX_BSTR str) const
检查当前字符串是否等于另一个字符串。区分大小写。
发生任何未知错误。
Definition: fs_basictypes.h:257
MIP引擎:创建保护处理程序失败。
Definition: fs_basictypes.h:427
#define FX_FILESIZE
直接支持大文件。
Definition: fx_stream.h:155
找不到预期的数据或对象。
Definition: fs_basictypes.h:271
坐标系统的头文件。
(仅适用于 ConnectedPDF)输入的用户令牌无效。
Definition: fs_basictypes.h:296
没有文档操作权限。
Definition: fs_basictypes.h:419
无"编辑"模块权限。
Definition: fs_basictypes.h:371
(仅适用于 ConnectedPDF)当前用户的权限已过期。
Definition: fs_basictypes.h:300
(仅限LTV)LTV的撤销回调尚未设置。
Definition: fs_basictypes.h:346
~Exception()
析构函数。
Definition: fs_basictypes.h:778
DateTime & ToUTCTime()
将当前对象转换为UTC时间。
(仅限LTV)切换PDF版本失败。
Definition: fs_basictypes.h:348
发生内存不足错误。
Definition: fs_basictypes.h:265
bool IsValid() const
检查当前对象是否有效。
CFX_ArrayTemplate< float > FloatArray
浮点值数组。
Definition: fs_basictypes.h:442
(仅限Excel转PDF)Excel文档没有任何内容,无法转换为PDF文件。
Definition: fs_basictypes.h:389
FX_RECT RectI
矩形,整数型。
Definition: fs_basictypes.h:475
Definition: fx_coordinates.h:771
某些类型不受支持。
Definition: fs_basictypes.h:263