Foxit PDF SDK
FSPDFDoc类 参考
类 FSPDFDoc 继承关系图:
FSBase

构造函数

(void) - addHeaderFooter:
 添加新的页眉页脚。
更多...
 
(unsigned int) - addIndirectObject:
 将PDF对象添加到当前PDF文档中,成为间接对象。
更多...
 
(FSPDFPage *) - addPageFromTemplate:
 从命名模板添加新的PDF页面到文档。
更多...
 
(FSPagingSealSignature *) - addPagingSealSignature:width:height:to_check_permission:
 按页面范围向文档添加骑缝章签名。
更多...
 
(void) - addTableOfContents:bookmark_level_array:
 将页面作为目录插入到当前PDF文档的前面。
更多...
 
(void) - addTableOfContentsWithTableOfContentsConfig:
 插入目录页到当前PDF最前页。
更多...
 
(FSPDFDocPasswordType) - checkPassword:
 检查指定密码的类型。
更多...
 
(void) - clearRenderCache
 清除渲染过程中使用的缓存,以减少内存使用。
更多...
 
(void) - createDSS
 在当前PDF文档中创建DSS信息。
更多...
 
(FSBookmark *) - createRootBookmark
 创建新的书签根节点。
更多...
 
(void) - deleteIndirectObject:
 通过间接对象编号删除间接对象。
更多...
 
(BOOL) - doJSOpenAction
 文档打开时执行JavaScript动作。
更多...
 
(BOOL) - exportAnnotToFDF:fdf_doc:
 将指定的注释导出到FDF/XFDF文档。
更多...
 
(BOOL) - exportFormFieldsToFDF:is_include:fdf_doc:
 将指定的表单字段导出到FDF/XFDF文档。
更多...
 
(BOOL) - exportToFDF:types:page_range:
 将表单字段和注释导出到FDF/XFDF文档。
更多...
 
(FSPageBasicInfoArray *) - getAllPageBasicInfo
 获取所有页面的基本信息。
更多...
 
(FSAnnotArray *) - getAnnotsByIdArray:
 通过唯一ID数组返回注释数组。
更多...
 
(int) - getBookmarkLevelDepth
 获取书签层级深度。
更多...
 
(FSPDFDictionary *) - getCatalog
 获取目录字典。
更多...
 
(FSCertificateEncryptData *) - getCertificateEncryptData
 获取证书加密的加密数据。
更多...
 
(FSCustomEncryptData *) - getCustomEncryptData
 获取自定义加密的加密数据。
更多...
 
(FSDRMEncryptData *) - getDRMEncryptData
 获取Foxit DRM加密的加密数据。
更多...
 
(FSHeaderFooter *) - getEditableHeaderFooter
 获取可编辑的页眉页脚对象。
更多...
 
(FSEmbeddedFontData *) - getEmbeddedFontData
 获取嵌入字体数据。
更多...
 
(FSPDFDictionary *) - getEncryptDict
 获取加密字典。
更多...
 
(FSPDFDocEncryptType) - getEncryptionType
 获取加密类型。
更多...
 
(unsigned long long) - getFileSize
 获取文件大小。
更多...
 
(int) - getFirstAvailPageIndex
 获取第一个可用页面的页面索引。
更多...
 
(FSFont *) - getFont:
 通过索引获取字体。
更多...
 
(int) - getFontCount
 计算当前PDF文档中使用的所有PDF字体。
更多...
 
(NSString *) - getHeader
 获取标识文件所符合的PDF规范版本的PDF头部。
更多...
 
(FSPDFObject *) - getIndirectObject:
 通过间接对象编号获取间接对象。
更多...
 
(FSPDFDictionary *) - getInfo
 获取信息字典。
更多...
 
(FSAction *) - getOpenAction
 获取文档打开时要执行的动作。
更多...
 
(FSPDFPage *) - getPage:
 通过索引获取PDF页面。
更多...
 
(FSPageBasicInfo *) - getPageBasicInfo:
 通过索引获取指定页面的基本信息。
更多...
 
(int) - getPageCount
 获取页面数量。
更多...
 
(FSPDFDictionary *) - getPagesDict
 获取"Pages"的字典。
更多...
 
(NSString *) - getPageText:
 以显示顺序获取指定页面文本。
更多...
 
(FSPDFDocPasswordType) - getPasswordType
 获取当前使用的密码类型。
更多...
 
(FSPayLoadData *) - getPayLoadData
 如果当前文档的包装类型是 FSPDFDocWrapperPDFV2 ,获取载荷数据。
更多...
 
(FSReadingBookmark *) - getReadingBookmark:
 通过索引获取阅读书签。
更多...
 
(int) - getReadingBookmarkCount
 获取阅读书签的数量。
更多...
 
(FSRMSEncryptData *) - getRMSEncryptData
 获取RMS加密的加密数据。
更多...
 
(FSBookmark *) - getRootBookmark
 获取书签根节点。
更多...
 
(FSSecurityHandler *) - getSecurityHandler
 获取当前文档的当前PDF安全处理程序。
更多...
 
(FSSignature *) - getSignature:
 通过索引获取签名。
更多...
 
(int) - getSignatureCount
 获取签名数量。
更多...
 
(FSStdEncryptData *) - getStdEncryptData
 获取标准加密(称为密码加密)的加密数据。
更多...
 
(FSPDFDictionary *) - getTrailer
 获取拖车字典。
更多...
 
(NSString *) - getUserPassword:
 基于所有者密码获取用户密码。
更多...
 
(unsigned int) - getUserPermissions
 获取用户访问权限。
更多...
 
(FSWrapperData *) - getWrapperData
 如果当前文档的包装类型是 FSPDFDocWrapperFoxit ,获取包装数据。
更多...
 
(long long) - getWrapperOffset
 如果当前文档的包装类型是 FSPDFDocWrapperFoxit ,获取包装偏移量。
更多...
 
(FSPDFDocWrapperType) - getWrapperType
 获取包装类型。
更多...
 
(BOOL) - hasForm
 检查当前PDF文档是否有交互式表单(也称为AcroForm)。
更多...
 
(BOOL) - hasHeaderFooter
 检查当前文档是否有页眉页脚。
更多...
 
(BOOL) - hasLayer
 检查当前PDF文档是否有图层(在《PDF参考手册1.7》中称为"可选内容组")。
更多...
 
(BOOL) - hidePageTemplate:
 隐藏命名页面。
更多...
 
(BOOL) - importFromFDF:types:page_range:
 从FDF/XFDF文档导入表单字段和注释。
更多...
 
(id) - init
 构造函数。
更多...
 
(id) - initWithBuffer:
 构造函数,从内存缓冲区。
更多...
 
(id) - initWithFile_read:is_async:
 构造函数,使用文件读取回调对象。
更多...
 
(id) - initWithOther:
 构造函数,通过另一个PDF文档对象。
更多...
 
(id) - initWithPath:
 构造函数,从现有PDF文件路径。
更多...
 
(void) - insertDocument:src_doc:options:
 将另一个PDF文档插入到当前PDF文档的指定位置。
更多...
 
(void) - insertDocumentWithBookmarkTitle:src_doc:options:bookmark_title:
 将另一个PDF文档插入到当前PDF文档的指定位置。
更多...
 
(FSPDFPage *) - insertPage:width:height:
 通过索引向文档插入新的空白PDF页面。
更多...
 
(FSPDFPage *) - insertPageWithType:size:
 通过索引向文档插入新的空白PDF页面。
更多...
 
(FSReadingBookmark *) - insertReadingBookmark:title:dest_page_index:
 向当前PDF文档插入阅读书签。
更多...
 
(BOOL) - isEmpty
 检查当前对象是否为空。
更多...
 
(BOOL) - isEncrypted
 检查当前文档是否为加密文件。
更多...
 
(BOOL) - isLinearized
 检查当前PDF文档是否为线性化文件。
更多...
 
(BOOL) - isOwnerPassword:
 检查输入密码是否为当前PDF文档的所有者密码。
更多...
 
(BOOL) - isPortfolio
 检查当前PDF文档是否为文档集文件。
更多...
 
(BOOL) - isTaggedPDF
 检查当前PDF文档是否为标签化PDF文件。
更多...
 
(BOOL) - isUserPassword:
 检查输入密码是否为当前PDF文档的用户密码。
更多...
 
(BOOL) - isWrapper
 检查当前文档是否为包装文件。
更多...
 
(BOOL) - isXFA
 检查当前PDF文档是否为XFA文档。
更多...
 
(FSErrorCode) - load:
 使用指定密码加载当前文档内容。
更多...
 
(FSErrorCode) - loadW:
 使用指定密码加载当前文档内容。
更多...
 
(BOOL) - movePagesTo:dest_index:
 将一个或多个页面(按索引指定)移动到新位置。
更多...
 
(BOOL) - movePageTo:dest_index:
 将指定页面移动到新位置。
更多...
 
(BOOL) - removeAllHeaderFooters
 删除所有页眉页脚。
更多...
 
(BOOL) - removeBookmark:
 删除指定的书签。
更多...
 
(void) - removeHiddenInfo:
 根据用户定义的设置从当前PDF文档中删除指定类型的隐藏信息。
更多...
 
(BOOL) - removeOpenAction
 移除文档打开时要执行的动作。
更多...
 
(BOOL) - removePage:
 通过页面索引删除PDF页面。
更多...
 
(BOOL) - removePageWithPDFPage:
 删除指定的PDF页面。
更多...
 
(BOOL) - removeReadingBookmark:
 从当前PDF文档中删除阅读书签。
更多...
 
(BOOL) - removeSecurity
 从当前文档中移除安全处理程序,以便后续保存的文档将是未加密的。
更多...
 
(void) - removeSignature:
 删除签名。
更多...
 
(void) - removeStructTree
 移除当前文档中的结构树。
更多...
 
(void) - sanitize
 使用默认设置从当前PDF文档中删除所有隐藏或潜在敏感信息。
更多...
 
(BOOL) - saveAs:save_flags:
 将当前PDF文档另存为另一个PDF文件。
更多...
 
(BOOL) - saveAsWrapperFile:wrapper_data:user_permissions:owner_password:
 将当前PDF文档另存为包装文件。
更多...
 
(void) - setCacheFile:is_own_file_stream:
 设置缓存文件 (代表文件流) 到当前PDF文档。
更多...
 
(BOOL) - setOpenAction:
 设置文档打开时要执行的动作。
更多...
 
(BOOL) - setSecurityHandler:
 为加密设置PDF安全处理程序,如标准加密(密码)、 证书加密等。
更多...
 
(FSProgressive *) - startAddTiledWatermark:settings:properties:page_range:pause:
 添加文本平铺水印到页面中。
更多...
 
(FSProgressive *) - startAddTiledWatermarkWithImagepath:settings:page_range:pause:
 Add image type tiled watermark to PDF pages by image path.
更多...
 
(FSProgressive *) - startAddTiledWatermarkWithImagestream:settings:page_range:pause:
 通过图像流添加图片类型平铺水印到页面中。
更多...
 
(FSProgressive *) - startAddTiledWatermarkWithPDFPage:settings:page_range:pause:
 添加页面类型平铺水印。
更多...
 
(FSProgressive *) - startEmbedAllFonts:
 开始转换所有未嵌入字体为内嵌字体。
更多...
 
(FSProgressive *) - startExtractPages:options:page_range:pause:
 开始从当前PDF文档提取页面。
更多...
 
(FSProgressive *) - startExtractPagesWithWriterCallback:options:page_range:pause:
 开始从当前PDF文档提取页面。
更多...
 
(FSProgressive *) - startGetPayloadFile:pause:
 开始获取载荷文件。
更多...
 
(FSProgressive *) - startImportPages:src_doc:flags:layer_name:page_range:pause:
 开始从另一个PDF文档(通过PDF文档对象)导入页面。
更多...
 
(FSProgressive *) - startImportPagesFromFilePath:src_file_path:password:flags:layer_name:page_range:pause:
 开始从另一个PDF文档(通过文件路径)导入页面。
更多...
 
(FSProgressive *) - startIntegrityProtection:user_password:owner_password:digest_algorithm:permissions:is_encrypt_metadata:pause:
 开始为 PDF 文档生成独立完整性保护(UTF-8 路径版本)。
更多...
 
(FSProgressive *) - startIntegrityProtectionWithSignature:cert_file_path:cert_password:user_password:owner_password:digest_algorithm:permissions:is_encrypt_metadata:pause:
 开始生成附加到签名字段的完整性保护(UTF-8 路径版本)。
更多...
 
(FSProgressive *) - startLoad:is_cache_stream:pause:
 开始使用指定密码加载当前文档内容。
更多...
 
(FSProgressive *) - startLoadW:is_cache_stream:pause:
 开始使用指定密码加载当前文档内容。
更多...
 
(FSProgressive *) - startRecognizeForm:
 开始识别表单域。
更多...
 
(FSProgressive *) - startRecognizeFormWithToolTips:pause:
 开始识别表单域。
更多...
 
(FSProgressive *) - startSaveAs:save_flags:pause:
 开始将当前PDF文档另存为另一个PDF文件。
更多...
 
(FSProgressive *) - startSaveAsPayloadFile:payload_file_path:crypto_filter:description:version:save_flags:pause:
 开始将当前PDF文档另存为带有载荷文档的包装文档(在PDF 2.0中定义)。
更多...
 
(FSProgressive *) - startSaveAsWithWriterCallback:save_flags:pause:
 开始将当前PDF文档另存为另一个PDF文件。
更多...
 
(void) - updateHeaderFooter:
 更新页眉页脚。
更多...
 

属性

FSPDFDocDisplayMode displayMode
 获取显示模式。
更多...
 
int fileVersion
 获取存储在PDF头部部分的PDF文件版本。

 

详细描述

PDF文档对象可以通过文件路径、内存缓冲区、 自定义实现的 FSFileReaderCallback 对象和输入文件流从现有PDF文件构造。然后调用函数 FSPDFDoc::load: 或 FSPDFDoc::startLoad:is_cache_stream:pause: 来加载文档内容。 此类提供了检索PDF文档不同部分的函数。例如:

此类还提供用于功能的函数,例如将当前文档保存为另一个PDF文件, 从另一个PDF文件导入页面,设置安全处理程序以保存加密的PDF文件等等。
此类对象也可以用于构造其他类的对象,以便访问PDF文档中的指定信息:

  • 要访问表单,请使用PDF文档对象构造 FSForm 对象。
  • 要访问附加操作,请使用PDF文档对象构造 FSAdditionalAction 对象。
  • 要访问查看器首选项信息,请使用PDF文档对象构造 FSDocViewerPrefs 对象。
  • 要访问元数据信息,请使用PDF文档对象构造 FSMetadata 对象。
  • 要管理页面标签信息,请使用PDF文档对象构造 FSPageLabels 对象。
  • 要在PDF文件中搜索,请使用PDF文档对象构造 FSTextSearch 对象。
  • 要访问图层,请使用PDF文档对象构造 FSLayerTree 对象。 要渲染图层,请使用PDF文档对象构造 FSLayerContext 对象。
  • 要构造新的 FSFileSpec 对象。
  • 要管理关联文件,请使用PDF文档对象构造 FSAssociatedFiles 对象。
  • 要访问名称树,请使用PDF文档对象构造 FSPDFNameTree 对象。特别地, 对于嵌入文件名称树,可以使用PDF文档对象构造 FSAttachments 对象, 以便使用。
  • 要进行密文处理,请使用PDF文档对象构造 FSRedaction 对象。


参见
FSForm
FSAdditionalAction
FSDocViewerPrefs
FSMetadata
FSPageLabels
FSTextSearch
FSLayerTree
FSLayerContext
FSFileSpec
FSAssociatedFiles
FSPDFNameTree
FSAttachments
FSRedaction

函数文档

◆ addHeaderFooter:()

- (void) addHeaderFooter: (FSHeaderFooter*)  headerfooter

添加新的页眉页脚。

PDF文档可以多次添加页眉页脚。当添加新的页眉页脚时,旧的页眉页脚不会被删除, 但如果旧的页眉页脚与新的出现在同一位置,则会被新的覆盖。

参数
[in]headerfooter要添加到当前文档的有效页眉页脚对象。
返回
无。

◆ addIndirectObject:()

- (unsigned int) addIndirectObject: (FSPDFObject*)  pdf_object

将PDF对象添加到当前PDF文档中,成为间接对象。

  • 如果输入的PDF对象是直接对象(其间接对象编号为0), 此函数将其更改为间接对象并添加到PDF文档中。 然后返回新的间接对象编号。
  • 如果输入的PDF对象已经是间接对象(其间接对象编号大于0), 此函数不会再次将其添加到文档中。 返回值将是其自身的间接对象编号。


参数
[in]pdf_objectFSPDFObject 对象。不应为nil。
返回
新的间接对象编号。将大于0。

◆ addPageFromTemplate:()

- (FSPDFPage *) addPageFromTemplate: (NSString *)  template_name

从命名模板添加新的PDF页面到文档。

PDF文档中可能存在隐藏页面。隐藏页面映射到PDF文档中模板名称树中定义的名称。 此函数可用于将隐藏页面添加到PDF文档的末尾。
类 FSPDFNameTree (使用类型 FSPDFNameTreeTemplates 初始化)可用于确定 哪些模板名称可用。
添加模板后,名称将在内部移动到文档的页面名称树。

参数
[in]template_name模板的名称,其映射的隐藏页面将添加到当前PDF文档的末尾。 如果找不到模板名称,将抛出异常 FSErrParam 。
返回
如果找到输入的模板名称,返回新的PDF页面对象。

◆ addPagingSealSignature:width:height:to_check_permission:()

- (FSPagingSealSignature *) addPagingSealSignature: (FSRange*)  page_range
width: (float)  width
height: (float)  height
to_check_permission: (BOOL)  to_check_permission 

按页面范围向文档添加骑缝章签名。

此函数将向 page_range 的第一页添加签名。

参数
[in]page_range指定某些页面的范围对象。这些页面将被添加签名。 有效的页面范围:从 1 到 count。count 由函数 FSPDFDoc::getPageCount 返回。 如果此范围对象由默认构造函数构造且未设置任何值,则表示当前文档的所有页面 都将被添加签名。 此函数不支持具有单个索引的范围或具有单个页面的文档。
[in]width骑缝章的宽度。该值将用于设置每个页面上签名的矩形。
[in]height骑缝章的高度。该值将用于设置每个页面上签名的矩形。
[in]to_check_permission一个布尔值,用于决定 Foxit PDF SDK 是否应在添加签名之前检查 PDF 文档的权限: YES 表示 Foxit PDF SDK 应检查文档权限以决定是否允许添加签名, NO 表示 Foxit PDF SDK 不应在添加签名之前检查文档权限。 当此参数为 NO 时,用户应确保检查文档权限以检查是否允许添加签名。 默认值:YES。
返回
骑缝章签名对象。

◆ addTableOfContents:bookmark_level_array:()

- (void) addTableOfContents: (NSString *)  title
bookmark_level_array: (FSInt32Array*)  bookmark_level_array 

将页面作为目录插入到当前PDF文档的前面。

如果当前文档没有任何书签,此函数将不执行任何操作。

参数
[in]title目录的标题。如果这是空字符串,将使用默认值"Table of Contents"。
[in]bookmark_level_array书签级别数组,用于指定用来生成"目录"的书签。 对于输入数组中的每个元素,有效范围:从1到(depth)。 depth由函数 FSPDFDoc::getBookmarkLevelDepth 返回。 如果输入数组是空数组,意味着所有书签都用于生成"目录"。
返回
无。

◆ addTableOfContentsWithTableOfContentsConfig:()

- (void) addTableOfContentsWithTableOfContentsConfig: (FSTableOfContentsConfig*)  table_of_contents_config

插入目录页到当前PDF最前页。

如果当前文档没有任何书签,这个接口将不会做任何事情。

参数
[in]table_of_contents_configTOC配置对象。
返回
无。

◆ checkPassword:()

- (FSPDFDocPasswordType) checkPassword: (NSString *)  password

检查指定密码的类型。

此函数可用于检查任何密码字符串的类型,包括用于加载文档内容的密码字符串。
某些PDF文档可能同时拥有用户密码和所有者密码,并且这两个密码相同。 但当前函数只能为此类密码返回一种类型。在这种情况下,函数 FSPDFDoc::isUserPassword: 和 FSPDFDoc::isOwnerPassword: 可以帮助进行更多检查。

参数
[in]password要检测的密码字符串。
返回
密码类型。请参考从 FSPDFDocPwdInvalid 开始的值, 这将是这些值中的一个。

◆ clearRenderCache()

- (void) clearRenderCache

清除渲染过程中使用的缓存,以减少内存使用。

返回
无。

◆ createDSS()

- (void) createDSS

在当前PDF文档中创建DSS信息。

如果当前PDF文档已经有DSS信息,此函数将不执行任何操作并直接返回。

返回
无。

◆ createRootBookmark()

- (FSBookmark *) createRootBookmark

创建新的书签根节点。

如果当前PDF文档已经有书签根节点,此函数将删除旧的书签树并创建一个新的根节点。

返回
表示根书签的书签对象。

◆ deleteIndirectObject:()

- (void) deleteIndirectObject: (unsigned int)  object_number

通过间接对象编号删除间接对象。

参数
[in]object_number间接对象编号。应该大于0。
返回
无。

◆ doJSOpenAction()

- (BOOL) doJSOpenAction

文档打开时执行JavaScript动作。

返回
YES表示成功,NO表示失败。

◆ exportAnnotToFDF:fdf_doc:()

- (BOOL) exportAnnotToFDF: (FSAnnot*)  pdf_annot
fdf_doc: (FSFDFDoc*)  fdf_doc 

将指定的注释导出到FDF/XFDF文档。

参数
[in]pdf_annot要导出到FDF/XFDF文档的有效PDF注释对象。
[in]fdf_doc有效的FDF/XFDF文档对象,指定的注释将导出到此文档。
返回
YES表示成功,NO表示失败。

◆ exportFormFieldsToFDF:is_include:fdf_doc:()

- (BOOL) exportFormFieldsToFDF: (FSFieldArray*)  field_array
is_include: (BOOL)  is_include
fdf_doc: (FSFDFDoc*)  fdf_doc 

将指定的表单字段导出到FDF/XFDF文档。

参数
[in]field_array表单字段数组。参数is_include将决定是否导出这些表单字段的数据。
[in]is_include布尔值,用于决定是否导出指定表单字段的数据: YES表示导出指定表单字段的数据,NO表示不导出指定表单字段的数据。
[in]fdf_doc有效的FDF/XFDF文档对象,指定的表单字段将导出到此文档。
返回
YES表示成功,NO表示失败。

◆ exportToFDF:types:page_range:()

- (BOOL) exportToFDF: (FSFDFDoc*)  fdf_doc
types: (int)  types
page_range: (FSRange*)  page_range 

将表单字段和注释导出到FDF/XFDF文档。

有关可用于导出的PDF对象类型的更多详细信息, 请参考"XML Forms Data Format Specification"第22页。

参数
[in]fdf_doc一个有效的FDF/XFDF文档对象,向其导出表单字段和注释。
[in]types用于决定将导出哪种类型的数据。请参考从 FSPDFDocForms 开始的值, 这可以是这些值中的一个或组合。 默认值:( FSPDFDocForms | FSPDFDocAnnots )。
[in]page_range指定一些页面的范围对象。这些页面中的数据(指定类型)将被导出到FDF/XFDF文档。 如果此范围对象通过默认构造函数构造且未设置任何值,意味着当前文档的所有数据(指定类型) 将被导出到FDF/XFDF文档。
此参数仅在参数types包含 FSPDFDocAnnots 时有用。
默认值:通过默认构造函数构造且未设置任何值的范围对象。
返回
YES表示成功,NO表示失败。

◆ getAllPageBasicInfo()

- (FSPageBasicInfoArray *) getAllPageBasicInfo

获取所有页面的基本信息。

此函数可以快速获取PDF页面的基本信息,而无需获取该PDF页面对象。 如果当前PDF文档对象是使用AsyncReaderCallback构造的,这意味着进行异步加载, 此函数可能抛出异常 FSErrDataNotReady 。 在这种情况下,用户应为回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知的指定范围准备数据,然后再次调用此函数。

返回
包含指定页面基本信息的所有页面基本信息对象数组,数组按页面升序排列。

◆ getAnnotsByIdArray:()

- (FSAnnotArray *) getAnnotsByIdArray: (NSArray<NSString *> *)  unique_id_arr

通过唯一ID数组返回注释数组。

参数
[in]unique_id_arr唯一ID数组。唯一ID由 FSAnnot::uniqueID 返回。
返回
FSAnnot 对象数组。

◆ getBookmarkLevelDepth()

- (int) getBookmarkLevelDepth

获取书签层级深度。

返回
书签层级的深度。 如果当前文档没有任何书签,将返回零。

◆ getCatalog()

- (FSPDFDictionary *) getCatalog

获取目录字典。

返回
目录字典。 如果没有目录字典或发生任何错误,此函数将返回nil。

◆ getCertificateEncryptData()

- (FSCertificateEncryptData *) getCertificateEncryptData

获取证书加密的加密数据。

当当前文档使用证书加密时,此函数很有用。

返回
证书加密的加密数据。

◆ getCustomEncryptData()

- (FSCustomEncryptData *) getCustomEncryptData

获取自定义加密的加密数据。

当当前文档使用自定义加密时,此函数很有用。

返回
自定义加密的加密数据。

◆ getDRMEncryptData()

- (FSDRMEncryptData *) getDRMEncryptData

获取Foxit DRM加密的加密数据。

当当前文档使用Foxit DRM加密时,此函数很有用。

返回
Foxit DRM加密的加密数据。

◆ getEditableHeaderFooter()

- (FSHeaderFooter *) getEditableHeaderFooter

获取可编辑的页眉页脚对象。

PDF文档可能已经多次添加页眉页脚,但只有其中一个页眉页脚可以是可编辑的。 此函数用于检索可编辑的页眉页脚。

返回
表示可编辑页眉页脚的页眉页脚对象。

◆ getEmbeddedFontData()

- (FSEmbeddedFontData *) getEmbeddedFontData

获取嵌入字体数据。

此函数用于"优化器"模型中的取消嵌入字体。

返回
嵌入字体数据。

◆ getEncryptDict()

- (FSPDFDictionary *) getEncryptDict

获取加密字典。

返回
加密字典。 如果没有加密字典或发生任何错误,此函数将返回nil。

◆ getEncryptionType()

- (FSPDFDocEncryptType) getEncryptionType

获取加密类型。

返回
加密类型。请参考从 FSPDFDocEncryptNone 开始的值, 这将是这些值中的一个。

◆ getFileSize()

- (unsigned long long) getFileSize

获取文件大小。

返回
文件大小。

◆ getFirstAvailPageIndex()

- (int) getFirstAvailPageIndex

获取第一个可用页面的页面索引。

这对于线性化PDF文档很有用,因为在线性化PDF文档中, 第一个可用页面可能不是第一页。
此函数只能在文档成功加载后使用。

返回
第一个可用页面的页面索引。

◆ getFont:()

- (FSFont *) getFont: (int)  index

通过索引获取字体。

参数
[in]indexPDF字体的索引。有效范围:从0到(count-1)。 count由函数 FSPDFDoc::getFontCount 返回。
返回
字体对象。

◆ getFontCount()

- (int) getFontCount

计算当前PDF文档中使用的所有PDF字体。

此函数将枚举用于页面、注释和交互式表单的所有字体资源。

返回
字体数量。

◆ getHeader()

- (NSString *) getHeader

获取标识文件所符合的PDF规范版本的PDF头部。

返回
PDF头部字符串。它会是"PDF-1.4"、"PDF-1.5"等格式。

◆ getIndirectObject:()

- (FSPDFObject *) getIndirectObject: (unsigned int)  object_number

通过间接对象编号获取间接对象。

参数
[in]object_number间接对象编号。应该大于0。
返回
接收间接PDF对象的 FSPDFObject 对象。nil 表示未找到。

◆ getInfo()

- (FSPDFDictionary *) getInfo

获取信息字典。

文档的信息字典包含文档的元数据。

返回
信息字典。 如果没有"Info"条目或发生任何错误,此函数将返回nil。

◆ getOpenAction()

- (FSAction *) getOpenAction

获取文档打开时要执行的动作。

返回
动作对象。

◆ getPage:()

- (FSPDFPage *) getPage: (int)  index

通过索引获取PDF页面。

如果当前PDF文档对象是使用AsyncReaderCallback构造的(表示进行异步加载), 此函数可能抛出异常 FSErrDataNotReady 。 在这种情况下,用户应该为回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知的指定范围准备数据,然后再次调用此函数。

参数
[in]index页面索引。有效范围:从0到(count-1)。 count 由函数 FSPDFDoc::getPageCount 返回。
返回
PDF页面对象。

◆ getPageBasicInfo:()

- (FSPageBasicInfo *) getPageBasicInfo: (int)  index

通过索引获取指定页面的基本信息。

此函数可以快速获取PDF页面的基本信息,而无需获取该PDF页面对象。 如果当前PDF文档对象是使用AsyncReaderCallback构造的,这意味着进行异步加载, 此函数可能抛出异常 FSErrDataNotReady 。 在这种情况下,用户应为回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知的指定范围准备数据,然后再次调用此函数。

参数
[in]index页面索引。有效范围:从0到(count-1)。 count由函数 FSPDFDoc::getPageCount 返回。
返回
包含指定页面基本信息的页面基本信息对象。

◆ getPageCount()

- (int) getPageCount

获取页面数量。

返回
页面数量。

◆ getPagesDict()

- (FSPDFDictionary *) getPagesDict

获取"Pages"的字典。

返回
"Pages"的字典。 如果没有"Pages"条目或发生任何错误,此函数将返回nil。

◆ getPageText:()

- (NSString *) getPageText: (int)  page_index

以显示顺序获取指定页面文本。

参数
[in]page_index页面索引。有效范围:从0到(count-1)。 count 返回于 FSPDFDoc::getPageCount 。
返回
页面相关联的所有文本,该文本将以显示顺序提供。

◆ getPasswordType()

- (FSPDFDocPasswordType) getPasswordType

获取当前使用的密码类型。

此函数在加载PDF文档后很有用,以获取加载过程中使用的密码类型。
如果当前文档是新的(不是从现有PDF文件加载),此函数将返回 FSPDFDocPwdNoPassword 。
如果当前文档是从现有文件构造但尚未加载, 此函数将返回 FSPDFDocPwdInvalid 。

返回
密码类型。请参考从 FSPDFDocPwdInvalid 开始的值, 这将是这些值中的一个。

◆ getPayLoadData()

- (FSPayLoadData *) getPayLoadData

如果当前文档的包装类型是 FSPDFDocWrapperPDFV2 ,获取载荷数据。

返回
载荷数据。如果找不到包装数据或当前文档的包装类型不是 FSPDFDocWrapperPDFV2 ,将返回值为0和空字符串的载荷数据对象。

◆ getReadingBookmark:()

- (FSReadingBookmark *) getReadingBookmark: (int)  index

通过索引获取阅读书签。

参数
[in]index阅读书签的索引。有效范围:从0到(count-1)。 count 由函数 FSPDFDoc::getReadingBookmarkCount 返回。
返回
指定索引的阅读书签对象。

◆ getReadingBookmarkCount()

- (int) getReadingBookmarkCount

获取阅读书签的数量。

返回
阅读书签的数量。

◆ getRMSEncryptData()

- (FSRMSEncryptData *) getRMSEncryptData

获取RMS加密的加密数据。

当当前文档使用RMS加密时,此函数很有用。

返回
RMS加密的加密数据。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义"RMS"模块, 这意味着用户没有使用RMS相关函数的权利,此函数将抛出异常 FSErrNoRMSModuleRight 。

◆ getRootBookmark()

- (FSBookmark *) getRootBookmark

获取书签根节点。

返回
表示根书签的书签对象。 如果当前PDF文档中没有书签,此函数将返回一个其函数 FSBookmark::isEmpty 返回YES的书签对象。

◆ getSecurityHandler()

- (FSSecurityHandler *) getSecurityHandler

获取当前文档的当前PDF安全处理程序。

返回
PDF安全处理程序对象。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义模块"RMS", 这意味着用户没有使用RMS相关功能的权限,此函数将抛出异常 FSErrNoRMSModuleRight 。

◆ getSignature:()

- (FSSignature *) getSignature: (int)  index

通过索引获取签名。

参数
[in]index签名的索引。有效范围:从0到(count-1)。 count 由函数 FSPDFDoc::getSignatureCount 返回。
返回
签名对象。

◆ getSignatureCount()

- (int) getSignatureCount

获取签名数量。

返回
签名数量。

◆ getStdEncryptData()

- (FSStdEncryptData *) getStdEncryptData

获取标准加密(称为密码加密)的加密数据。

当当前文档使用密码加密时,此函数很有用。

返回
标准加密的加密数据。

◆ getTrailer()

- (FSPDFDictionary *) getTrailer

获取拖车字典。

返回
拖车字典。 如果没有拖车字典或发生任何错误,此函数将返回nil。

◆ getUserPassword:()

- (NSString *) getUserPassword: (NSString *)  owner_password

基于所有者密码获取用户密码。

当当前文档使用密码加密时,此函数很有用。

参数
[in]owner_password所有者密码字符串。
返回
用户密码字符串。

◆ getUserPermissions()

- (unsigned int) getUserPermissions

获取用户访问权限。

返回
用户访问权限。请参考从 FSPDFDocPermPrint 开始的值, 这将是这些值中的一个。

◆ getWrapperData()

- (FSWrapperData *) getWrapperData

如果当前文档的包装类型是 FSPDFDocWrapperFoxit ,获取包装数据。

返回
包装数据。如果找不到包装数据或当前文档的包装类型不是 FSPDFDocWrapperFoxit ,将返回值为0和空字符串的包装数据对象。

◆ getWrapperOffset()

- (long long) getWrapperOffset

如果当前文档的包装类型是 FSPDFDocWrapperFoxit ,获取包装偏移量。

返回
包装偏移量。如果找不到包装数据或当前文档的包装类型不是 FSPDFDocWrapperFoxit ,将返回-1。

◆ getWrapperType()

- (FSPDFDocWrapperType) getWrapperType

获取包装类型。

返回
包装类型。请参考从 FSPDFDocWrapperNone 开始的值, 这将是其值中的一个或组合。

◆ hasForm()

- (BOOL) hasForm

检查当前PDF文档是否有交互式表单(也称为AcroForm)。

如果当前PDF文档对象是使用AsyncReaderCallback构造的(表示进行异步加载), 此函数可能抛出异常 FSErrDataNotReady 。 在这种情况下,用户应该为回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知的指定范围准备数据,然后再次调用此函数。

返回
YES 表示当前文档有交互式表单。 NO 表示当前文档没有交互式表单。

◆ hasHeaderFooter()

- (BOOL) hasHeaderFooter

检查当前文档是否有页眉页脚。

返回
YES 表示当前文档有页眉页脚, NO 表示当前文档没有页眉页脚。

◆ hasLayer()

- (BOOL) hasLayer

检查当前PDF文档是否有图层(在《PDF参考手册1.7》中称为"可选内容组")。

返回
YES 表示当前文档有图层。 NO 表示当前文档没有图层。

◆ hidePageTemplate:()

- (BOOL) hidePageTemplate: (NSString *)  template_name

隐藏命名页面。

PDF文档中的页面可以映射到PDF文档中页面名称树中定义的名称。 此函数可用于隐藏这些命名页面。
类 FSPDFNameTree (使用类型 FSPDFNameTreePages 初始化)可用于确定 哪些页面名称可用以及将页面映射到名称。
PDF页面被隐藏后,名称将在内部移动到文档的模板名称树。

参数
[in]template_name要隐藏的PDF页面的名称。
返回
YES 表示成功,NO 表示失败。

◆ importFromFDF:types:page_range:()

- (BOOL) importFromFDF: (FSFDFDoc*)  fdf_doc
types: (int)  types
page_range: (FSRange*)  page_range 

从FDF/XFDF文档导入表单字段和注释。

它还支持从FDF模板导入表单字段。与FDF模板关联的页面将插入到文档的末尾。 有关可用于导出的PDF对象类型的更多详细信息, 请参考"XML Forms Data Format Specification"第22页。

参数
[in]fdf_doc一个有效的FDF/XFDF文档对象,从中导入表单字段和注释。
[in]types用于决定将导入哪种类型的数据。请参考从 FSPDFDocForms 开始的值, 这可以是这些值中的一个或组合。 默认值:( FSPDFDocForms | FSPDFDocAnnots )。 如果fdf_doc是fdf模板,此参数不起作用。
[in]page_range指定一些页面的范围对象。FDF/XFDF文档中的数据(指定类型)将被导入到这些指定页面。 如果此范围对象通过默认构造函数构造且未设置任何值,意味着FDF/XFDF文档中的数据(指定类型) 将被导入到相关的PDF页面,这些页面的索引已在FDF/XFDF文档中定义。
此参数仅在参数types包含 FSPDFDocAnnots 时有用。
默认值:通过默认构造函数构造且未设置任何值的范围对象。 如果fdf_doc是fdf模板,此参数不起作用。
返回
YES表示成功,NO表示失败。

◆ init()

- (id) init

构造函数。

此构造函数用于构造新的PDF文档(没有任何数据)。 文件版本值默认为17(作为PDF版本1.7)。

◆ initWithBuffer:()

- (id) initWithBuffer: (NSData *)  buffer

构造函数,从内存缓冲区。

构造这样的PDF文档对象后,请确保在使用类 FSPDFDoc 中的大多数函数之前 已加载文档对象。

参数
[in]buffer包含序列化文档的内存缓冲区。PDF文档数据应完全加载在此内存缓冲区中。 它不应该是 nil。

◆ initWithFile_read:is_async:()

- (id) initWithFile_read: (id<FSFileReaderCallback>)  file_read
is_async: (BOOL)  is_async 

构造函数,使用文件读取回调对象。

构造这样的PDF文档对象后,请确保在使用类 FSPDFDoc 中的大多数函数之前 已加载文档对象。

参数
[in]file_read由用户实现的 FSFileReaderCallback 对象,用于 加载PDF文档。它不应该是 nil。 如果输入的回调对象是 FSAsyncReaderCallback 对象,且 is_async 为 YES, 这意味着PDF文档将通过异步方法加载;否则, 文档将以普通方式加载。
[in]is_async输入的 FSFileReaderCallback 对象是否用于异步加载。 默认值:NO。

◆ initWithOther:()

- (id) initWithOther: (FSPDFDoc*)  other

构造函数,通过另一个PDF文档对象。

参数
[in]other另一个PDF文档对象。

◆ initWithPath:()

- (id) initWithPath: (NSString *)  path

构造函数,从现有PDF文件路径。

构造这样的PDF文档对象后,请确保在使用类 FSPDFDoc 中的大多数函数之前 已加载文档对象。

参数
[in]path现有PDF文件的完整路径。它不应该是空字符串。

◆ insertDocument:src_doc:options:()

- (void) insertDocument: (int)  dest_index
src_doc: (FSPDFDoc*)  src_doc
options: (unsigned int)  options 

将另一个PDF文档插入到当前PDF文档的指定位置。

参数
[in]dest_index当前PDF文档中的页面索引。用于指定从src_doc插入页面的位置: 如果参数dest_index小于0,这些页面将被插入到最前面。
如果参数dest_index等于或大于当前页面计数, 这些页面将被插入到末尾。
[in]src_doc代表要插入到当前PDF文档的PDF文档的PDF文档对象。 此文档中的所有页面都将被插入到当前PDF文档中。 请保持此源PDF文档对象有效,直到当前文档不再保存或关闭。
[in]options插入PDF文档的选项。请参考从 FSPDFDocInsertDocOptionAttachments 开始的值, 这可以是这些值中的一个或组合。0表示不使用任何选项。
返回
无。

◆ insertDocumentWithBookmarkTitle:src_doc:options:bookmark_title:()

- (void) insertDocumentWithBookmarkTitle: (int)  dest_index
src_doc: (FSPDFDoc*)  src_doc
options: (unsigned int)  options
bookmark_title: (NSString *)  bookmark_title 

将另一个PDF文档插入到当前PDF文档的指定位置。

参数
[in]dest_index当前PDF文档中的页面索引。用于指定从src_doc插入页面的位置: 如果参数dest_index小于0,这些页面将被插入到最前面。
如果参数dest_index等于或大于当前页面计数, 这些页面将被插入到末尾。
[in]src_doc代表要插入到当前PDF文档的PDF文档的PDF文档对象。 此文档中的所有页面都将被插入到当前PDF文档中。 请保持此源PDF文档对象有效,直到当前文档不再保存或关闭。
[in]options插入PDF文档的选项。请参考从 FSPDFDocInsertDocOptionAttachments 开始的值, 这可以是这些值中的一个或组合。0表示不使用任何选项。
[in]bookmark_title书签的标题。默认值:InsertBookMark。
返回
无。

◆ insertPage:width:height:()

- (FSPDFPage *) insertPage: (int)  index
width: (float)  width
height: (float)  height 

通过索引向文档插入新的空白PDF页面。

参数
[in]index新页面的页面索引。
如果参数 index 小于0,新页面将插入到第一个位置。
如果参数 index 等于或大于当前页面数量, 新页面将插入到末尾。
[in]width新页面的宽度(单位是1/72英寸)。
[in]height新页面的高度(单位是1/72英寸)。
返回
表示空白页面的新PDF页面对象。

◆ insertPageWithType:size:()

- (FSPDFPage *) insertPageWithType: (int)  index
size: (FSPDFPageSize)  size 

通过索引向文档插入新的空白PDF页面。

参数
[in]index新页面的页面索引。
如果参数 index 小于0,新页面将插入到第一个位置。
如果参数 index 等于或大于当前页面数量, 新页面将插入到末尾。
[in]size新页面的尺寸类型。请参考从 FSPDFPageSizeLetter 开始的值, 这应该是这些值中的一个。默认值: FSPDFPageSizeLetter 。
返回
表示空白页面的新PDF页面对象。

◆ insertReadingBookmark:title:dest_page_index:()

- (FSReadingBookmark *) insertReadingBookmark: (int)  reading_bookmark_index
title: (NSString *)  title
dest_page_index: (int)  dest_page_index 

向当前PDF文档插入阅读书签。

参数
[in]reading_bookmark_index阅读书签索引。
如果 reading_bookmark_index 小于0,新的阅读书签将插入到第一个位置。
如果 reading_bookmark_index 等于或大于阅读书签的数量, 新的阅读书签将插入到末尾。
[in]title新阅读书签的标题字符串,不应为空字符串。
[in]dest_page_index目标页面的索引。
返回
新的阅读书签对象。

◆ isEmpty()

- (BOOL) isEmpty

检查当前对象是否为空。

当前对象为空时,表示当前对象是无用的。

返回
YES 表示当前对象为空,NO 表示不为空。

◆ isEncrypted()

- (BOOL) isEncrypted

检查当前文档是否为加密文件。

返回
YES表示当前文档是加密文件, NO表示当前文档不是加密文件。

◆ isLinearized()

- (BOOL) isLinearized

检查当前PDF文档是否为线性化文件。

  • 如果当前文档对象使用 FSAsyncReaderCallback 对象构造,此函数可以 在文档成功加载之前或之后使用。特别地,如果在文档成功加载之前调用此函数, 应用程序应确保PDF文件的前1024字节可用;否则,此函数将调用回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知应用程序应下载的数据范围, 然后此函数将抛出异常 FSErrDataNotReady 。
  • 如果当前文档对象通过其他方法或使用普通 FSFileReaderCallback 对象构造, 此函数只能在文档成功加载后使用;否则, 将抛出异常 FSErrUnknownState 。


返回
YES 表示当前PDF文档是线性化文件, NO 表示当前PDF文档不是线性化文件。

◆ isOwnerPassword:()

- (BOOL) isOwnerPassword: (NSString *)  password

检查输入密码是否为当前PDF文档的所有者密码。

参数
[in]password要检测的密码字符串。
返回
YES表示输入密码是当前PDF文档的所有者密码,NO表示 输入密码不是当前PDF文档的所有者密码。

◆ isPortfolio()

- (BOOL) isPortfolio

检查当前PDF文档是否为文档集文件。

返回
YES表示当前PDF文档是文档集文件,NO表示不是。

◆ isTaggedPDF()

- (BOOL) isTaggedPDF

检查当前PDF文档是否为标签化PDF文件。

标签化PDF意味着PDF文档中存在结构树。

返回
YES 表示当前PDF文档是标签化PDF文件, NO 表示当前PDF文档不是标签化PDF文件。

◆ isUserPassword:()

- (BOOL) isUserPassword: (NSString *)  password

检查输入密码是否为当前PDF文档的用户密码。

参数
[in]password要检测的密码字符串。
返回
YES表示输入密码是当前PDF文档的用户密码,NO表示 输入密码不是当前PDF文档的用户密码。

◆ isWrapper()

- (BOOL) isWrapper

检查当前文档是否为包装文件。

返回
YES 表示当前文档是包装文件, NO 表示当前文档不是包装文件。

◆ isXFA()

- (BOOL) isXFA

检查当前PDF文档是否为XFA文档。

目前,Foxit PDF SDK不完全支持XFA文档。当加载XFA文档时, Foxit PDF SDK可能只加载XFA包装级别,无法访问真正的XFA内容。 Foxit PDF SDK尚不支持在XFA文档中插入/导入/删除/移动页面。

返回
YES表示当前文档是XFA文档, NO表示当前文档不是XFA文档。

◆ load:()

- (FSErrorCode) load: (NSString *)  password

使用指定密码加载当前文档内容。

如果当前PDF文档对象是使用AsyncReaderCallback构造的,这意味着进行异步加载, 此函数可能返回 FSErrDataNotReady 。 在这种情况下,用户应该为回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知的指定范围准备数据,然后再次调用此函数。

参数
[in]password用于加载当前文档内容的密码字符串。密码可以是用户密码或所有者密码。 如果当前文档未使用密码加密,只需传递空字符串。默认值:空字符串。
返回
FSErrSuccess 表示成功。
FSErrFile 表示访问当前文档时发生任何错误。
FSErrPassword 表示输入密码错误。
FSErrFormat 表示当前文档内容的格式不是PDF或文件已损坏。
FSErrSecurityHandler 表示当前PDF文档由某些不支持的安全处理程序加密。
FSErrCertificate 表示当前PDF文档由数字证书加密, 当前用户没有正确的证书。
对于其他错误代码值,请参考从 FSErrSuccess 开始的值以获取更多详情。

◆ loadW:()

- (FSErrorCode) loadW: (NSString *)  password

使用指定密码加载当前文档内容。

如果当前PDF文档对象是使用AsyncReaderCallback构造的,这意味着进行异步加载, 此函数可能返回 FSErrDataNotReady 。 在这种情况下,用户应该为回调函数 FSAsyncReaderCallback::addDownloadHint:size: 通知的指定范围准备数据,然后再次调用此函数。

参数
[in]password用于加载当前文档内容的密码字符串。密码可以是用户密码或所有者密码。 如果当前文档未使用密码加密,只需传递空字符串。默认值:空字符串。
返回
FSErrSuccess 表示成功。
FSErrFile 表示访问当前文档时发生任何错误。
FSErrPassword 表示输入密码错误。
FSErrFormat 表示当前文档内容的格式不是PDF或文件已损坏。
FSErrSecurityHandler 表示当前PDF文档由某些不支持的安全处理程序加密。
FSErrCertificate 表示当前PDF文档由数字证书加密, 当前用户没有正确的证书。
对于其他错误代码值,请参考从 FSErrSuccess 开始的值以获取更多详情。

◆ movePagesTo:dest_index:()

- (BOOL) movePagesTo: (FSRange*)  page_range
dest_index: (int)  dest_index 

将一个或多个页面(按索引指定)移动到新位置。

如果只移动一个页面,此函数与函数 FSPDFDoc::movePageTo:dest_index: 功能相同。
如果移动多个页面,这些页面将保持参数 page_range 中定义的顺序, 并作为一个整体移动到目标索引位置之后,基于当前页面数组。
此函数成功后,移动页面的索引将发生变化,其余页面的索引也可能受到影响。 例如:

  • 原始页面顺序:[0, 1, 2, 3, 4, 5]
  • 要移动的页面:[0, 1]
  • 目标索引:4(移动到索引4之后)
  • 结果顺序:[2, 3, 4, 0, 1, 5]。


参数
[in]page_range应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序(由此范围指定)并作为一个整体移动。 如果范围中存在重复的索引,只有最后一次出现的才有用。
[in]dest_index目标位置的索引,基于当前页面数组。 页面将作为一个整体移动到目标索引位置之后。 如果要将页面移动到文档开头,将目标索引设置为任何负值,如-1。 如果要将页面移动到文档末尾,设置大于最后页面索引的目标索引。
返回
YES 表示成功或无需移动当前页面,NO 表示失败。

◆ movePageTo:dest_index:()

- (BOOL) movePageTo: (FSPDFPage*)  page
dest_index: (int)  dest_index 

将指定页面移动到新位置。

page 将移动到目标索引位置之后。如果指定页面成功移动到新位置, 指定页面的新索引和旧索引之间所有页面的页面索引也将发生变化。 例如,

  • 原始页面顺序:[0, 1, 2, 3, 4, 5]
  • 要移动的页面:[0]
  • 目标索引:4(移动到索引4之后)
  • 结果顺序:[1, 2, 3, 4, 0, 5]。


参数
[in]page要移动的PDF页面。它应该在当前PDF文档中。
[in]dest_index当前页面数组中目标位置的索引。page 将移动到目标索引位置之后。 count 由函数 FSPDFDoc::getPageCount 返回。
如果要将页面移动到文档开头,将目标索引设置为任何负值,如-1。 如果要将页面移动到文档末尾,设置大于最后页面索引的目标索引。 如果参数 dest_index 与参数 page 的页面索引相同, 不会进行任何更改,此函数将直接返回YES。
返回
YES 表示成功或无需移动当前页面,NO 表示失败。

◆ removeAllHeaderFooters()

- (BOOL) removeAllHeaderFooters

删除所有页眉页脚。

返回
YES 表示成功,NO 表示失败。

◆ removeBookmark:()

- (BOOL) removeBookmark: (FSBookmark*)  bookmark

删除指定的书签。

参数
[in]bookmark要删除的有效书签。
返回
YES 表示成功,NO 表示失败。

◆ removeHiddenInfo:()

- (void) removeHiddenInfo: (FSHiddenInfoSettingData*)  hidden_data_setting

根据用户定义的设置从当前PDF文档中删除指定类型的隐藏信息。

此方法提供对清理过程的精细控制。只有在提供的设置对象中启用的数据类型才会被删除。 它允许选择性删除诸如元数据、书签、隐藏文本、图层、注释、链接等元素。

参数
[in]hidden_data_setting一个 FSHiddenInfoSettingData 对象,定义要删除的隐藏数据类型。
返回
无。

◆ removeOpenAction()

- (BOOL) removeOpenAction

移除文档打开时要执行的动作。

返回
YES表示成功,NO表示失败。

◆ removePage:()

- (BOOL) removePage: (int)  index

通过页面索引删除PDF页面。

参数
[in]index页面索引。有效范围:从0到(count-1)。 count 由函数 FSPDFDoc::getPageCount 返回。
返回
YES 表示成功,NO 表示失败。

◆ removePageWithPDFPage:()

- (BOOL) removePageWithPDFPage: (FSPDFPage*)  page

删除指定的PDF页面。

一旦指定的PDF页面被成功删除,页面对象就不能再使用。

参数
[in]page表示要删除的PDF页面的PDF页面对象。页面应该在当前PDF文档中。
返回
YES 表示成功,NO 表示失败。

◆ removeReadingBookmark:()

- (BOOL) removeReadingBookmark: (FSReadingBookmark*)  reading_bookmark

从当前PDF文档中删除阅读书签。

参数
[in]reading_bookmark要删除的有效阅读书签。
返回
YES 表示成功,NO 表示失败。

◆ removeSecurity()

- (BOOL) removeSecurity

从当前文档中移除安全处理程序,以便后续保存的文档将是未加密的。

返回
YES表示成功,NO表示失败。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义模块"RMS", 这意味着用户没有使用RMS相关功能的权限,此函数将抛出异常 FSErrNoRMSModuleRight 。

◆ removeSignature:()

- (void) removeSignature: (FSSignature*)  signature

删除签名。

参数
[in]signature要删除的有效签名。如果此签名的类型是 FSSignatureSignatureTypePagingSeal ,此函数 将删除与此签名相关的所有签名。
返回
无。

◆ removeStructTree()

- (void) removeStructTree

移除当前文档中的结构树。

返回
无。

◆ sanitize()

- (void) sanitize

使用默认设置从当前PDF文档中删除所有隐藏或潜在敏感信息。

此方法对PDF文档执行完整的清理。它自动检测并删除元数据、注释、隐藏文本、 文件附件、注释以及其他可能包含隐藏或私人信息的元素。

返回
无。

◆ saveAs:save_flags:()

- (BOOL) saveAs: (NSString *)  file_path
save_flags: (unsigned int)  save_flags 

将当前PDF文档另存为另一个PDF文件。

如果当前文档是从现有PDF文件加载的,并且在保存之前通过 FSPDFDoc::fileVersion 设置了不同的文件版本,Foxit PDF SDK将忽略参数 save_flags 中的 FSPDFDocSaveFlagIncremental 并在保存的PDF文件中使用文件版本。

参数
[in]file_path新保存的PDF文件的完整路径。它不应该是空字符串。
[in]save_flags文档保存标志。请参考从 FSPDFDocSaveFlagNormal 开始的值, 这可以是这些值中的一个或组合。 默认值: FSPDFDocSaveFlagNormal 。
返回
YES 表示保存成功完成,NO 表示失败。
注解
此函数不支持将当前PDF文档对象保存回用于构造当前PDF对象的PDF文件。 为了这样做,建议用户按照以下步骤操作:
假设当前PDF对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将当前PDF对象保存到临时文件。这里,此临时文件名为"temp.tmp"。
  2. 确保当前PDF对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开保存的PDF文件进行其他操作。

◆ saveAsWrapperFile:wrapper_data:user_permissions:owner_password:()

- (BOOL) saveAsWrapperFile: (NSString *)  file_path
wrapper_data: (FSWrapperData*)  wrapper_data
user_permissions: (unsigned int)  user_permissions
owner_password: (NSString *)  owner_password 

将当前PDF文档另存为包装文件。

PDF包装是一个扩展标准,它帮助向查看器提示一些信息。
PDF包装包含

  • 包装类型:它是一个标识字符串,
  • 包装偏移量:它告诉原始数据的结束位置,
  • 包装模板:它是包装文档的内容。

此函数使用由 file_path 指定的文件的当前大小来设置包装偏移量。

参数
[in]file_pathPDF文件的完整路径。 当前PDF文档将作为包装文件保存到此PDF文件中。
[in]wrapper_data包装数据。如果这是nil,则不使用包装数据。 默认值:nil。
[in]user_permissions包装文档的用户权限。如果不需要特殊权限,传递0xFFFFFFFC。 请参考从 FSPDFDocPermPrint 开始的值, 这应该是这些值中的一个或组合。默认值:0xFFFFFFFC。
[in]owner_password所有者密码。如果这是空字符串,参数 user_permissions 将被忽略。 默认值:空字符串。
返回
YES 表示成功,NO 表示失败。

◆ setCacheFile:is_own_file_stream:()

- (void) setCacheFile: (id<FSFileStreamCallback>)  file_stream
is_own_file_stream: (BOOL)  is_own_file_stream 

设置缓存文件 (代表文件流) 到当前PDF文档。

当生成内容流时,缓存文件可以被用于缓存大量数据。

参数
[in]file_stream由用户实现 FSFileStreamCallback 对象用于数据缓存。 它可以是 nil 。它是 nil ,原始缓存文件将被释放。
[in]is_own_file_stream用于决定福昕PDF SDK 是否应该持有输入流回调对象所有权 :
YES 表示输入流对象将被福昕PDF SDK销毁 (当不再为当前文档缓存数据时,可以通过调用接口 StreamCallback::Release 释放)。
NO 表示用户应该负责销毁回调对象。
返回
无。

◆ setOpenAction:()

- (BOOL) setOpenAction: (FSAction*)  action

设置文档打开时要执行的动作。

参数
[in]action要设置的有效动作。目前仅支持以下类型作为新动作:
FSActionTypeGoto , FSActionTypeURI , FSActionTypeJavaScript , FSActionTypeNamed , FSActionTypeSubmitForm , FSActionTypeResetForm , FSActionTypeHide , FSActionTypeImportData 。
返回
YES表示成功,NO表示失败。

◆ setSecurityHandler:()

- (BOOL) setSecurityHandler: (FSSecurityHandler*)  handler

为加密设置PDF安全处理程序,如标准加密(密码)、 证书加密等。

参数
[in]handlerPDF安全处理程序对象。
返回
YES表示成功,NO表示失败。
注解
如果在函数 FSLibrary::initialize:key: 中使用的许可证信息中未定义模块"RMS", 这意味着用户没有使用RMS相关功能的权限,此函数将抛出异常 FSErrNoRMSModuleRight 。

◆ startAddTiledWatermark:settings:properties:page_range:pause:()

- (FSProgressive *) startAddTiledWatermark: (NSString *)  text
settings: (FSTiledWatermarkSettings*)  settings
properties: (FSWatermarkTextProperties*)  properties
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

添加文本平铺水印到页面中。

如果水印被平铺到多页,这些页面将保持参数page_range的顺序 如果参数 page_range 被初始化为空, 平铺水印将被添加到所有页面中。另外,动态XFA不支持添加平铺水印。

参数
[in]text文本字符串。它将用于平铺水印的内容,它不能为空。
[in]settings平铺水印设置,包含布局设置。
[in]properties平铺水印文本属性。
[in]page_range应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序(由此范围指定)并作为一个整体移动。 如果范围中存在重复的索引,只有最后一次出现的才有用。

[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
步进式进度对象。 请通过函数 FSProgressive::getRateOfProgress 检查当前进度。如果当前进度比率没有到100,需要调用 FSProgressive::resume 继续进度直到进度完成。

◆ startAddTiledWatermarkWithImagepath:settings:page_range:pause:()

- (FSProgressive *) startAddTiledWatermarkWithImagepath: (NSString *)  src_img_file_path
settings: (FSTiledWatermarkSettings*)  settings
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

Add image type tiled watermark to PDF pages by image path.

如果水印被平铺到多页,这些页面将保持参数page_range的顺序 如果参数 page_range 被初始化为空, 平铺水印将被添加到所有页面中。另外,动态XFA不支持添加平铺水印。
图像平铺水印支持 .bmp .dib .jpg .jpeg .jpe .gif .png .tif .tiff 格式。

参数
[in]src_img_file_path图像文件路径。这个不应该为空。
[in]settings平铺水印设置,包含布局设置。
[in]page_range应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序(由此范围指定)并作为一个整体移动。 如果范围中存在重复的索引,只有最后一次出现的才有用。

[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
步进式进度对象。 请通过函数 FSProgressive::getRateOfProgress 检查当前进度。如果当前进度比率没有到100,需要调用 FSProgressive::resume 继续进度直到进度完成。

◆ startAddTiledWatermarkWithImagestream:settings:page_range:pause:()

- (FSProgressive *) startAddTiledWatermarkWithImagestream: (id<FSFileReaderCallback>)  src_img_stream
settings: (FSTiledWatermarkSettings*)  settings
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

通过图像流添加图片类型平铺水印到页面中。

如果水印被平铺到多页,这些页面将保持参数page_range的顺序 如果参数 page_range 被初始化为空, 平铺水印将被添加到所有页面中。另外,动态XFA不支持添加平铺水印。
图像平铺水印支持 .bmp .dib .jpg .jpeg .jpe .gif .png .tif .tiff 格式。

参数
[in]src_img_streamFSFileReaderCallback 对象用于用户传递图像数据给福昕PDF SDK, 它一定是有效的。
[in]settings平铺水印设置,包含布局设置。
[in]page_range应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序(由此范围指定)并作为一个整体移动。 如果范围中存在重复的索引,只有最后一次出现的才有用。

[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
步进式进度对象。 请通过函数 FSProgressive::getRateOfProgress 检查当前进度。如果当前进度比率没有到100,需要调用 FSProgressive::resume 继续进度直到进度完成。

◆ startAddTiledWatermarkWithPDFPage:settings:page_range:pause:()

- (FSProgressive *) startAddTiledWatermarkWithPDFPage: (FSPDFPage*)  page
settings: (FSTiledWatermarkSettings*)  settings
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

添加页面类型平铺水印。

如果水印被平铺到多页,这些页面将保持参数page_range的顺序 如果参数 page_range 被初始化为空, 平铺水印将被添加到所有页面中。另外,动态XFA不支持添加平铺水印。

参数
[in]page有效的页面对象,内容用于添加平铺水印。
[in]settings平铺水印设置,包含布局设置。
[in]page_range应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序(由此范围指定)并作为一个整体移动。 如果范围中存在重复的索引,只有最后一次出现的才有用。

[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
步进式进度对象。 请通过函数 FSProgressive::getRateOfProgress 检查当前进度。如果当前进度比率没有到100,需要调用 FSProgressive::resume 继续进度直到进度完成。

◆ startEmbedAllFonts:()

- (FSProgressive *) startEmbedAllFonts: (id<FSPauseCallback>)  pause

开始转换所有未嵌入字体为内嵌字体。

转换将花费很长事件, 所以这个接口使用步进式完成。
这个接口只工作与可用的字体来嵌入,字体是否支持内嵌可以通过 FSFont::isSupportEmbedded: 检查。
内嵌后,这个接口将删除原始字体对象,然而,原始字体在文档中的引用将仍然存在。

参数
[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
步进式进度对象。 请通过函数 FSProgressive::getRateOfProgress 检查当前进度。如果当前进度比率没有到100,需要调用 FSProgressive::resume 继续进度直到进度完成。

◆ startExtractPages:options:page_range:pause:()

- (FSProgressive *) startExtractPages: (NSString *)  file_path
options: (unsigned int)  options
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

开始从当前PDF文档提取页面。

提取页面可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。

参数
[in]file_path用于保存提取页面的新保存PDF文件的完整路径。不应为空字符串。
[in]options提取页面的选项。请参考从 FSPDFDocExtractPagesOptionAnnotation 开始的值, 这可以是这些值中的一个或组合。0表示不使用任何选项。
[in]page_range指定要提取哪些页面的范围对象。如果此范围对象通过默认构造函数构造 且未设置任何值,将提取当前文档中的所有页面。 默认值:通过默认构造函数构造且未设置任何值的范围对象。
[in]pause决定提取过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startExtractPagesWithWriterCallback:options:page_range:pause:()

- (FSProgressive *) startExtractPagesWithWriterCallback: (id<FSFileWriterCallback>)  file
options: (unsigned int)  options
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

开始从当前PDF文档提取页面。

提取页面可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。

参数
[in]file用户实现的 FSFileWriterCallback 对象, 用于以自定义方式存储所有提取页面的数据。
[in]options提取页面的选项。请参考从 FSPDFDocExtractPagesOptionAnnotation 开始的值, 这可以是这些值中的一个或组合。0表示不使用任何选项。
[in]page_range指定要提取哪些页面的范围对象。如果此范围对象通过默认构造函数构造 且未设置任何值,将提取当前文档中的所有页面。 默认值:通过默认构造函数构造且未设置任何值的范围对象。
[in]pause决定提取过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startGetPayloadFile:pause:()

- (FSProgressive *) startGetPayloadFile: (id<FSFileWriterCallback>)  payload_file
pause: (id<FSPauseCallback>)  pause 

开始获取载荷文件。

获取载荷文档可能需要很长时间,因此此函数使用渐进式过程来执行此操作。

参数
[in]payload_fileWriterCallback回调对象。用户应该在此回调对象中实现回调函数, 以便此回调对象可以用于保存载荷文件。
[in]pause暂停回调对象,用于决定解析过程是否需要暂停。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startImportPages:src_doc:flags:layer_name:page_range:pause:()

- (FSProgressive *) startImportPages: (int)  dest_index
src_doc: (FSPDFDoc*)  src_doc
flags: (unsigned int)  flags
layer_name: (NSString *)  layer_name
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

开始从另一个PDF文档(通过PDF文档对象)导入页面。

导入页面可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。
源PDF文档页面中的已签名签名不会导入到当前PDF文档中。
目前,如果当前PDF文档或源PDF文档包含XFA,Foxit PDF SDK 不支持进行导入。
如果此函数用于合并两个PDF文件,强烈建议将页面导入到目标PDF文件的末尾, 而不是目标PDF文件的开头。

参数
[in]dest_index当前PDF文档中的页面索引。用于指定导入页面的插入位置: 如果参数 dest_index 小于0,导入的页面将插入到第一个位置。
如果参数 dest_index 等于或大于当前页面数量, 导入的页面将插入到末尾。
[in]src_doc作为源PDF文档的PDF文档对象。此文档中的页面将导入到 当前PDF文档。请保持此源PDF文档对象有效, 直到当前文档不再保存或关闭。
[in]flags导入页面的选项。请参考从 FSPDFDocImportFlagNormal 开始的值, 这可以是这些值中的一个或组合。 默认值: FSPDFDocImportFlagNormal 。
[in]layer_name要在应用程序图层面板中显示的不可选择标签的名称或不可选择标签的前缀名称。 默认值:空字符串。
如果参数 flags 包含 FSPDFDocImportFlagWithLayers , 这不应为空,应为有效字符串。 如果参数 flags 不包含 FSPDFDocImportFlagWithLayers , 此字符串将被忽略。
  • 如果要将源PDF文档的所有页面导入到当前文档, 源文档的所有图层将分组在一个不可选择的标签下, 此字符串将直接用作标签。
  • 如果只导入源PDF文档的部分页面到当前文档, 同一页面中的图层将分组在单个不可选择的标签下, 此字符串将用作标签的前缀名称。 标签将类似于"layerName_Page_X"。

[in]page_range指定要插入哪些页面的范围对象。如果此范围对象通过默认构造函数构造 且未设置任何值,将导入源文档中的所有页面。 默认值:通过默认构造函数构造且未设置任何值的范围对象。
[in]pause决定导入过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startImportPagesFromFilePath:src_file_path:password:flags:layer_name:page_range:pause:()

- (FSProgressive *) startImportPagesFromFilePath: (int)  dest_index
src_file_path: (NSString *)  src_file_path
password: (NSString *)  password
flags: (unsigned int)  flags
layer_name: (NSString *)  layer_name
page_range: (FSRange*)  page_range
pause: (id<FSPauseCallback>)  pause 

开始从另一个PDF文档(通过文件路径)导入页面。

导入页面可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。
源PDF文档页面中的已签名签名不会导入到当前PDF文档中。
目前,如果当前PDF文档或源PDF文档包含XFA,Foxit PDF SDK不支持进行导入。
如果此函数用于合并两个PDF文件,强烈建议将页面导入到目标PDF文件的末尾, 而不是目标PDF文件的开头。

参数
[in]dest_index当前PDF文档中的页面索引。用于指定导入页面的插入位置。 如果参数 dest_index 小于0,导入的页面将插入到第一个位置。
如果参数 dest_index 等于或大于当前页面数量, 导入的页面将插入到末尾。
[in]src_file_path作为源PDF文档的现有PDF文件的完整路径。 将从此PDF文件导入一些页面到当前PDF文档。
[in]password用于加载源PDF文档内容的密码字符串。 密码可以是用户密码或所有者密码。如果源PDF文档未使用密码加密, 只需传递空字符串。
[in]flags导入页面的选项。请参考从 FSPDFDocImportFlagNormal 开始的值, 这可以是这些值中的一个或组合。 默认值: FSPDFDocImportFlagNormal 。
[in]layer_name要在应用程序图层面板中显示的不可选择标签的名称或不可选择标签的前缀名称。 默认值:空字符串。
如果参数 flags 包含 FSPDFDocImportFlagWithLayers , 这不应为空,应为有效字符串。 如果参数 flags 不包含 FSPDFDocImportFlagWithLayers , 此字符串将被忽略。
  • 如果要将源PDF文档的所有页面导入到当前文档, 源文档的所有图层将分组在一个不可选择的标签下, 此字符串将直接用作标签。
  • 如果只导入源PDF文档的部分页面到当前文档, 同一页面中的图层将分组在单个不可选择的标签下, 此字符串将用作标签的前缀名称。 标签将类似于"layerName_Page_X"。

[in]page_range指定要导入哪些页面的范围对象。如果此范围对象通过默认构造函数构造 且未设置任何值,将导入源文档中的所有页面。 默认值:通过默认构造函数构造且未设置任何值的范围对象。
[in]pause决定导入过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startIntegrityProtection:user_password:owner_password:digest_algorithm:permissions:is_encrypt_metadata:pause:()

- (FSProgressive *) startIntegrityProtection: (NSString *)  file_path
user_password: (NSString *)  user_password
owner_password: (NSString *)  owner_password
digest_algorithm: (FSPDFDocIntegrityProtectionDigestAlgorithm)  digest_algorithm
permissions: (unsigned int)  permissions
is_encrypt_metadata: (BOOL)  is_encrypt_metadata
pause: (id<FSPauseCallback>)  pause 

开始为 PDF 文档生成独立完整性保护(UTF-8 路径版本)。

此函数使用渐进式流程为文档生成完整性保护。 完整性保护提供了一种机制,用于检测对 PDF 内容的未经授权的修改。 在独立模式下,完整性值独立存储,不需要数字签名。

参数
[in]file_path输出文件路径(UTF-8 编码)。不能为空字符串。
[in]user_password用户密码。不能为空。
[in]owner_password所有者密码。可以为空。
[in]digest_algorithm用于生成完整性值的摘要算法。 请参考从 FSPDFDocDigestAlgSHA256 开始的值, 且应为其中一个值。
[in]permissions用户权限。第 13 位必须为 0,且第 9 位 (权限 FSPDFDocPermFillForm )必须为 0。 不允许填写已有的交互式表单字段。
[in]is_encrypt_metadataYES 表示加密元数据,NO 表示不加密。
[in]pause决定流程是否需要暂停的暂停回调对象。 可以为 nil,表示流程中不暂停。 默认值:nil。
返回
渐进对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度。 如果进度尚未达到 100,请调用函数 FSProgressive::resume 继续,直到完成。

◆ startIntegrityProtectionWithSignature:cert_file_path:cert_password:user_password:owner_password:digest_algorithm:permissions:is_encrypt_metadata:pause:()

- (FSProgressive *) startIntegrityProtectionWithSignature: (NSString *)  file_path
cert_file_path: (NSString *)  cert_file_path
cert_password: (NSString *)  cert_password
user_password: (NSString *)  user_password
owner_password: (NSString *)  owner_password
digest_algorithm: (FSPDFDocIntegrityProtectionDigestAlgorithm)  digest_algorithm
permissions: (unsigned int)  permissions
is_encrypt_metadata: (BOOL)  is_encrypt_metadata
pause: (id<FSPauseCallback>)  pause 

开始生成附加到签名字段的完整性保护(UTF-8 路径版本)。

此函数使用渐进式流程生成完整性保护,并将其附加到签名字段。 此模式将完整性保护与数字签名相结合,提供更强的文档安全性。

参数
[in]file_path输出文件路径(UTF-8 编码)。不能为空字符串。
[in]cert_file_path证书文件路径(UTF-8 编码)。不能为空字符串。
[in]cert_password证书文件的密码。
[in]user_password用户密码。不能为空。
[in]owner_password所有者密码。可以为空。
[in]digest_algorithm用于生成完整性值的摘要算法。 请参考从 FSPDFDocDigestAlgSHA256 开始的值, 且应为其中一个值。
[in]permissions用户权限。第 13 位必须为 0,且第 9 位 (权限 FSPDFDocPermFillForm )必须为 0。 不允许填写已有的交互式表单字段。
[in]is_encrypt_metadataYES 表示加密元数据,NO 表示不加密。
[in]pause决定流程是否需要暂停的暂停回调对象。 可以为 nil,表示流程中不暂停。 默认值:nil。
返回
渐进对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度。 如果进度尚未达到 100,请调用函数 FSProgressive::resume 继续,直到完成。

◆ startLoad:is_cache_stream:pause:()

- (FSProgressive *) startLoad: (NSString *)  password
is_cache_stream: (BOOL)  is_cache_stream
pause: (id<FSPauseCallback>)  pause 

开始使用指定密码加载当前文档内容。

加载文档内容可能需要很长时间,因此此函数使用渐进过程来 执行此操作。
使用此函数时,参数is_cache_stream可用于决定是否将 流内容加载到内存中:

  • 将流内容加载到内存中将提高频繁访问的性能,但是, 它也将消耗大量内存空间。
  • 不将流内容加载到内存中,意味着将流内容留在文件系统上, 并在需要时读取它们。这可能会稍微降低性能,但会大大减少 内存消耗,特别是当文件很大时。


参数
[in]password用于加载当前文档内容的密码字符串。密码可以是 用户密码或所有者密码。如果当前文档未使用 密码加密,只需传递空字符串。默认值:空字符串。
[in]is_cache_streamYES表示将流内容加载到内存中,NO表示不将 流内容加载到内存中,只将流内容留在文件系统上并在 需要时读取它们。请参考"详情"部分了解这两种模式之间的区别。 默认值:YES。
[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
一个渐进对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的比率。 如果比率尚未达到100,请调用函数 FSProgressive::resume 继续进度, 直到进度完成。

◆ startLoadW:is_cache_stream:pause:()

- (FSProgressive *) startLoadW: (NSString *)  password
is_cache_stream: (BOOL)  is_cache_stream
pause: (id<FSPauseCallback>)  pause 

开始使用指定密码加载当前文档内容。

加载文档内容可能需要很长时间,因此此函数使用渐进过程来 执行此操作。
使用此函数时,参数is_cache_stream可用于决定是否将 流内容加载到内存中:

  • 将流内容加载到内存中将提高频繁访问的性能,但是, 它也将消耗大量内存空间。
  • 不将流内容加载到内存中,意味着将流内容留在文件系统上, 并在需要时读取它们。这可能会稍微降低性能,但会大大减少 内存消耗,特别是当文件很大时。


参数
[in]password用于加载当前文档内容的密码字符串。密码可以是 用户密码或所有者密码。如果当前文档未使用 密码加密,只需传递空字符串。默认值:空字符串。
[in]is_cache_streamYES表示将流内容加载到内存中,NO表示不将 流内容加载到内存中,只将流内容留在文件系统上并在 需要时读取它们。请参考"详情"部分了解这两种模式之间的区别。 默认值:YES。
[in]pause决定加载过程是否需要暂停的暂停对象。 这可以是nil,表示在解析过程中不暂停。 如果这不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
一个渐进对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的比率。 如果比率尚未达到100,请调用函数 FSProgressive::resume 继续进度, 直到进度完成。

◆ startRecognizeForm:()

- (FSProgressive *) startRecognizeForm: (id<FSPauseCallback>)  pause

开始识别表单域。

识别表单可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。
对于Windows平台,在调用这个函数之前,强烈建议用户通过调用 addon::ocr::OCREngine::Initialize 初始化OCR引擎。

参数
[in]pause决定替换过程是否需要暂停的暂停对象。 这可以是nil,表示在替换过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startRecognizeFormWithToolTips:pause:()

- (FSProgressive *) startRecognizeFormWithToolTips: (BOOL)  is_set_tool_tips
pause: (id<FSPauseCallback>)  pause 

开始识别表单域。

识别表单可能需要很长时间,因此Foxit PDF SDK使用渐进式过程来执行此操作。
对于Windows平台,在调用这个函数之前,强烈建议用户通过调用 addon::ocr::OCREngine::Initialize 初始化OCR引擎。

参数
[in]is_set_tool_tipsYES 意味着对识别表单设置提示, NO 表示不设置。
[in]pause决定替换过程是否需要暂停的暂停对象。 这可以是nil,表示在替换过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startSaveAs:save_flags:pause:()

- (FSProgressive *) startSaveAs: (NSString *)  file_path
save_flags: (unsigned int)  save_flags
pause: (id<FSPauseCallback>)  pause 

开始将当前PDF文档另存为另一个PDF文件。

保存PDF文档可能需要很长时间,因此此函数使用渐进式过程来执行此操作。
如果当前文档是从现有PDF文件加载的,并且在保存之前通过 FSPDFDoc::fileVersion 设置了不同的文件版本,Foxit PDF SDK将忽略参数 save_flags 中的 FSPDFDocSaveFlagIncremental 并在保存的PDF文件中使用文件版本。

参数
[in]file_path新保存的PDF文件的完整路径。它不应该是空字符串。
[in]save_flags文档保存标志。请参考从 FSPDFDocSaveFlagNormal 开始的值, 这可以是这些值中的一个或组合。 默认值: FSPDFDocSaveFlagNormal 。
[in]pause暂停回调对象,用于决定解析过程是否需要暂停。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。
注解
此函数不支持将当前PDF文档对象保存回用于构造当前PDF对象的PDF文件。 为了这样做,建议用户按照以下步骤操作:
假设当前PDF对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将当前PDF对象保存到临时文件。这里,此临时文件名为"temp.tmp"。
  2. 确保当前PDF对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开保存的PDF文件进行其他操作。

◆ startSaveAsPayloadFile:payload_file_path:crypto_filter:description:version:save_flags:pause:()

- (FSProgressive *) startSaveAsPayloadFile: (NSString *)  file_path
payload_file_path: (NSString *)  payload_file_path
crypto_filter: (NSString *)  crypto_filter
description: (NSString *)  description
version: (float)  version
save_flags: (unsigned int)  save_flags
pause: (id<FSPauseCallback>)  pause 

开始将当前PDF文档另存为带有载荷文档的包装文档(在PDF 2.0中定义)。

保存PDF文档可能需要很长时间,因此此函数使用渐进式过程来执行此操作。
如果当前文档是从现有PDF文件加载的,并且在保存之前通过 FSPDFDoc::fileVersion 设置了不同的文件版本,Foxit PDF SDK将忽略参数 save_flags 中的 FSPDFDocSaveFlagIncremental 并在保存的PDF文件中使用文件版本。

参数
[in]file_path新保存的PDF文件的完整路径。它不应该是空字符串。
[in]payload_file_path将用作载荷文档的PDF文档的完整路径。 它不应该是空字符串。
[in]crypto_filter用于加密加密载荷文档的加密过滤器的名称。
[in]description包装文件的描述,用于向应用程序显示或面对用户提示信息。
[in]version用于加密此字典引用的加密载荷的加密过滤器的版本号。
[in]save_flags文档保存标志。请参考从 FSPDFDocSaveFlagNormal 开始的值, 这可以是这些值中的一个或组合。 默认值: FSPDFDocSaveFlagNormal 。
[in]pause暂停回调对象,用于决定解析过程是否需要暂停。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。

◆ startSaveAsWithWriterCallback:save_flags:pause:()

- (FSProgressive *) startSaveAsWithWriterCallback: (id<FSFileWriterCallback>)  file
save_flags: (unsigned int)  save_flags
pause: (id<FSPauseCallback>)  pause 

开始将当前PDF文档另存为另一个PDF文件。

保存PDF文档可能需要很长时间,因此此函数使用渐进式过程来执行此操作。
如果当前文档是从现有PDF文件加载的,并且在保存之前通过 FSPDFDoc::fileVersion 设置了不同的文件版本,Foxit PDF SDK将忽略参数 save_flags 中的 FSPDFDocSaveFlagIncremental 并在保存的PDF文件中使用文件版本。

参数
[in]file用户实现的 FSFileWriterCallback 对象,用于保存PDF文档。
[in]save_flags文档保存标志。请参考从 FSPDFDocSaveFlagNormal 开始的值, 这可以是这些值中的一个或组合。 默认值: FSPDFDocSaveFlagNormal 。
[in]pause暂停回调对象,用于决定解析过程是否需要暂停。 这可以是nil,表示在解析过程中不暂停。 如果不是nil,它应该是用户实现的有效暂停对象。 默认值:nil。
返回
渐进式对象。请通过函数 FSProgressive::getRateOfProgress 检查当前进度的速率。 如果速率还不是100,调用函数 FSProgressive::resume 继续进度直到进度完成。
注解
此函数不支持将当前PDF文档对象保存回用于构造当前PDF对象的PDF文件。 为了这样做,建议用户按照以下步骤操作:
假设当前PDF对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将当前PDF对象保存到临时文件。这里,此临时文件名为"temp.tmp"。
  2. 确保当前PDF对象已析构——这等同于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
然后用户可以打开保存的PDF文件进行其他操作。

◆ updateHeaderFooter:()

- (void) updateHeaderFooter: (FSHeaderFooter*)  headerfooter

更新页眉页脚。

PDF文档可以多次添加页眉页脚。当页眉页脚被更新到文档时, 与新页眉页脚出现在同一位置的旧页眉页脚将全部被删除,然后添加新的页眉页脚。

参数
[in]headerfooter要更新到当前文档的有效页眉页脚对象。
返回
无。

属性说明

◆ displayMode

- (FSPDFDocDisplayMode) displayMode
readwritenonatomicassign

获取显示模式。

显示模式指定文档打开时应如何显示。