Foxit PDF SDK
FSLibrary类 参考

继承自 NSObject .

类方法

(BOOL) + addExternalFontPath:
 添加外部字体路径。
更多...
 
(void) + destroy
 释放Foxit PDF SDK库分配的所有资源。
更多...
 
(BOOL) + enableJavaScript:
 启用或禁用PDF的JavaScript。
更多...
 
(void) + enableThreadSafety:
 启用线程安全。
更多...
 
(NSString *) + executeJavaScript:
 执行javascript。
更多...
 
(FSErrorCode) + flushLog
 刷新日志文件。
更多...
 
(FSRenderConfig *) + getRenderConfig
 获取渲染配置。
更多...
 
(NSString *) + getVersion
 获取当前Foxit PDF SDK库的版本。
更多...
 
(BOOL) + hasModuleLicenseRight:
 检查用户是否有权在当前使用的许可证信息中使用Foxit PDF SDK的指定模块 (用于初始化Foxit PDF SDK)。
更多...
 
(FSErrorCode) + initialize:key:
 使用有效的许可证信息初始化Foxit PDF SDK库。
更多...
 
(FSErrorCode) + initializeWithJSXFAThreadsafety:key:is_optimize_memory:enable_js_xfa_threadsafety:
 使用有效的许可证信息初始化Foxit PDF SDK库。
更多...
 
(void) + matchExternalFontsOnly:
 是否只匹配外部指定路径。
更多...
 
(BOOL) + registerSecurityCallback:callback:
 向Foxit PDF SDK注册 FSSecurityCallback 对象用于解密具有特殊加密过滤器的PDF。
更多...
 
(BOOL) + registerSignatureCallback:sub_filter:signature_callback:
 向Foxit PDF SDK注册第三方 FSSignatureCallback 对象用于签名和验证签名, 以及回调的过滤器和子过滤器名称。
更多...
 
(void) + registerXFAAppProviderCallback:
 向Foxit PDF SDK注册 FSAppProviderCallback 对象。
更多...
 
(FSErrorCode) + reinitialize
 重新初始化Foxit PDF SDK库。
更多...
 
(BOOL) + setActionCallback:
 设置 FSActionCallback 对象到Foxit PDF SDK,以帮助执行PDF动作。
更多...
 
(BOOL) + setAnnotIconProviderCallback:
 设置自定义的 FSIconProviderCallback 对象到Foxit PDF SDK。
更多...
 
(BOOL) + setCacheSize:
 设置PDF库缓存大小的上限。
更多...
 
(void) + setDefaultICCProfilesPath:
 设置包含默认ICC配置文件的文件夹路径。
更多...
 
(BOOL) + setDocEventCallback:
 设置 对象到Foxit PDF SDK。
更多...
 
(BOOL) + setFontMapperCallback:
 设置 对象到Foxit PDF SDK。
更多...
 
(void) + setLogFile:
 设置日志文件路径。
更多...
 
(void) + setLogFileWithStreamCallback:
 设置日志文件流。
更多...
 
(BOOL) + setNotifierCallback:
 设置 对象到Foxit PDF SDK。
更多...
 
(void) + setRenderConfig:
 设置渲染配置。
更多...
 
(void) + setRenderTextGamma:
 设置文本渲染的伽马值。
更多...
 
(BOOL) + setTimeStampCallback:
 设置 FSTimeStampCallback 对象到Foxit PDF SDK,以帮助与时间戳服务器交互。
更多...
 
(BOOL) + unregisterSecurityCallback:
 从Foxit PDF SDK中取消注册 FSSecurityCallback 对象。
更多...
 
(void) + unregisterSignatureCallback:sub_filter:
 取消注册与特定过滤器和子过滤器关联的第三方 FSSignatureCallback 对象 从Foxit PDF SDK中。如果有可用的默认签名, 它将与其过滤器和子过滤器值一起恢复。
更多...
 

详细描述

此类表示库管理。 它包含初始化/重新初始化/释放Foxit PDF SDK库的函数,还包含 全局使用的函数。
任何应用程序都应该在调用任何其他Foxit PDF SDK函数之前,通过函数 FSLibrary::initialize:key: 加载Foxit PDF SDK。 当不再需要使用Foxit PDF SDK时,请调用 函数 FSLibrary::destroy 。
当发生某些错误时,Foxit PDF SDK中的函数可能会抛出异常。用户可以捕获这些异常并 检查从 FSErrFile 开始的错误代码值,以了解更多关于发生了什么错误的信息。

注解
在应用程序的生命周期中, FSLibrary::initialize:key: 和 FSLibrary::destroy 应该 成对调用,且只能调用一次。一旦在应用程序的生命周期中调用了 FSLibrary::destroy , 在该应用程序的生命周期中就无法再初始化Foxit PDF SDK。 在调用 FSLibrary::destroy 之前,如果用户想重新初始化Foxit PDF SDK,请参考 函数 FSLibrary::reinitialize 。

函数文档

◆ addExternalFontPath:()

+ (BOOL) addExternalFontPath: (NSString *)  font_path

添加外部字体路径。

参数
[in]font_path外部字体路径。
返回
YES 表示成功,NO 表示失败。

◆ destroy()

+ (void) destroy

释放Foxit PDF SDK库分配的所有资源。

用户应该调用此函数来释放库分配的所有内存块。
一旦调用此函数,Foxit PDF SDK库就无法在应用程序的生命周期中 再次初始化。

返回
无。

◆ enableJavaScript:()

+ (BOOL) enableJavaScript: (BOOL)  enable_javascript

启用或禁用PDF的JavaScript。

PDF的JavaScript默认是启用的。

参数
[in]enable_javascriptYES 表示启用JavaScript,NO 表示 禁用JavaScript。 如果不调用此函数,PDF的JavaScript默认是启用的。
返回
YES 表示成功,NO 表示失败。

◆ enableThreadSafety:()

+ (void) enableThreadSafety: (BOOL)  is_enable_thread_safety

启用线程安全。

从Foxit PDF SDK 11.0开始,默认情况下启用文档级别的线程安全(除Javascript和xfa模块外) 而无需调用此函数。此函数将在未来版本中被弃用。 用户需要确保一个pdf文档同时只被一个线程操作。 如果用户要为javascript和xfa模块启用线程安全,请在调用函数 FSLibrary::initialize:key: 时向 enable_js_xfa_threadsafety 传递 YES。

目前,模块"OCR"不支持线程安全。

参数
[in]is_enable_thread_safety启用线程安全。YES 表示启用线程安全, NO 表示禁用线程安全。
返回
无。

◆ executeJavaScript:()

+ (NSString *) executeJavaScript: (NSString *)  java_script

执行javascript。

参数
需要执行的javascript。
返回
结果错误信息,如语法错误警告、不支持警告和其他错误消息。

◆ flushLog()

+ (FSErrorCode) flushLog

刷新日志文件。

返回
错误代码。

◆ getRenderConfig()

+ (FSRenderConfig *) getRenderConfig

获取渲染配置。

返回
显示当前配置的渲染配置对象。

◆ getVersion()

+ (NSString *) getVersion

获取当前Foxit PDF SDK库的版本。

返回
版本字符串。

◆ hasModuleLicenseRight:()

+ (BOOL) hasModuleLicenseRight: (FSModuleName)  module_name

检查用户是否有权在当前使用的许可证信息中使用Foxit PDF SDK的指定模块 (用于初始化Foxit PDF SDK)。

在Foxit PDF SDK中,一旦库成功初始化,大多数功能都可以使用。 但对于某些特殊功能,只有在许可证信息中定义了指定模块时才能使用。 此函数可用于在使用这些功能之前检查用户是否具有这些特殊模块的权限。

参数
[in]module_name要检查权限的模块名称。请参考从 FSModuleNameConnectedPDF 开始的值,这应该是这些值中的一个。
返回
YES 表示用户有权使用指定模块,NO 表示用户没有 使用指定模块的权限。

◆ initialize:key:()

+ (FSErrorCode) initialize: (NSString *)  sn
key: (NSString *)  key 

使用有效的许可证信息初始化Foxit PDF SDK库。

在应用程序的生命周期中,此函数只能调用一次,并且 应该在调用Foxit PDF SDK中的任何其他函数之前首先调用。
一旦调用了函数 FSLibrary::destroy ,Foxit PDF SDK库就无法 在该应用程序的生命周期中再次初始化。

参数
[in]snSN信息字符串,可以从密钥文件"gsdk_sn.txt"或"rdk_sn.txt"中的"SN="部分获取。
[in]key密钥信息字符串,可以从密钥文件"gsdk_key.txt"或"rdk_key.txt"中的"Sign="部分获取。
返回
FSErrSuccess 表示成功。
FSErrInvalidLicense 表示输入的许可证信息无效。
FSErrParam 表示参数 sn 或 key 是空字符串。
有关错误代码值的更多信息,请参考从 FSErrSuccess 开始的值。

◆ initializeWithJSXFAThreadsafety:key:is_optimize_memory:enable_js_xfa_threadsafety:()

+ (FSErrorCode) initializeWithJSXFAThreadsafety: (NSString *)  sn
key: (NSString *)  key
is_optimize_memory: (BOOL)  is_optimize_memory
enable_js_xfa_threadsafety: (BOOL)  enable_js_xfa_threadsafety 

使用有效的许可证信息初始化Foxit PDF SDK库。

在应用程序的生命周期中,此函数只能调用一次,并且 应该在调用Foxit PDF SDK中的任何其他函数之前首先调用。
一旦调用了函数 FSLibrary::destroy ,Foxit PDF SDK库就无法 在该应用程序的生命周期中再次初始化。

参数
[in]snSN信息字符串,可以从密钥文件"gsdk_sn.txt"或"rdk_sn.txt"中的"SN="部分获取。
[in]key密钥信息字符串,可以从密钥文件"gsdk_key.txt"或"rdk_key.txt"中的"Sign="部分获取。
[in]is_optimize_memory此标志用于尝试通过清理内存碎片来优化内存。 YES 表示清理内存碎片,NO 表示不清理。
[in]enable_js_xfa_threadsafety此标志用于启用JavaScript和XFA模块的线程安全。 YES 表示启用,NO 表示不启用。默认值为 NO。 用户需要确保一个PDF文档一次只由一个线程操作。
返回
FSErrSuccess 表示成功。
FSErrInvalidLicense 表示输入的许可证信息无效。
FSErrParam 表示参数 sn 或 key 是空字符串。
有关错误代码值的更多信息,请参考从 FSErrSuccess 开始的值。

◆ matchExternalFontsOnly:()

+ (void) matchExternalFontsOnly: (BOOL)  only_match

是否只匹配外部指定路径。

参数
[in]only_matchYES 表示只匹配通过 FSLibrary::addExternalFontPath: 添加的外部路径。 默认值:NO。
返回
无。

◆ registerSecurityCallback:callback:()

+ (BOOL) registerSecurityCallback: (NSString *)  filter
callback: (id<FSSecurityCallback>)  callback 

向Foxit PDF SDK注册 FSSecurityCallback 对象用于解密具有特殊加密过滤器的PDF。

当此函数成功时,Foxit PDF SDK将接管输入的安全回调对象, 用户不应再直接释放此回调对象; 否则稍后可能发生意外崩溃。
当取消注册安全回调对象并发现它没有被其他对象使用时, Foxit PDF SDK可能通过回调函数 pdf::SecurityCallback::Release 释放安全回调对象。因此,建议用户在函数 FSLibrary::unregisterSecurityCallback: 之后不再使用安全回调对象。

参数
[in]filter安全回调对象的过滤器名称。这不应该是 nil 或 空字符串。
当用户实现 FSCustomSecurityCallback 的安全回调时, 用户可以指定自己的自定义过滤器字符串, 但需要遵循PDF名称约定。
当用户实现 FSCertificateSecurityCallback 的安全回调时, 过滤器值必须设置为"Adobe.PubSec"。
当用户实现 FSDRMSecurityCallback 的安全回调时, 过滤器值必须设置为"FoxitDRM",否则稍后可能发生错误。
当用户实现 FSRMSSecurityCallback 的安全回调时, 过滤器值必须设置为"MicrosoftIRMServices"或"FoxitRMS",否则稍后可能发生错误。
[in]callbackFSSecurityCallback 对象,由用户实现并基于 回调类 FSSecurityCallback 。用户不应直接继承 FSSecurityCallback ,而应继承其派生类, 如 FSCustomSecurityCallback 、 FSCertificateSecurityCallback 等。
返回
YES 表示成功,NO 表示失败。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义模块"RMS", 这意味着用户无权使用RMS相关功能, 此函数将抛出异常 FSErrNoRMSModuleRight 。

◆ registerSignatureCallback:sub_filter:signature_callback:()

+ (BOOL) registerSignatureCallback: (NSString *)  filter
sub_filter: (NSString *)  sub_filter
signature_callback: (id<FSSignatureCallback>)  signature_callback 

向Foxit PDF SDK注册第三方 FSSignatureCallback 对象用于签名和验证签名, 以及回调的过滤器和子过滤器名称。

Foxit PDF SDK具有默认的签名回调,定义了过滤器和子过滤器:

  • 过滤器:"Adobe.PPKLite",子过滤器:"adbe.pkcs7.detached"
  • 过滤器:"Adobe.PPKLite",子过滤器:"adbe.pkcs7.sha1"
  • 过滤器:"Adobe.PPKLite",子过滤器:"ETSI.CAdES.detached"
  • 过滤器:"Adobe.PPKLite",子过滤器:"ETSI.RFC3161"

如果用户想使用第三方签名回调,请在签名或验证签名过程之前调用此函数。
如果用户通过此函数注册一个与默认签名回调具有相同过滤器和子过滤器的自定义签名回调, 且参数 的值不是 nil, Foxit PDF SDK中的默认签名回调将不起作用。 如果用户通过此函数注册一个与默认签名回调具有相同过滤器和子过滤器的自定义签名回调, 且参数 的值是 nil, Foxit PDF SDK中的默认签名回调将重新生效。

参数
[in]filter签名回调的过滤器名称,使用ASCII编码。 这不应该是空字符串。 过滤器名称是签名回调的名称。
[in]sub_filter签名回调的子过滤器名称,使用ASCII编码。 子过滤器用于描述签名值的编码和 签名字典中的密钥信息。
[in]signature_callback自定义的 FSSignatureCallback 对象,由用户实现 并基于回调类 FSSignatureCallback 。 用户应确保所有回调函数都已在应用程序级别实现, 还应确保此签名回调对象在通过函数 FSLibrary::destroy 释放Foxit PDF SDK之前保持有效。
如果这是 nil,表示要从Foxit PDF SDK中移除已注册的第三方回调。
返回
YES 表示成功,NO 表示失败。

◆ registerXFAAppProviderCallback:()

+ (void) registerXFAAppProviderCallback: (id<FSAppProviderCallback>)  callback

向Foxit PDF SDK注册 FSAppProviderCallback 对象。

在处理XFA文档之前应首先调用此函数。

参数
[in]callbackFSAppProviderCallback 对象,由用户实现 并基于回调类 FSAppProviderCallback 。 用户应确保所有回调函数都已在应用程序级别实现, 还应确保此XFA应用程序提供程序回调对象在通过函数 FSLibrary::destroy 释放Foxit PDF SDK之前保持有效。
返回
无。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义模块"XFA", 这意味着用户无权使用XFA相关功能, 此函数将抛出异常 FSErrNoXFAModuleRight 。

◆ reinitialize()

+ (FSErrorCode) reinitialize

重新初始化Foxit PDF SDK库。

当用户遇到内存不足错误或用户想在调用函数 FSLibrary::destroy 之前 重新初始化Foxit PDF SDK库时,用户可以调用此函数来重新初始化Foxit PDF SDK库。
一旦调用了函数 FSLibrary::destroy ,Foxit PDF SDK库就无法 在该应用程序的生命周期中再次初始化。

返回
FSErrSuccess 表示成功。 有关错误代码值的更多信息,请参考从 FSErrSuccess 开始的值。

◆ setActionCallback:()

+ (BOOL) setActionCallback: (id<FSActionCallback>)  action_callback

设置 FSActionCallback 对象到Foxit PDF SDK,以帮助执行PDF动作。

用户应该实现一个动作回调对象并调用此函数来设置动作回调对象 到Foxit PDF SDK,如果需要执行PDF动作,例如填写PDF表单。

参数
[in]action_callback自定义的 FSActionCallback 对象。nil 表示不使用 任何动作回调对象。用户应确保所有回调函数都已在应用程序级别实现。 如果这是一个有效的动作回调对象,Foxit PDF SDK将接管此回调对象的管理, 用户不应直接释放它。
返回
YES 表示成功,NO 表示失败。

◆ setAnnotIconProviderCallback:()

+ (BOOL) setAnnotIconProviderCallback: (id<FSIconProviderCallback>)  annot_icon_provider

设置自定义的 FSIconProviderCallback 对象到Foxit PDF SDK。

用户可以调用此函数为注释设置自定义图标提供程序。 如果此函数被多次调用,Foxit PDF SDK将只保留最后一个图标提供程序。 如果此函数从未被调用过,Foxit PDF SDK将使用默认的标准图标提供程序。

参数
[in]annot_icon_provider自定义的注释图标提供程序, 基于回调类 FSIconProviderCallback 实现。 如果这是 nil,自定义注释图标提供程序 将从Foxit PDF SDK中移除,并使用默认的标准图标提供程序。 应用程序应确保此图标提供程序对象在被从Foxit PDF SDK中移除或 调用函数 FSLibrary::destroy 之前保持有效。
返回
YES 表示成功,NO 表示失败。
注解
图标提供程序的ID和版本被视为图标提供程序的名称, 因此请通过回调函数 FSIconProviderCallback::getProviderID 和 FSIconProviderCallback::getProviderVersion 为不同的图标提供程序提供不同的"ID + 版本"。

◆ setCacheSize:()

+ (BOOL) setCacheSize: (unsigned int)  size

设置PDF库缓存大小的上限。

如果应用程序没有设置缓存大小限制,默认情况下缓存大小将在内部 设置为200兆字节。

参数
[in]size缓存的上限,单位为兆字节,范围0~4096。 如果设置为0,表示不使用缓存大小限制。
返回
YES 表示成功,NO 表示失败。

◆ setDefaultICCProfilesPath:()

+ (void) setDefaultICCProfilesPath: (NSString *)  icc_profile_folder_path

设置包含默认ICC配置文件的文件夹路径。

默认ICC配置文件在Foxit PDF SDK包的"res"文件夹中提供。默认ICC配置文件 "sRGB Color Space Profile.icm"、"sGray.icc"和"USWebCoatedSWOP.icc"。Foxit PDF SDK将 从输入的文件夹路径中加载这些默认的ICC配置文件。
如果输入的文件夹路径不存在或指定文件夹中没有包含所有默认的ICC配置文件, 此函数将抛出异常 FSErrFilePathNotExist 。

参数
[in]icc_profile_folder_path包含默认ICC配置文件的有效文件夹路径。
返回
无。

◆ setDocEventCallback:()

+ (BOOL) setDocEventCallback: (id<FSDocEventCallback>)  callback

设置 对象到Foxit PDF SDK。

参数
[in]callback对象。 nil 表示不使用任何文档事件回调对象。
返回
YES 表示成功,NO 表示失败。

◆ setFontMapperCallback:()

+ (BOOL) setFontMapperCallback: (id<FSFontMapperCallback>)  callback

设置 对象到Foxit PDF SDK。

一旦向Foxit PDF SDK设置了有效的自定义字体映射器回调, Foxit PDF SDK将在映射字体时首先使用此回调。

参数
[in]callback对象。 nil 表示不使用任何自定义字体映射器回调对象。
返回
YES 表示成功,NO 表示失败。

◆ setLogFile:()

+ (void) setLogFile: (NSString *)  log_file_path

设置日志文件路径。

在向Foxit PDF SDK设置日志文件路径后,所有日志都将写入日志文件。 目前,Foxit PDF SDK中的日志信息比较简单;这将在未来版本中改进。

参数
[in]log_file_path日志文件路径。
返回
无。

◆ setLogFileWithStreamCallback:()

+ (void) setLogFileWithStreamCallback: (id<FSFileStreamCallback>)  log_file

设置日志文件流。

在向Foxit PDF SDK设置日志文件后,所有日志都将写入日志文件流。 目前,Foxit PDF SDK中的日志信息比较简单;这将在未来版本中改进。

参数
[in]log_file日志文件流。
返回
无。

◆ setNotifierCallback:()

+ (BOOL) setNotifierCallback: (id<FSNotifierCallback>)  notifier

设置 对象到Foxit PDF SDK。

用户可以调用此函数向Foxit PDF SDK设置通知回调对象, 以便在事件(如OOM)发生时通知用户。

参数
[in]notifier对象。用户应确保所有回调函数 都已在应用程序级别实现。
返回
YES 表示成功,NO 表示失败。

◆ setRenderConfig:()

+ (void) setRenderConfig: (FSRenderConfig*)  render_config

设置渲染配置。

参数
[in]render_config要设置的渲染配置对象。
返回
无。

◆ setRenderTextGamma:()

+ (void) setRenderTextGamma: (float)  gamma

设置文本渲染的伽马值。

如果不调用此函数设置伽马值,Foxit PDF SDK将使用2.2作为默认值。

参数
[in]gamma伽马值。应该大于0。
返回
无。

◆ setTimeStampCallback:()

+ (BOOL) setTimeStampCallback: (id<FSTimeStampCallback>)  timestamp_callback

设置 FSTimeStampCallback 对象到Foxit PDF SDK,以帮助与时间戳服务器交互。

当此函数成功时,Foxit PDF SDK将在签名期间接管默认的时间戳交互, 用户不应再直接释放此回调对象; 否则稍后可能发生意外崩溃。
当 timestamp_callback 为 nil 时, Foxit PDF SDK可能通过回调函数 pdf::TimeStampCallback::Release 释放时间戳回调对象。

参数
[in]timestamp_callback自定义的 FSTimeStampCallback 对象,由用户实现 并基于回调类 FSTimeStampCallback 。 用户应确保所有回调函数都已在应用程序级别实现, 还应确保此时间戳回调对象在通过函数 FSLibrary::destroy 释放Foxit PDF SDK之前保持有效。
如果这是 nil,表示要从Foxit PDF SDK中移除已注册的第三方回调。
返回
YES 表示成功,NO 表示失败。

◆ unregisterSecurityCallback:()

+ (BOOL) unregisterSecurityCallback: (NSString *)  filter

从Foxit PDF SDK中取消注册 FSSecurityCallback 对象。

当取消注册安全回调函数并发现它没有被其他对象使用时, Foxit PDF SDK可能通过回调函数 pdf::SecurityCallback::Release 释放安全回调函数。因此,建议用户在函数 FSLibrary::unregisterSecurityCallback: 之后不再使用安全回调对象。

参数
[in]filter用于注册安全回调对象的过滤器名称。 请参考函数 FSLibrary::registerSecurityCallback:callback: 中 参数 filter 的注释。
返回
YES 表示成功,NO 表示失败。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义模块"RMS", 这意味着用户无权使用RMS相关功能, 此函数将抛出异常 FSErrNoRMSModuleRight 。

◆ unregisterSignatureCallback:sub_filter:()

+ (void) unregisterSignatureCallback: (NSString *)  filter
sub_filter: (NSString *)  sub_filter 

取消注册与特定过滤器和子过滤器关联的第三方 FSSignatureCallback 对象 从Foxit PDF SDK中。如果有可用的默认签名, 它将与其过滤器和子过滤器值一起恢复。

Foxit PDF SDK具有默认的签名回调,定义了过滤器和子过滤器:

  • 过滤器:"Adobe.PPKLite",子过滤器:"adbe.pkcs7.detached"
  • 过滤器:"Adobe.PPKLite",子过滤器:"adbe.pkcs7.sha1"
  • 过滤器:"Adobe.PPKLite",子过滤器:"ETSI.CAdES.detached"
  • 过滤器:"Adobe.PPKLite",子过滤器:"ETSI.RFC3161"


参数
[in]filter签名回调的过滤器名称,使用ASCII编码。 这不应该是空字符串。 过滤器名称是签名回调的名称。
[in]sub_filter签名回调的子过滤器名称,使用ASCII编码。 子过滤器用于描述签名值的编码和 签名字典中的密钥信息。
返回
无。