Foxit PDF SDK

Public 成员函数 | 静态 Public 属性 | 所有成员列表
FSDK::PDFDoc类 参考

## Public 成员函数
| AddIndirectObject (pdf_object)
| 将PDF对象添加到当前PDF文档，使其成为间接对象。 更多...
| AddPageFromTemplate (template_name)
| 从命名模板向文档添加新的PDF页面。 更多...
| AddPagingSealSignature (page_range, width, height, to_check_permission)
| 根据页面范围向文档添加页码章签名。 更多...
| AddTableOfContents (table_of_contents_config)
| 将页面作为目录表插入到当前PDF文档的最前面。 更多...
| AddTableOfContents (title, bookmark_level_array)
| 将页面作为目录表插入到当前PDF文档的最前面。 更多...
| CheckPassword (password)
| 检查指定密码的类型。 更多...
| ClearRenderCache ()
| 清除渲染过程中使用的缓存，以减少内存使用。 更多...
| constructor ()
| 构造函数。 更多...
| constructor (buffer, size)
| 从内存缓冲区构造的构造函数。 更多...
| constructor (file_read, is_async)
| 使用文件读取回调对象构造的构造函数。 更多...
| constructor (path)
| 从现有PDF文件路径构造的构造函数。 更多...
| CreateDSS ()
| 在当前PDF文档中创建DSS信息。 更多...
| CreateRootBookmark ()
| 创建新的书签根节点。 更多...
| DeleteIndirectObject (object_number)
| 通过间接对象编号删除间接对象。 更多...
| DoJSOpenAction ()
| 打开文档时执行JavaScript动作。 更多...
| ExportAnnotToFDF (pdf_annot, fdf_doc)
| 将指定的批注导出到FDF/XFDF文档。 更多...
| ExportFormFieldsToFDF (field_array, is_include, fdf_doc)
| 将指定的表单域导出到FDF/XFDF文档。 更多...
| ExportToFDF (fdf_doc, types, page_range)
| 将表单域和批注导出到FDF/XFDF文档。 更多...
| GetAllPageBasicInfo ()
| 获取所有页面的基本信息。 更多...
| GetAnnotsByIdArray (unique_id_arr)
| 通过唯一ID数组获取批注。 更多...
| GetBookmarkLevelDepth ()
| 获取书签层级深度。 更多...
| GetCatalog ()
| 获取目录字典。 更多...
| GetCertificateEncryptData ()
| 获取证书加密的加密数据。 更多...
| GetCustomEncryptData ()
| 获取自定义加密的加密数据。 更多...
| GetDisplayMode ()
| Get the display mode. 更多...
| GetDRMEncryptData ()
| 获取Foxit DRM加密的加密数据。 更多...
| GetEmbeddedFontData ()
| 获取嵌入的字体数据。 更多...
| GetEncryptDict ()
| 获取加密字典。 更多...
| GetEncryptionType ()
| 获取加密类型。 更多...
| GetFileSize ()
| 获取文件大小。 更多...
| GetFileVersion ()
| 获取存储在PDF头部部分的PDF文件版本。 更多...
| GetFirstAvailPageIndex ()
| 获取第一个可用页面的页面索引。 更多...
| GetFont (index)
| Get a font by index. 更多...
| GetFontCount ()
| Count all the PDF fonts used in current PDF document. 更多...
| GetHeader ()
| 获取标识文件符合的PDF规范版本的PDF头部。 更多...
| GetIndirectObject (object_number)
| 通过间接对象编号获取间接对象。 更多...
| GetInfo ()
| 获取信息字典。 更多...
| GetOpenAction ()
| 获取打开文档时要执行的动作。 更多...
| GetPage (index)
| Get a PDF page by index. 更多...
| GetPageBasicInfo (index)
| 通过索引获取页面的基本信息。 更多...
| GetPageCount ()
| Get the count of pages. 更多...
| GetPagesDict ()
| 获取"Pages"字典。 更多...
| GetPageText (page_index)
| 获取指定PDF页面的文本，其中文本按显示顺序排列。 更多...
| GetPasswordType ()
| 获取当前使用的密码类型。 更多...
| GetPayLoadData ()
| 如果当前文档的包装类型是 FSDK.PDFDoc.e_WrapperPDFV2，则获取有效负载数据。 更多...
| GetReadingBookmark (index)
| 通过索引获取阅读书签。 更多...
| GetReadingBookmarkCount ()
| 获取阅读书签的数量。 更多...
| GetRMSEncryptData ()
| 获取RMS加密的加密数据。 更多...
| GetRootBookmark ()
| 获取书签根节点。 更多...
| GetSecurityHandler ()
| 获取当前文档的当前PDF安全处理程序。 更多...
| GetSignature (index)
| 通过索引获取签名。 更多...
| GetSignatureCount ()
| 获取签名的数量。 更多...
| GetStdEncryptData ()
| 获取标准加密（称为密码加密）的加密数据。 更多...
| GetTrailer ()
| 获取文件尾字典。 更多...
| GetUserPassword (owner_password)
| 根据所有者密码获取用户密码。 更多...
| GetUserPermissions ()
| 获取用户访问权限。 更多...
IsWrapper() | GetWrapperOffset ()
| 检查当前文档是否为包装文件。 更多...
| HasForm ()
| 检查当前PDF文档是否具有交互式表单（也称为AcroForm）。 更多...
| HasHeaderFooter ()
| 检查当前文档是否具有页眉页脚。 更多...
| HasLayer ()
| 检查当前 PDF 文档是否具有图层（在 <PDF reference 1.7> 中称为“可选内容组”）。 更多...
| HidePageTemplate (template_name)
| 隐藏命名页面。 更多...
| ImportFromFDF (fdf_doc, types, page_range)
| 从FDF/XFDF文档导入表单域和批注。 更多...
| InsertDocument (dest_index, src_doc, options)
| 将另一个PDF文档插入到当前PDF文档的指定位置。 更多...
| InsertDocument (dest_index, src_doc, options, bookmark_title)
| 将另一个PDF文档插入到当前PDF文档的指定位置。 更多...
| InsertPage (index, size)
| 通过索引将新的空白PDF页面插入到文档中。 更多...
| InsertPage (index, width, height)
| 通过索引将新的空白PDF页面插入到文档中。 更多...
| InsertReadingBookmark (reading_bookmark_index, title, dest_page_index)
| 向当前PDF文档插入阅读书签。 更多...
| IsEmpty ()
| 检查当前对象是否为空。 更多...
| IsEncrypted ()
| 检查当前文档是否为加密文件。 更多...
| IsLinearized ()
| 检查当前PDF文档是否为线性化文件。 更多...
| IsOwnerPassword (password)
| 检查输入的密码是否为当前PDF文档的所有者密码。 更多...
| IsPortfolio ()
| 检查当前PDF文档是否为作品集文件。 更多...
| IsTaggedPDF ()
| 检查当前PDF文档是否为标记PDF文件。 更多...
| IsUserPassword (password)
| 检查输入的密码是否为当前PDF文档的用户密码。 更多...
| IsXFA ()
| 检查当前PDF文档是否为XFA文档。 更多...
| Load (password)
| 使用指定的密码加载当前文档内容。 更多...
| LoadW (password)
| 使用指定的密码加载当前文档内容。 更多...
| MovePagesTo (page_range, dest_index)
| 将一个或多个页面（通过索引指定）移动到新位置。 更多...
| MovePageTo (page, dest_index)
| 将指定的页面移动到新位置。 更多...
| RemoveAllHeaderFooters ()
| Remove all header-footers. 更多...
| RemoveBookmark (bookmark)
| Remove a specified bookmark. 更多...
| RemoveHiddenInfo (hidden_data_setting)
| 根据用户定义的设置从当前PDF文档中删除指定类型的隐藏信息。 更多...
| RemoveOpenAction ()
| 删除打开文档时要执行的动作。 更多...
| RemovePage (index)
| 通过页面索引删除PDF页面。 更多...
| RemovePage (page)
| 删除指定的PDF页面。 更多...
| RemoveReadingBookmark (reading_bookmark)
| 从当前PDF文档中删除阅读书签。 更多...
| RemoveSecurity ()
| 从当前文档中删除安全处理程序，以便稍后保存的文档将不加密。 更多...
| RemoveSignature (signature)
| 删除签名。 更多...
| RemoveStructTree ()
| 从当前PDF文档中删除结构树。 更多...
| Sanitize ()
| 使用默认设置从当前PDF文档中删除所有隐藏或可能敏感的信息。 更多...
| SaveAs (file_path, save_flags)
| 将当前PDF文档另存为另一个PDF文件。 更多...
| SaveAsWrapperFile (file_path, wrapper_data, user_permissions, owner_password)
| Save current PDF document as a wrapper file. 更多...
| SetCacheFile (file_stream, is_own_file_stream)
| 为当前PDF文档设置缓存文件（由文件流表示）。 更多...
| SetDisplayMode (display_mode)
| Set the display mode. 更多...
| SetFileVersion (version)
| 设置将存储在保存的PDF文件的PDF头部部分的PDF文件版本。 更多...
| SetOpenAction (action)
| 设置打开文档时要执行的动作。 更多...
| SetSecurityHandler (handler)
| 为加密设置PDF安全处理程序，例如标准加密（密码）、证书加密等。 更多...
| StartAddTiledWatermark (page, settings, page_range, pause)
| 向PDF页面添加页面类型的平铺水印。 更多...
| StartAddTiledWatermark (src_img_file_path, settings, page_range, pause)
| 通过图像路径向PDF页面添加图像类型的平铺水印。 更多...
| StartAddTiledWatermark (src_img_stream, settings, page_range, pause)
| 通过图像流向PDF页面添加图像类型的平铺水印。 更多...
| StartAddTiledWatermark (text, settings, page_range, pause)
| 向PDF页面添加文本类型的平铺水印。 更多...
| StartEmbedAllFonts (pause)
| 开始将所有未嵌入的字体转换为嵌入的字体。 更多...
| StartExtractPages (file, options, page_range, pause)
| 开始从当前PDF文档中提取页面。 更多...
| StartExtractPages (file_path, options, page_range, pause)
| 开始从当前PDF文档中提取页面。 更多...
| StartGetPayloadFile (payload_file, pause)
| 开始获取有效负载文件。 更多...
| StartImportPages (dest_index, src_doc, flags, layer_name, page_range, pause)
| 开始从另一个PDF文档（通过PDF文档对象）导入页面。 更多...
| StartImportPagesFromFilePath (dest_index, src_file_path, password, flags, layer_name, page_range, pause)
| Start to import pages from another PDF document (via file path). 更多...
| StartLoad (password, is_cache_stream, pause)
| 开始使用指定的密码加载当前文档内容。 更多...
| StartLoadW (password, is_cache_stream, pause)
| 开始使用指定的密码加载当前文档内容。 更多...
| StartRecognizeForm (is_set_tool_tips, pause)
| 开始在当前PDF文档中识别表单。 更多...
| StartRecognizeForm (pause)
| 开始在当前PDF文档中识别表单。 更多...
| StartSaveAs (file, save_flags, pause)
| 开始将当前PDF文档另存为另一个PDF文件。 更多...
| StartSaveAs (file_path, save_flags, pause)
| 开始将当前PDF文档另存为另一个PDF文件。 更多...
| StartSaveAsPayloadFile (file_path, payload_file_path, crypto_filter, description, version, ave_flags, pause)
| Start to save current PDF document as a wrapper document with a payload document (defined in PDF 2.0). 更多...
GetEditableHeaderFooter() | UpdateHeaderFooter (headerfooter)
| Get the editable header footer object. 更多...

## 静态 Public 属性
static | e_Annots
| 如果设置,注释(链接注释除外)将从 FDF/XFDF 文档导入或导出到 FDF/XFDF 文档。
static | e_DisplayFullScreen
| 打开文档时,全屏模式,没有菜单栏、窗口控件 或任何其他窗口可见。
static | e_DisplayUseAttachment
| 打开文档时,附件面板可见。
static | e_DisplayUseNone
| 显示模式的枚举,指定文档打开时应如何显示。 更多...
static | e_DisplayUseOC
| 打开文档时,可选内容组面板可见。
static | e_DisplayUseOutlines
| 打开文档时,文档大纲(书签)可见。
static | e_DisplayUseThumbs
| 打开文档时,缩略图图像可见。
static | e_EncryptCDRM
| (保留,当前未使用此值。)加密类型:Foxit 连接的 PDF DRM 加密。
static | e_EncryptCertificate
| 加密类型:数字证书加密。
static | e_EncryptCustom
| 加密类型:自定义加密。
static | e_EncryptFoxitDRM
| 加密类型:Foxit DRM 加密。
static | e_EncryptNone
| 无加密模式。
static | e_EncryptPassword
| 加密类型:密码,这是标准加密。
static | e_EncryptRMS
| 加密类型:Microsoft RMS 加密。
static | e_EncryptUnknown
| 加密类型的枚举。 更多...
static | e_ExtractPagesOptionAnnotation
| 用于提取页面的选项枚举。 更多...
static | e_ExtractPagesOptionAttachFiles
| 如果设置,表示附件文件也将被提取。
static | e_ExtractPagesOptionBookmark
| 如果设置,表示书签也将被提取。
static | e_ExtractPagesOptionJavascript
| 如果设置,表示 Javascript 也将被提取。
static | e_ExtractPagesOptionObjectStream
| 如果设置,表示对结果文件使用 FSDK.PDFDoc.e_SaveFlagXRefStream 保存标志 以减小结果文件的大小。
static | e_ExtractPagesOptionOCProperties
| 如果设置,表示 OCProperties 也将被提取。
static | e_ExtractPagesOptionSignature
| 如果设置,表示签名也将被提取。必须与 FSDK.PDFDoc.e_ExtractPagesOptionAnnotation 组合使用。
static | e_ExtractPagesOptionStructureTree
| 如果设置,表示结构树也将被提取。
static | e_Forms
| 数据类型的枚举,用于决定哪些对象将从 FDF/XFDF 文档导入或导出到 FDF/XFDF 文档。 更多...
static | e_ImportFlagNormal
| 用于导入页面的标志枚举。 更多...
static | e_ImportFlagShareStream
| 导入页面时不将流对象克隆到内存中。 更多...
static | e_ImportFlagWithLayers
| 导入包含图层的页面。
static | e_InsertDocOptionAttachments
| 用于将 PDF 文档插入到另一个文档的选项枚举。 更多...
static | e_InsertDocOptionBookmark
| 如果设置,表示书签也将被插入到目标文档。
static | e_Links
| (保留,尚不支持)如果设置,仅链接注释将从 XFDF 文档导入或导出到 XFDF 文档。
static | e_PermAnnotForm
| 操作文本注释并填写交互式表单字段。(权限值中的第 6 位) 更多...
static | e_PermAssemble
| 组装 PDF 文档。(权限值中的第 11 位) 更多...
static | e_PermExtract
| 提取 PDF 内容。(权限值中的第 5 位) 更多...
static | e_PermExtractAccess
| 残障支持。(权限值中的第 10 位) 更多...
static | e_PermFillForm
| 填写 PDF 表单。(权限值中的第 9 位) 更多...
static | e_PermModify
| 修改 PDF 内容。(权限值中的第 4 位) 更多...
static | e_PermPrint
| PDF 文档中用户访问权限的枚举。 更多...
static | e_PermPrintHigh
| 以更高质量打印 PDF 文档。(权限值中的第 12 位) 更多...
static | e_PwdInvalid
| PDF 文档中当前使用的密码类型的枚举。 更多...
static | e_PwdNoPassword
| PDF 文档中未使用密码。
static | e_PwdOwner
| PDF 文档中使用所有者密码。
static | e_PwdUser
| PDF 文档中使用用户密码。
static | e_SaveFlagIncremental
| 增量保存文档。 更多...
static | e_SaveFlagLinearized
| 将文档保存为线性化文件。 更多...
static | e_SaveFlagNoOriginal
| 保存文档时不包含原始数据或未更改的对象。 更多...
static | e_SaveFlagNormal
| PDF 文档保存标志的枚举。 更多...
static | e_SaveFlagNoUpdatingMetadataDateTime
| 保存文档时不更新元数据 "ModDate" 和 "CreationDate"。 更多...
static | e_SaveFlagRemoveRedundantObjects
| 保存文档时删除冗余的 PDF 对象。 更多...
static | e_SaveFlagXRefStream
| 使用 XRef 流保存文档。 更多...
static | e_WrapperFoxit
| Foxit 包装文档。
static | e_WrapperNone
| 包装类型的枚举。 更多...
static | e_WrapperPDFV2
| PDF 2.0 包装文档。

## 详细描述

PDF 文档对象可以从文件路径、内存缓冲区、 自定义实现的 FSDK.FileReaderCallback 对象和输入文件流中的现有 PDF 文件构造。然后调用函数 FSDK.PDFDoc.Load 或 FSDK.PDFDoc.StartLoad 来加载文档内容。 此类提供函数来检索 PDF 文档的不同部分。例如:

- 要检索页面,请使用函数 FSDK.PDFDoc.GetPageCount 和 FSDK.PDFDoc.GetPage。
- 要检索书签,例如函数 FSDK.PDFDoc.GetRootBookmark、FSDK.PDFDoc.CreateRootBookmark 等。
- 要检索某些文档的字典(低级),例如函数 FSDK.PDFDoc.GetCatalog、FSDK.PDFDoc.GetTrailer 等。
- 要检索阅读书签,例如函数 FSDK.PDFDoc.GetReadingBookmarkCount、 FSDK.PDFDoc.GetReadingBookmark 等。
- 要检查 PDF 文档是否具有交互式表单,请使用函数 FSDK.PDFDoc.HasForm。
- 要检查 PDF 文档是否具有页眉页脚,请使用函数 FSDK.PDFDoc.HasHeaderFooter。 要修改页眉页脚,请参考函数如 FSDK.PDFDoc.AddHeaderFooter、FSDK.PDFDoc.UpdateHeaderFooter 和 FSDK.PDFDoc.RemoveAllHeaderFooters。

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

- 要访问表单,请使用 PDF 文档对象构造 FSDK.Form 对象。
- 要访问附加操作,请使用 PDF 文档对象构造 FSDK.AdditionalAction 对象。
- 要访问查看器首选项信息,请使用 PDF 文档对象构造 FSDK.DocViewerPrefs 对象。
- 要访问元数据信息,请使用 PDF 文档对象构造 FSDK.Metadata 对象。
- 要管理页面标签信息,请使用 PDF 文档对象构造 FSDK.PageLabels 对象。
- 要在 PDF 文件中搜索,请使用 PDF 文档对象构造 FSDK.TextSearch 对象。
- 要访问图层,请使用 PDF 文档对象构造 FSDK.LayerTree 对象。 要渲染图层,请使用 PDF 文档对象构造 FSDK.LayerContext 对象。
- 要构造新的 FSDK.FileSpec 对象。
- 要管理关联文件,请使用 PDF 文档对象构造 FSDK.AssociatedFiles 对象。
- 要访问名称树,请使用 PDF 文档对象构造 FSDK.PDFNameTree 对象。特别是, 对于 EmbeddedFiles 名称树,可以使用 PDF 文档对象构造 FSDK.Attachments 对象, 以便使用。
- 要进行密文,请使用 PDF 文档对象构造 FSDK.Redaction 对象。

参见
  FSDK.Form
  FSDK.AdditionalAction
  FSDK.DocViewerPrefs
  FSDK.Metadata
  FSDK.PageLabels
  FSDK.TextSearch
  FSDK.LayerTree
  FSDK.LayerContext
  FSDK.FileSpec
  FSDK.AssociatedFiles
  FSDK.PDFNameTree
  FSDK.Attachments
  FSDK.Redaction

## 成员函数说明

## ◆ AddIndirectObject()

FSDK::PDFDoc::AddIndirectObject | ( | pdf_object |  | ) |

将PDF对象添加到当前PDF文档，使其成为间接对象。

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

参数

  [in] | pdf_object | FSDK.PDFObject 对象。不应为 null。

返回
  新的间接对象编号。将大于0。

## ◆ AddPageFromTemplate()

FSDK::PDFDoc::AddPageFromTemplate | ( | template_name |  | ) |

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

PDF文档中可能存在隐藏页面。隐藏页面映射到PDF文档中模板名称树中定义的名称。 此函数可用于将隐藏页面添加到PDF文档的末尾。
类 FSDK.PDFNameTree（使用类型 FSDK.PDFNameTree.e_Templates 初始化）可用于确定 哪些模板名称可用。
添加模板后，该名称将在内部移动到文档的页面名称树中。

参数

  [in] | template_name | 模板的名称，其映射的隐藏页面将添加到当前PDF文档的末尾。 如果找不到模板名称，将抛出异常 FSDK.e_ErrParam。

返回
  如果找到输入的模板名称，则返回新的PDF页面对象。

## ◆ AddPagingSealSignature()

FSDK::PDFDoc::AddPagingSealSignature | ( | page_range | ,
|  | width | ,
|  | height | ,
|  | to_check_permission |
| ) |  |

根据页面范围向文档添加页码章签名。

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

参数

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

返回
  页码章签名对象。

## ◆ AddTableOfContents() [1/2]

FSDK::PDFDoc::AddTableOfContents | ( | table_of_contents_config |  | ) |

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

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

参数

  [in] | table_of_contents_config | 用于目录表的目录表配置对象。

返回
  None.

## ◆ AddTableOfContents() [2/2]

FSDK::PDFDoc::AddTableOfContents | ( | title | ,
|  | bookmark_level_array |
| ) |  |

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

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

参数

  [in] | title | 目录表的标题。如果这是一个空字符串，将使用默认值“Table of Contents”。
  [in] | bookmark_level_array | 书签级别数组，用于指定用于生成“目录表”的书签。 对于输入数组中的每个元素，有效范围：从1到（depth）。 depth 由函数 FSDK.PDFDoc.GetBookmarkLevelDepth 返回。 如果输入数组是一个空数组，则表示使用所有书签来生成“目录表”。

返回
  None.

## ◆ CheckPassword()

FSDK::PDFDoc::CheckPassword | ( | password |  | ) |

检查指定密码的类型。

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

参数

  [in] | password | 要检测的密码字符串。

返回
  密码类型。请参阅从 FSDK.PDFDoc.e_PwdInvalid 开始的值， 这将是这些值之一。

## ◆ ClearRenderCache()

FSDK::PDFDoc::ClearRenderCache | ( |  | ) |

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

返回
  无。

## ◆ constructor() [1/4]

FSDK::PDFDoc::constructor | ( |  | ) |

构造函数。

此构造函数用于构造一个新的PDF文档（不包含任何数据）。 文件版本值默认为17（对应PDF版本1.7）。

## ◆ constructor() [2/4]

FSDK::PDFDoc::constructor | ( | buffer | ,
|  | size |
| ) |  |

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

构造此类PDF文档对象后，在使用 FSDK.PDFDoc 类中的大多数函数之前， 请确保文档对象已被加载。

参数

  [in] | buffer | 包含序列化文档的内存缓冲区。PDF文档数据应完全加载到此内存缓冲区中。 不应为 null。
  [in] | size | 内存缓冲区的大小。应大于0。

## ◆ constructor() [3/4]

FSDK::PDFDoc::constructor | ( | file_read | ,
|  | is_async |
| ) |  |

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

构造此类PDF文档对象后，在使用 FSDK.PDFDoc 类中的大多数函数之前， 请确保文档对象已被加载。

参数

  [in] | file_read | 用户实现的 FSDK.FileReaderCallback 对象，用于加载PDF文档。 不应为 null。 如果输入的回调对象是 FSDK.AsyncReaderCallback 对象， 且 is_async 为 true，则表示PDF文档将通过异步方式加载； 否则，文档将以常规方式加载。
  [in] | is_async | 输入的 FSDK.FileReaderCallback 对象是否用于异步加载。 默认值：false。

## ◆ constructor() [4/4]

FSDK::PDFDoc::constructor | ( | path |  | ) |

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

构造此类PDF文档对象后，在使用 FSDK.PDFDoc 类中的大多数函数之前， 请确保文档对象已被加载。

参数

  [in] | path | 现有PDF文件的完整路径。不应为空字符串。

## ◆ CreateDSS()

FSDK::PDFDoc::CreateDSS | ( |  | ) |

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

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

返回
  None.

## ◆ CreateRootBookmark()

FSDK::PDFDoc::CreateRootBookmark | ( |  | ) |

创建新的书签根节点。

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

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

## ◆ DeleteIndirectObject()

FSDK::PDFDoc::DeleteIndirectObject | ( | object_number |  | ) |

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

参数

  [in] | object_number | 间接对象编号。应大于0。

返回
  无。

## ◆ DoJSOpenAction()

FSDK::PDFDoc::DoJSOpenAction | ( |  | ) |

打开文档时执行JavaScript动作。

返回
  true 表示成功，而 false 表示失败。

## ◆ ExportAnnotToFDF()

FSDK::PDFDoc::ExportAnnotToFDF | ( | pdf_annot | ,
|  | fdf_doc |
| ) |  |

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

参数

  [in] | pdf_annot | 要导出到FDF/XFDF文档的有效PDF批注对象。
  [in] | fdf_doc | 有效的FDF/XFDF文档对象，将向其中导出指定的批注。

返回
  true 表示成功，而 false 表示失败。

## ◆ ExportFormFieldsToFDF()

FSDK::PDFDoc::ExportFormFieldsToFDF | ( | field_array | ,
|  | is_include | ,
|  | fdf_doc |
| ) |  |

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

参数

  [in] | field_array | 表单域数组。参数 is_include 将决定这些表单域的数据是否要导出。
  [in] | is_include | 布尔值，用于决定是否导出指定表单域的数据： true 表示要导出指定表单域的数据，而 false 表示不导出指定表单域的数据。
  [in] | fdf_doc | 有效的FDF/XFDF文档对象，将向其中导出指定的表单域。

返回
  true 表示成功，而 false 表示失败。

## ◆ ExportToFDF()

FSDK::PDFDoc::ExportToFDF | ( | fdf_doc | ,
|  | types | ,
|  | page_range |
| ) |  |

将表单域和批注导出到FDF/XFDF文档。

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

参数

  [in] | fdf_doc | 有效的FDF/XFDF文档对象，将向其中导出表单域和批注。
  [in] | types | 用于决定将导出哪种类型的数据。请参考以 FSDK.PDFDoc.e_Forms 开头的值， 可以是这些值中的一个或多个的组合。 默认值：(FSDK.PDFDoc.e_Forms | FSDK.PDFDoc.e_Annots)。
  [in] | page_range | 指定某些页面的范围对象。这些页面中的数据（指定类型）将导出到FDF/XFDF文档。 如果此范围对象由默认构造函数构造且未设置任何值，则表示当前文档的所有数据（指定类型） 将导出到FDF/XFDF文档。 仅当参数 types 包含 FSDK.PDFDoc.e_Annots 时，此参数才有用。 默认值：由默认构造函数构造且未设置任何值的范围对象。

返回
  true 表示成功，而 false 表示失败。

## ◆ GetAllPageBasicInfo()

FSDK::PDFDoc::GetAllPageBasicInfo | ( |  | ) |

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

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

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

## ◆ GetAnnotsByIdArray()

FSDK::PDFDoc::GetAnnotsByIdArray | ( | unique_id_arr |  | ) |

通过唯一ID数组获取批注。

参数

  [in] | unique_id_arr | 唯一ID的数组。唯一ID由函数 FSDK.Annot.GetUniqueID 返回。

返回
  FSDK.Annot 对象的数组。

## ◆ GetBookmarkLevelDepth()

FSDK::PDFDoc::GetBookmarkLevelDepth | ( |  | ) |

获取书签层级深度。

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

## ◆ GetCatalog()

FSDK::PDFDoc::GetCatalog | ( |  | ) |

获取目录字典。

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

## ◆ GetCertificateEncryptData()

FSDK::PDFDoc::GetCertificateEncryptData | ( |  | ) |

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

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

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

## ◆ GetCustomEncryptData()

FSDK::PDFDoc::GetCustomEncryptData | ( |  | ) |

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

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

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

## ◆ GetDisplayMode()

FSDK::PDFDoc::GetDisplayMode | ( |  | ) |

Get the display mode.

Display mode specifies how the document should be displayed when opened.

返回
  Display mode value. Please refer to values starting from FSDK.PDFDoc.e_DisplayUseNone and this would be one of these values.

## ◆ GetDRMEncryptData()

FSDK::PDFDoc::GetDRMEncryptData | ( |  | ) |

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

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

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

## ◆ GetEmbeddedFontData()

FSDK::PDFDoc::GetEmbeddedFontData | ( |  | ) |

获取嵌入的字体数据。

返回
  嵌入的字体数据。

## ◆ GetEncryptDict()

FSDK::PDFDoc::GetEncryptDict | ( |  | ) |

获取加密字典。

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

## ◆ GetEncryptionType()

FSDK::PDFDoc::GetEncryptionType | ( |  | ) |

获取加密类型。

返回
  加密类型。请参阅从 FSDK.PDFDoc.e_EncryptNone 开始的值， 这将是这些值之一。

## ◆ GetFileSize()

FSDK::PDFDoc::GetFileSize | ( |  | ) |

获取文件大小。

返回
  文件大小。

## ◆ GetFileVersion()

FSDK::PDFDoc::GetFileVersion | ( |  | ) |

获取存储在PDF头部部分的PDF文件版本。

返回
  文件版本。例如，值14表示版本"1.4"，值15表示"1.5"，等等。

## ◆ GetFirstAvailPageIndex()

FSDK::PDFDoc::GetFirstAvailPageIndex | ( |  | ) |

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

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

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

## ◆ GetFont()

FSDK::PDFDoc::GetFont | ( | index |  | ) |

Get a font by index.

参数

  [in] | index | The index of PDF font. Valid range: from 0 to (count-1). count is returned by function FSDK.PDFDoc.GetFontCount.

返回
  A font object.

## ◆ GetFontCount()

FSDK::PDFDoc::GetFontCount | ( |  | ) |

Count all the PDF fonts used in current PDF document.

This function will enumerate all the font resources used for pages, annotations, and interactive form.

返回
  The count of fonts.

## ◆ GetHeader()

FSDK::PDFDoc::GetHeader | ( |  | ) |

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

返回
  PDF头部字符串。它将类似于"PDF-1.4"、"PDF-1.5"等。

## ◆ GetIndirectObject()

FSDK::PDFDoc::GetIndirectObject | ( | object_number |  | ) |

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

参数

  [in] | object_number | 间接对象编号。应大于0。

返回
  接收间接PDF对象的 FSDK.PDFObject 对象。null 表示未找到。

## ◆ GetInfo()

FSDK::PDFDoc::GetInfo | ( |  | ) |

获取信息字典。

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

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

## ◆ GetOpenAction()

FSDK::PDFDoc::GetOpenAction | ( |  | ) |

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

返回
  动作对象。

## ◆ GetPage()

FSDK::PDFDoc::GetPage | ( | index |  | ) |

Get a PDF page by index.

If current PDF document object is constructed with an AsyncReaderCallback which means to do asynchronous loading, this function may throw exception FSDK.e_ErrDataNotReady. In this case, user should prepare data for specified range informed by callback function FSDK.AsyncReaderCallback.AddDownloadHint and then call this function again.

参数

  [in] | index | The page index. Valid range: from 0 to (count-1). count is returned by function FSDK.PDFDoc.GetPageCount.

返回
  A PDF page object.

## ◆ GetPageBasicInfo()

FSDK::PDFDoc::GetPageBasicInfo | ( | index |  | ) |

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

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

参数

  [in] | index | 页面索引。有效范围：从0到（count-1）。 count 由函数 FSDK.PDFDoc.GetPageCount 返回。

返回
  包含指定页面基本信息的页面基本信息对象。

## ◆ GetPageCount()

FSDK::PDFDoc::GetPageCount | ( |  | ) |

Get the count of pages.

返回
  The count of pages.

## ◆ GetPagesDict()

FSDK::PDFDoc::GetPagesDict | ( |  | ) |

获取"Pages"字典。

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

## ◆ GetPageText()

FSDK::PDFDoc::GetPageText | ( | page_index |  | ) |

获取指定PDF页面的文本，其中文本按显示顺序排列。

参数

  [in] | page_index | 页面索引。有效范围：从0到（count-1）。 count 由函数 FSDK.PDFDoc.GetPageCount 返回。

返回
  相关PDF页面的所有文本内容，其中文本按显示顺序排列。

## ◆ GetPasswordType()

FSDK::PDFDoc::GetPasswordType | ( |  | ) |

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

此函数在加载PDF文档后很有用，以便获取加载过程中使用的密码类型。
如果当前文档是新文档（不是从现有PDF文件加载的），此函数将返回 FSDK.PDFDoc.e_PwdNoPassword。
如果当前文档是从现有文件构造的但尚未加载， 如果当前文档是从现有文件构造的但尚未加载， 此函数将返回 FSDK.PDFDoc.e_PwdInvalid。

返回
  密码类型。请参阅从 FSDK.PDFDoc.e_PwdInvalid 开始的值， 这将是这些值之一。

## ◆ GetPayLoadData()

FSDK::PDFDoc::GetPayLoadData | ( |  | ) |

如果当前文档的包装类型是 FSDK.PDFDoc.e_WrapperPDFV2，则获取有效负载数据。

返回
  有效负载数据。如果找不到包装数据或当前文档的包装类型不是 FSDK.PDFDoc.e_WrapperPDFV2，将返回值为0且字符串为空的有效负载数据对象。

## ◆ GetReadingBookmark()

FSDK::PDFDoc::GetReadingBookmark | ( | index |  | ) |

通过索引获取阅读书签。

参数

  [in] | index | 阅读书签的索引。有效范围：从0到(count-1)。 count 由函数 FSDK.PDFDoc.GetReadingBookmarkCount 返回。

返回
  具有指定索引的阅读书签对象。

## ◆ GetReadingBookmarkCount()

FSDK::PDFDoc::GetReadingBookmarkCount | ( |  | ) |

获取阅读书签的数量。

返回
  阅读书签的数量。

## ◆ GetRMSEncryptData()

FSDK::PDFDoc::GetRMSEncryptData | ( |  | ) |

获取RMS加密的加密数据。

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

返回
  RMS加密的加密数据。

注解
  如果在函数 FSDK.Library.Initialize 中使用的许可证信息中未定义模块"RMS"， 这意味着用户无权使用RMS相关功能，此函数将抛出异常 FSDK.e_ErrNoRMSModuleRight。

## ◆ GetRootBookmark()

FSDK::PDFDoc::GetRootBookmark | ( |  | ) |

获取书签根节点。

返回
  表示根书签的书签对象。 如果当前PDF文档中没有书签，此函数将返回一个其函数 FSDK.Bookmark.IsEmpty 返回 true 的书签对象。

## ◆ GetSecurityHandler()

FSDK::PDFDoc::GetSecurityHandler | ( |  | ) |

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

返回
  PDF安全处理程序对象。

注解
  如果在函数 FSDK.Library.Initialize 中使用的许可证信息中未定义模块"RMS"， 这意味着用户无权使用RMS相关函数，此函数将抛出异常 FSDK.e_ErrNoRMSModuleRight。

## ◆ GetSignature()

FSDK::PDFDoc::GetSignature | ( | index |  | ) |

通过索引获取签名。

参数

  [in] | index | 签名的索引。有效范围：从0到(count-1)。 count 由函数 FSDK.PDFDoc.GetSignatureCount 返回。

返回
  签名对象。

## ◆ GetSignatureCount()

FSDK::PDFDoc::GetSignatureCount | ( |  | ) |

获取签名的数量。

返回
  签名的数量。

## ◆ GetStdEncryptData()

FSDK::PDFDoc::GetStdEncryptData | ( |  | ) |

获取标准加密（称为密码加密）的加密数据。

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

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

## ◆ GetTrailer()

FSDK::PDFDoc::GetTrailer | ( |  | ) |

获取文件尾字典。

返回
  文件尾字典。 如果没有文件尾字典或发生任何错误，此函数将返回 null。

## ◆ GetUserPassword()

FSDK::PDFDoc::GetUserPassword | ( | owner_password |  | ) |

根据所有者密码获取用户密码。

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

参数

  [in] | owner_password | 所有者密码字符串。

返回
  用户密码字符串。

## ◆ GetUserPermissions()

FSDK::PDFDoc::GetUserPermissions | ( |  | ) |

获取用户访问权限。

返回
  用户访问权限。请参阅从 FSDK.PDFDoc.e_PermPrint 开始的值， 这将是这些值之一。

## ◆ GetWrapperOffset()

IsWrapper () FSDK::PDFDoc::GetWrapperOffset | ( |  | ) |

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

返回
  true 表示当前文档是包装文件， 而 false 表示当前文档不是包装文件。

获取包装类型。

返回
  包装类型。请参阅从 FSDK.PDFDoc.e_WrapperNone 开始的值， 这将是这些值之一或其组合。

如果当前文档的包装类型是 FSDK.PDFDoc.e_WrapperFoxit，则获取包装数据。

返回
  包装数据。如果找不到包装数据或当前文档的包装类型不是 FSDK.PDFDoc.e_WrapperFoxit，将返回值为0且字符串为空的包装数据对象。

如果当前文档的包装类型是 FSDK.PDFDoc.e_WrapperFoxit，则获取包装偏移量。

返回
  包装偏移量。如果找不到包装数据或当前文档的包装类型不是 FSDK.PDFDoc.e_WrapperFoxit，将返回-1。

## ◆ HasForm()

FSDK::PDFDoc::HasForm | ( |  | ) |

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

如果当前PDF文档对象是使用AsyncReaderCallback构造的（意味着进行异步加载）， 此函数可能抛出异常 FSDK.e_ErrDataNotReady。 在这种情况下，用户应为回调函数 FSDK.AsyncReaderCallback.AddDownloadHint 通知的指定范围准备数据，然后再次调用此函数。

返回
  true 表示当前文档具有交互式表单。 false 表示当前文档没有交互式表单。

## ◆ HasHeaderFooter()

FSDK::PDFDoc::HasHeaderFooter | ( |  | ) |

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

返回
  true means current document has header-footer, while false means current document does not have header-footer.

## ◆ HasLayer()

FSDK::PDFDoc::HasLayer | ( |  | ) |

检查当前 PDF 文档是否具有图层（在 <PDF reference 1.7> 中称为“可选内容组”）。

返回
  true means current document has layer. false means current document does not have layer.

## ◆ HidePageTemplate()

FSDK::PDFDoc::HidePageTemplate | ( | template_name |  | ) |

隐藏命名页面。

PDF文档中的页面可以映射到文档中页面名称树中定义的名称。 此函数可用于隐藏这些命名页面。
类 FSDK.PDFNameTree（使用类型 FSDK.PDFNameTree.e_Pages 初始化）可用于确定 哪些页面名称可用以及将页面映射到名称。
PDF页面被隐藏后，该名称将在内部移动到文档的模板名称树中。

参数

  [in] | template_name | 要隐藏的PDF页面的名称。

返回
  true 表示成功，而 false 表示失败。

## ◆ ImportFromFDF()

FSDK::PDFDoc::ImportFromFDF | ( | fdf_doc | ,
|  | types | ,
|  | page_range |
| ) |  |

从FDF/XFDF文档导入表单域和批注。

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

参数

  [in] | fdf_doc | 有效的FDF/XFDF文档对象，将从中导入表单域和批注。
  [in] | types | 用于决定将导入哪种类型的数据。请参考以 FSDK.PDFDoc.e_Forms 开头的值， 可以是这些值中的一个或多个的组合。 默认值：(FSDK.PDFDoc.e_Forms | FSDK.PDFDoc.e_Annots)。 如果 fdf_doc 是FDF模板，则此参数不起作用。
  [in] | page_range | 指定某些页面的范围对象。来自FDF/XFDF文档的数据（指定类型）将导入到这些指定的页面。 如果此范围对象由默认构造函数构造且未设置任何值，则表示来自FDF/XFDF文档的数据（指定类型） 将导入到已在FDF/XFDF文档中定义索引的相关PDF页面。 仅当参数 types 包含 FSDK.PDFDoc.e_Annots 时，此参数才有用。 默认值：由默认构造函数构造且未设置任何值的范围对象。 如果 fdf_doc 是FDF模板，则此参数不起作用。

返回
  true 表示成功，而 false 表示失败。

## ◆ InsertDocument() [1/2]

FSDK::PDFDoc::InsertDocument | ( | dest_index | ,
|  | src_doc | ,
|  | 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文档的选项。请参考以 FSDK.PDFDoc.e_InsertDocOptionAttachments 开头的值， 可以是这些值中的一个或多个的组合。 0表示不使用任何选项。

返回
  None.

## ◆ InsertDocument() [2/2]

FSDK::PDFDoc::InsertDocument | ( | dest_index | ,
|  | src_doc | ,
|  | options | ,
|  | 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文档的选项。请参考以 FSDK.PDFDoc.e_InsertDocOptionAttachments 开头的值， 可以是这些值中的一个或多个的组合。 0表示不使用任何选项。
  [in] | bookmark_title | 书签的标题。默认值：InsertBookMark。

返回
  None.

## ◆ InsertPage() [1/2]

FSDK::PDFDoc::InsertPage | ( | index | ,
|  | size |
| ) |  |

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

参数

  [in] | index | 新页面的页面索引。 如果参数 index 小于0，新页面将插入到第一个位置。 如果参数 index 等于或大于当前页面数量， 新页面将插入到末尾。
  [in] | size | 新页面的大小类型。请参阅从 FSDK.PDFPage.e_SizeLetter 开始的值， 这应该是这些值之一。默认值：FSDK.PDFPage.e_SizeLetter。

返回
  表示空白页面的新PDF页面对象。

## ◆ InsertPage() [2/2]

FSDK::PDFDoc::InsertPage | ( | index | ,
|  | width | ,
|  | height |
| ) |  |

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

参数

  [in] | index | 新页面的页面索引。 如果参数 index 小于0，新页面将插入到第一个位置。 如果参数 index 等于或大于当前页面数量， 新页面将插入到末尾。
  [in] | width | 新页面的宽度（单位为1/72英寸）。
  [in] | height | 新页面的高度（单位为1/72英寸）。

返回
  表示空白页面的新PDF页面对象。

## ◆ InsertReadingBookmark()

FSDK::PDFDoc::InsertReadingBookmark | ( | reading_bookmark_index | ,
|  | title | ,
|  | dest_page_index |
| ) |  |

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

参数

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

返回
  新的阅读书签对象。

## ◆ IsEmpty()

FSDK::PDFDoc::IsEmpty | ( |  | ) |

检查当前对象是否为空。

当当前对象为空时，表示当前对象不可用。

返回
  true 表示当前对象为空，而 false 表示不为空。

## ◆ IsEncrypted()

FSDK::PDFDoc::IsEncrypted | ( |  | ) |

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

返回
  true 表示当前文档是加密文件， 而 false 表示当前文档不是加密文件。

## ◆ IsLinearized()

FSDK::PDFDoc::IsLinearized | ( |  | ) |

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

- 如果当前文档对象是使用 FSDK.AsyncReaderCallback 对象构造的， 则此函数可以在文档成功加载之前或之后使用。特别地，如果在文档成功加载之前调用此函数， 应用程序应确保PDF文件的前1024字节可用；否则，此函数将调用回调函数 FSDK.AsyncReaderCallback.AddDownloadHint 来通知应用程序应下载的数据范围，然后此函数将抛出异常 FSDK.e_ErrDataNotReady。
- 如果当前文档对象是通过其他方法或使用普通 FSDK.FileReaderCallback 对象构造的， 则此函数只能在文档成功加载后使用；否则，将抛出异常 FSDK.e_ErrUnknownState。

返回
  true 表示当前PDF文档是线性化文件， 而 false 表示当前PDF文档不是线性化文件。

## ◆ IsOwnerPassword()

FSDK::PDFDoc::IsOwnerPassword | ( | password |  | ) |

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

参数

  [in] | password | 要检测的密码字符串。

返回
  true 表示输入的密码是当前PDF文档的所有者密码，而 false 表示 输入的密码不是当前PDF文档的所有者密码。

## ◆ IsPortfolio()

FSDK::PDFDoc::IsPortfolio | ( |  | ) |

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

返回
  true 表示当前PDF文档是作品集文件，而 false 表示不是。

## ◆ IsTaggedPDF()

FSDK::PDFDoc::IsTaggedPDF | ( |  | ) |

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

返回
  true 表示当前PDF文档是标记PDF文件， 而 false 表示当前PDF文档不是标记PDF文件。

## ◆ IsUserPassword()

FSDK::PDFDoc::IsUserPassword | ( | password |  | ) |

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

参数

  [in] | password | 要检测的密码字符串。

返回
  true 表示输入的密码是当前PDF文档的用户密码，而 false 表示 输入的密码不是当前PDF文档的用户密码。

## ◆ IsXFA()

FSDK::PDFDoc::IsXFA | ( |  | ) |

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

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

返回
  true 表示当前文档是XFA文档， 而 false 表示当前文档不是XFA文档。

## ◆ Load()

FSDK::PDFDoc::Load | ( | password |  | ) |

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

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

参数

  [in] | password | 用于加载当前文档内容的密码字符串。密码可以是用户密码或所有者密码。 如果当前文档未使用密码加密，只需传递一个空字符串。默认值：空字符串。

返回
  FSDK.e_ErrSuccess 表示成功。
  FSDK.e_ErrFile 表示访问当前文档时发生任何错误。
  FSDK.e_ErrPassword 表示输入的密码错误。
  FSDK.e_ErrFormat 表示当前文档内容的格式不是PDF或文件已损坏。
  FSDK.e_ErrSecurityHandler 表示当前PDF文档使用了某些不受支持的安全处理程序加密。
  FSDK.e_ErrCertificate 表示当前PDF文档使用数字证书加密， 而当前用户没有正确的证书。
  有关其他错误代码值，请参阅从 FSDK.e_ErrSuccess 开始的值以获取更多详细信息。

## ◆ LoadW()

FSDK::PDFDoc::LoadW | ( | password |  | ) |

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

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

参数

  [in] | password | 用于加载当前文档内容的密码字符串。密码可以是用户密码或所有者密码。 如果当前文档未使用密码加密，只需传递一个空字符串。默认值：空字符串。

返回
  FSDK.e_ErrSuccess 表示成功。
  FSDK.e_ErrFile 表示访问当前文档时发生任何错误。
  FSDK.e_ErrPassword 表示输入的密码错误。
  FSDK.e_ErrFormat 表示当前文档内容的格式不是PDF或文件已损坏。
  FSDK.e_ErrSecurityHandler 表示当前PDF文档 使用了某些不受支持的安全处理程序加密。
  FSDK.e_ErrCertificate 表示当前PDF文档使用数字证书加密， 而当前用户没有正确的证书。
  有关其他错误代码值，请参阅从 FSDK.e_ErrSuccess 开始的值以获取更多详细信息。

## ◆ MovePagesTo()

FSDK::PDFDoc::MovePagesTo | ( | page_range | ,
|  | dest_index |
| ) |  |

将一个或多个页面（通过索引指定）移动到新位置。

如果只移动一个页面，此函数与函数 FSDK.PDFDoc.MovePageTo 具有相同的功能。
如果移动多个页面，这些页面将保持参数 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。 如果要将页面移动到文档的末尾，请将目标索引设置为大于最后一个页面索引的值。

返回
  true 表示成功或无需移动当前页面，而 false 表示失败。

## ◆ MovePageTo()

FSDK::PDFDoc::MovePageTo | ( | page | ,
|  | 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 由函数 FSDK.PDFDoc.GetPageCount 返回。 如果要将页面移动到文档的开头，请将目标索引设置为任何负值，例如-1。 如果要将页面移动到文档的末尾，请将目标索引设置为大于最后一个页面索引的值。 如果参数 dest_index 与参数 page 的页面索引相同， 将不做任何更改，此函数将直接返回 true。

返回
  true 表示成功或无需移动当前页面，而 false 表示失败。

## ◆ RemoveAllHeaderFooters()

FSDK::PDFDoc::RemoveAllHeaderFooters | ( |  | ) |

Remove all header-footers.

返回
  true 表示成功，而 false 表示失败。

## ◆ RemoveBookmark()

FSDK::PDFDoc::RemoveBookmark | ( | bookmark |  | ) |

Remove a specified bookmark.

参数

  [in] | bookmark | The valid bookmark that would be deleted.

返回
  true 表示成功，而 false 表示失败。

## ◆ RemoveHiddenInfo()

FSDK::PDFDoc::RemoveHiddenInfo | ( | hidden_data_setting |  | ) |

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

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

参数

  [in] | hidden_data_setting | 定义要删除哪些类型隐藏数据的 HiddenInfoSettingData 对象。

返回
  None.

## ◆ RemoveOpenAction()

FSDK::PDFDoc::RemoveOpenAction | ( |  | ) |

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

返回
  true 表示成功，而 false 表示失败。

## ◆ RemovePage() [1/2]

FSDK::PDFDoc::RemovePage | ( | index |  | ) |

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

参数

  [in] | index | 页面索引。有效范围：从0到(count-1)。 count 由函数 FSDK.PDFDoc.GetPageCount 返回。

返回
  true 表示成功，而 false 表示失败。

## ◆ RemovePage() [2/2]

FSDK::PDFDoc::RemovePage | ( | page |  | ) |

删除指定的PDF页面。

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

参数

  [in] | page | 表示要删除的PDF页面的PDF页面对象。该页面应位于当前PDF文档中。

返回
  true 表示成功，而 false 表示失败。

## ◆ RemoveReadingBookmark()

FSDK::PDFDoc::RemoveReadingBookmark | ( | reading_bookmark |  | ) |

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

参数

  [in] | reading_bookmark | 要删除的有效阅读书签。

返回
  true 表示成功，而 false 表示失败。

## ◆ RemoveSecurity()

FSDK::PDFDoc::RemoveSecurity | ( |  | ) |

从当前文档中删除安全处理程序，以便稍后保存的文档将不加密。

返回
  true 表示成功，而 false 表示失败。

注解
  如果在函数 FSDK.Library.Initialize 中使用的许可证信息中未定义模块"RMS"， FSDK.Library.Initialize, that means user has no right in using RMS related functions and this function will throw exception FSDK.e_ErrNoRMSModuleRight.

## ◆ RemoveSignature()

FSDK::PDFDoc::RemoveSignature | ( | signature |  | ) |

删除签名。

参数

  [in] | signature | 要删除的有效签名。如果此签名的类型是 FSDK.Signature.e_SignatureTypePagingSeal，此函数 将删除与此签名相关的所有签名。

返回
  无。

## ◆ RemoveStructTree()

FSDK::PDFDoc::RemoveStructTree | ( |  | ) |

从当前PDF文档中删除结构树。

返回
  None.

## ◆ Sanitize()

FSDK::PDFDoc::Sanitize | ( |  | ) |

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

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

返回
  None.

## ◆ SaveAs()

FSDK::PDFDoc::SaveAs | ( | file_path | ,
|  | save_flags |
| ) |  |

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

如果当前文档从现有PDF文件加载，并且在保存之前通过 FSDK.PDFDoc.SetFileVersion 设置了不同的文件版本，Foxit PDF SDK将忽略参数 save_flags 中的 FSDK.PDFDoc.e_SaveFlagIncremental， 并在保存的PDF文件中使用文件版本。

参数

  [in] | file_path | 新保存的PDF文件的完整路径。不应为空字符串。
  [in] | save_flags | 文档保存标志。请参阅从 FSDK.PDFDoc.e_SaveFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：FSDK.PDFDoc.e_SaveFlagNormal。

返回
  true 表示保存成功完成，而 false 表示失败。

注解
  此函数不支持将当前PDF文档对象直接保存回用于构造当前PDF对象的PDF文件。 为了这样做，建议用户按照以下步骤操作：
  假设当前PDF对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将当前PDF对象保存到临时文件。这里，此临时文件名为"temp.tmp"。
  2. 确保当前PDF对象已被析构——这相当于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
  然后用户可以打开保存的PDF文件进行其他操作。

## ◆ SaveAsWrapperFile()

FSDK::PDFDoc::SaveAsWrapperFile | ( | file_path | ,
|  | wrapper_data | ,
|  | user_permissions | ,
|  | owner_password |
| ) |  |

Save current PDF document as a wrapper file.

PDF wrapper is an extended standard, and it helps to hint some information to viewers.
PDF wrapper consists of

- wrapper type: it is an identity string,
- wrapper offset: it tells the end of original data,
- wrapper template: it is the content of wrapper document.

This function uses the current size of file which is specified by file_path to set wrapper offset.

参数

  [in] | file_path | A full path of a PDF file. Current PDF document will be saved into this PDF file as a wrapper file.
  [in] | wrapper_data | Wrapper data. If this is null, no wrapper data is used. Default value: null.
  [in] | user_permissions | User permissions for the wrapper document. Pass 0xFFFFFFFC if no special permissions is needed. Please refer to values starting from FSDK.PDFDoc.e_PermPrint and this should be one or combination of these values. Default value: 0xFFFFFFFC.
  [in] | owner_password | Owner password. If this is an empty string, parameter user_permissions will be ignored. Default value: an empty string.

返回
  true 表示成功，而 false 表示失败。

## ◆ SetCacheFile()

FSDK::PDFDoc::SetCacheFile | ( | file_stream | ,
|  | is_own_file_stream |
| ) |  |

为当前PDF文档设置缓存文件（由文件流表示）。

缓存文件可用于缓存在生成内容流时生成的大量数据。

参数

  [in] | file_stream | 用户实现的 FSDK.StreamCallback 对象，用于缓存数据。 可以为 null。如果为 null，将释放原始缓存文件。
  [in] | is_own_file_stream | 用于决定Foxit PDF SDK是否应拥有输入流回调对象： true 表示输入流回调对象将由Foxit PDF SDK销毁 （通过调用回调函数 FSDK.StreamCallback.Release），当当前PDF文档不再需要缓存数据时。 false 表示用户应负责销毁流回调对象，当不需要修改当前PDF文档的任何内容时。

返回
  None.

## ◆ SetDisplayMode()

FSDK::PDFDoc::SetDisplayMode | ( | display_mode |  | ) |

Set the display mode.

Display mode specifies how the document should be displayed when opened.

参数

  [in] | display_mode | Display mode value. Please refer to values starting from FSDK.PDFDoc.e_DisplayUseNone and this should be one of these values.

返回
  None.

## ◆ SetFileVersion()

FSDK::PDFDoc::SetFileVersion | ( | version |  | ) |

设置将存储在保存的PDF文件的PDF头部部分的PDF文件版本。

新的文件版本不会直接影响当前文档，但将用于在函数 FSDK.PDFDoc.SaveAs 或 FSDK.PDFDoc.StartSaveAs 中保存的PDF文件。此函数不检查PDF内容是否与指定的版本匹配。
如果用户想要进行PDF版本的合规性转换，请参考模块"Compliance"并使用类 FSDK.PDFCompliance。

参数

  [in] | version | 指定文件版本的整数，例如，值14表示版本"1.4"，值15表示"1.5"，等等。 此值应为10到17或20，并且应等于或大于当前PDF文件的当前版本。

返回
  None.

## ◆ SetOpenAction()

FSDK::PDFDoc::SetOpenAction | ( | action |  | ) |

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

参数

  [in] | action | 要设置的有效动作。目前仅支持以下类型作为新动作： FSDK.Action.e_TypeGoto, FSDK.Action.e_TypeURI, FSDK.Action.e_TypeJavaScript, FSDK.Action.e_TypeNamed, FSDK.Action.e_TypeSubmitForm, FSDK.Action.e_TypeResetForm, FSDK.Action.e_TypeHide, FSDK.Action.e_TypeImportData, FSDK.Action.e_TypeSetOCGState, FSDK.Action.e_TypeThread。

返回
  true 表示成功，而 false 表示失败。

## ◆ SetSecurityHandler()

FSDK::PDFDoc::SetSecurityHandler | ( | handler |  | ) |

为加密设置PDF安全处理程序，例如标准加密（密码）、证书加密等。

参数

  [in] | handler | PDF安全处理程序对象。

返回
  true 表示成功，而 false 表示失败。

注解
  如果在函数 FSDK.Library.Initialize 中使用的许可证信息中未定义模块"RMS"， 这意味着用户无权使用RMS相关函数，此函数将抛出异常 FSDK.e_ErrNoRMSModuleRight。

## ◆ StartAddTiledWatermark() [1/4]

FSDK::PDFDoc::StartAddTiledWatermark | ( | page | ,
|  | settings | ,
|  | page_range | ,
|  | pause |
| ) |  |

向PDF页面添加页面类型的平铺水印。

如果水印平铺到多个页面，这些页面将保持参数 page_range 中定义的顺序。 如果参数 page_range 初始化为空，则默认情况下水印将平铺到文档的所有页面。 此外，XFA动态文档不支持插入平铺水印。

参数

  [in] | page | 有效的PDF页面对象，其内容将用作平铺水印的内容。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | page_range | 指定某些页面的范围对象。这些页面将被添加平铺水印。 有效页面范围：从0到（count -1）。count 由函数 FSDK.PDFDoc.GetPageCount 返回。 如果此范围对象由默认构造函数构造且未设置任何值，则表示当前文档的所有页面都将被添加平铺水印。
  [in] | pause | 暂停回调对象，用于决定识别过程是否需要暂停。 可以为 null，表示在识别过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartAddTiledWatermark() [2/4]

FSDK::PDFDoc::StartAddTiledWatermark | ( | src_img_file_path | ,
|  | settings | ,
|  | page_range | ,
|  | pause |
| ) |  |

通过图像路径向PDF页面添加图像类型的平铺水印。

如果水印平铺到多个页面，这些页面将保持参数 page_range 中定义的顺序。 如果参数 page_range 初始化为空，则默认情况下水印将平铺到文档的所有页面。 此外，XFA动态文档不支持插入平铺水印。
图像平铺水印支持 .bmp .dib .jpg .jpeg .jpe .gif .png .tif .tiff 格式。

参数

  [in] | src_img_file_path | 图像文件的路径。不应为空字符串。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | page_range | 指定某些页面的范围对象。这些页面将被添加平铺水印。 有效页面范围：从0到（count -1）。count 由函数 FSDK.PDFDoc.GetPageCount 返回。 如果此范围对象由默认构造函数构造且未设置任何值，则表示当前文档的所有页面都将被添加平铺水印。
  [in] | pause | 暂停回调对象，用于决定识别过程是否需要暂停。 可以为 null，表示在识别过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartAddTiledWatermark() [3/4]

FSDK::PDFDoc::StartAddTiledWatermark | ( | src_img_stream | ,
|  | settings | ,
|  | page_range | ,
|  | pause |
| ) |  |

通过图像流向PDF页面添加图像类型的平铺水印。

如果水印平铺到多个页面，这些页面将保持参数 page_range 中定义的顺序。 如果参数 page_range 初始化为空，则默认情况下水印将平铺到文档的所有页面。 此外，XFA动态文档不支持插入平铺水印。
图像平铺水印支持 .bmp .dib .jpg .jpeg .jpe .gif .png .tif .tiff 格式。

参数

  [in] | src_img_stream | 用户实现的 FSDK.FileReaderCallback 对象，用于将图像数据传递给Foxit PDF SDK的图像流。 必须有效。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | page_range | 指定某些页面的范围对象。这些页面将被添加平铺水印。 有效页面范围：从0到（count -1）。count 由函数 FSDK.PDFDoc.GetPageCount 返回。 如果此范围对象由默认构造函数构造且未设置任何值，则表示当前文档的所有页面都将被添加平铺水印。
  [in] | pause | 暂停回调对象，用于决定识别过程是否需要暂停。 可以为 null，表示在识别过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartAddTiledWatermark() [4/4]

FSDK::PDFDoc::StartAddTiledWatermark | ( | text | ,
|  | settings | ,
|  | page_range | ,
|  | pause |
| ) |  |

向PDF页面添加文本类型的平铺水印。

如果水印平铺到多个页面，这些页面将保持参数 page_range 中定义的顺序。 如果参数 page_range 初始化为空，则默认情况下水印将平铺到文档的所有页面。 此外，XFA动态文档不支持插入平铺水印。

参数

  [in] | text | 文本字符串。这将用作平铺水印的内容，不应为空字符串。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | properties | 平铺水印的文本属性。
  [in] | page_range | 指定某些页面的范围对象。这些页面将被添加平铺水印。 有效页面范围：从0到（count -1）。count 由函数 FSDK.PDFDoc.GetPageCount 返回。 如果此范围对象由默认构造函数构造且未设置任何值，则表示当前文档的所有页面都将被添加平铺水印。
  [in] | pause | 暂停回调对象，用于决定识别过程是否需要暂停。 可以为 null，表示在识别过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartEmbedAllFonts()

FSDK::PDFDoc::StartEmbedAllFonts | ( | pause |  | ) |

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

在当前PDF文档中将所有未嵌入的字体转换为嵌入的字体可能需要很长时间， 因此此函数使用渐进式过程来完成此操作。
此函数仅适用于可嵌入的字体。可以通过函数 FSDK.Font.IsSupportEmbedded 检查字体是否可嵌入。
此函数将在嵌入字体后删除原始字体对象，但是，文档中对原始字体的引用仍将存在。

参数

  [in] | pause | 暂停回调对象，用于决定嵌入过程是否需要暂停。 可以为 null，表示在嵌入过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartExtractPages() [1/2]

FSDK::PDFDoc::StartExtractPages | ( | file | ,
|  | options | ,
|  | page_range | ,
|  | pause |
| ) |  |

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

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

参数

  [in] | file | 用户实现的 FSDK.FileWriterCallback 对象， 用于以自定义方法存储所有提取页面的数据。
  [in] | options | 提取页面的选项。请参考以 FSDK.PDFDoc.e_ExtractPagesOptionAnnotation 开头的值， 可以是这些值中的一个或多个的组合。 0表示不使用任何选项。
  [in] | page_range | 用于指定要提取哪些页面的范围对象。如果此范围对象由默认构造函数构造且未设置任何值， 则将提取当前文档中的所有页面。 默认值：由默认构造函数构造且未设置任何值的范围对象。
  [in] | pause | 暂停对象，用于决定提取过程是否需要暂停。 可以为 null，表示在解析过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartExtractPages() [2/2]

FSDK::PDFDoc::StartExtractPages | ( | file_path | ,
|  | options | ,
|  | page_range | ,
|  | pause |
| ) |  |

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

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

参数

  [in] | file_path | 新保存PDF文件的完整路径，用于保存提取的页面。不应为空字符串。
  [in] | options | 提取页面的选项。请参考以 FSDK.PDFDoc.e_ExtractPagesOptionAnnotation 开头的值， 可以是这些值中的一个或多个的组合。 0表示不使用任何选项。
  [in] | page_range | 用于指定要提取哪些页面的范围对象。如果此范围对象由默认构造函数构造且未设置任何值， 则将提取当前文档中的所有页面。 默认值：由默认构造函数构造且未设置任何值的范围对象。
  [in] | pause | 暂停对象，用于决定提取过程是否需要暂停。 可以为 null，表示在解析过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartGetPayloadFile()

FSDK::PDFDoc::StartGetPayloadFile | ( | payload_file | ,
|  | pause |
| ) |  |

开始获取有效负载文件。

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

参数

  [in] | payload_file | FileWriterCallback回调对象。用户应在此回调对象中实现回调函数， 以便此回调对象可用于保存有效负载文件。
  [in] | pause | 用于决定是否需要暂停解析过程的暂停回调对象。 这可以是 null，表示在解析过程中不暂停。 如果不是 null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度， 直到进度完成。

## ◆ StartImportPages()

FSDK::PDFDoc::StartImportPages | ( | dest_index | ,
|  | src_doc | ,
|  | flags | ,
|  | layer_name | ,
|  | page_range | ,
|  | pause |
| ) |  |

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

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

参数

  [in] | dest_index | 当前PDF文档中的页面索引。用于指定导入页面将被插入的位置： 如果参数 dest_index 小于0，导入的页面将被插入到第一页。 如果参数 dest_index 等于或大于当前页面数量，导入的页面将被插入到末尾。
  [in] | src_doc | 源PDF文档的PDF文档对象。该文档中的页面将被导入到当前PDF文档中。 请保持此源PDF文档对象有效，直到当前文档不再需要保存或关闭。
  [in] | flags | 导入页面的选项。请参考以 FSDK.PDFDoc.e_ImportFlagNormal 开头的值， 可以是这些值中的一个或多个的组合。 默认值：FSDK.PDFDoc.e_ImportFlagNormal。
  [in] | layer_name | 在应用程序图层面板中显示的不可选标签的名称或不可选标签的前缀名称。默认值：空字符串。 如果参数 flags 包含 FSDK.PDFDoc.e_ImportFlagWithLayers， 则此参数不应为空，并且应为有效字符串。 如果参数 flags 不包含 FSDK.PDFDoc.e_ImportFlagWithLayers， 此字符串将被忽略。 如果要将源PDF文档的所有页面导入到当前文档， 源文档中的所有图层将被分组到一个不可选标签下， 此字符串将直接用作标签。 如果仅将源PDF文档的部分页面导入到当前文档， 同一页面中的图层将被分组到单个不可选标签下， 此字符串将用作标签的前缀名称。 标签将类似于"layerName_Page_X"。
  [in] | page_range | 用于指定要导入哪些页面的范围对象。如果此范围对象由默认构造函数构造且未设置任何值， 则将导入源文档中的所有页面。 默认值：由默认构造函数构造且未设置任何值的范围对象。
  [in] | pause | 暂停对象，用于决定导入过程是否需要暂停。 可以为 null，表示在解析过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartImportPagesFromFilePath()

FSDK::PDFDoc::StartImportPagesFromFilePath | ( | dest_index | ,
|  | src_file_path | ,
|  | password | ,
|  | flags | ,
|  | layer_name | ,
|  | page_range | ,
|  | pause |
| ) |  |

Start to import pages from another PDF document (via file path).

It may take a long time to importing pages, so Foxit PDF SDK uses a progressive process to do this.
Signed signatures in the pages of source PDF document will not be imported into current PDF document.
Currently, Foxit PDF SDK does not support to do the importing if either current PDF document or the source PDF document contains XFA.
If this function is used to combine two PDF files, pages are strongly recommended to be imported to the end of destination PDF file instead of to the beginning of destination PDF file.

参数

  [in] | dest_index | A page index in current PDF document. This is used to specify where the imported pages will be inserted. If parameter dest_index is less than 0, the imported pages will be inserted to the first. If parameter dest_index is equal to or larger than current page count, the imported pages will be inserted to the end.
  [in] | src_file_path | A full path of an existing PDF file as the source PDF document. Some pages will be imported from this PDF file to current PDF document.
  [in] | password | A password string used to load source PDF document content. The password can be either user password or owner password. If source PDF document is not encrypted by password, just pass an empty string.
  [in] | flags | Options for importing pages. Please refer to values starting from FSDK.PDFDoc.e_ImportFlagNormal and this can be one or a combination of these values. Default value: FSDK.PDFDoc.e_ImportFlagNormal.
  [in] | layer_name | The name of non-selectable label or the prefix name of the non-selectable label to be shown in layer panel of application. Default value: an empty string. If parameter flags contains FSDK.PDFDoc.e_ImportFlagWithLayers, this should not be empty and should be a valid string. If parameter flags does not contain FSDK.PDFDoc.e_ImportFlagWithLayers, this string will be ignored. If all the pages of source PDF document is to be imported to current document, all layers from source document will be grouped under a non-selectable label, and this string will be directly used as the label. If only part of pages of source PDF document is to be imported to current document, layers in the same page will be grouped under a single non-selectable label, and this string will be used as the prefix name of the label. The label will be like "layerName_Page_X".
  [in] | page_range | A range object to specify which pages is to be imported. If this range object is constructed by default constructor and not set any value, all pages in the source document will be imported. Default value: a range object by default constructor and not set any value.
  [in] | pause | Pause object which decides if the importing process needs to be paused. This can be null which means not to pause during the parsing process. If this is not null, it should be a valid pause object implemented by user. Default value: null.

返回
  A progressive object. Please check the rate of current progress by function FSDK.Progressive.GetRateOfProgress. If the rate is not 100 yet, call function FSDK.Progressive.Continue to continue the progress until the progress is finished.

## ◆ StartLoad()

FSDK::PDFDoc::StartLoad | ( | password | ,
|  | is_cache_stream | ,
|  | pause |
| ) |  |

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

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

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

参数

  [in] | password | 用于加载当前文档内容的密码字符串。密码可以是用户密码或所有者密码。 如果当前文档未使用密码加密，只需传递一个空字符串。默认值：空字符串。
  [in] | is_cache_stream | true 表示将流内容加载到内存中，false 表示不将流内容加载到内存中， 而是将流内容保留在文件系统上，并在需要时读取。 有关这两种模式之间的区别，请参阅"详细信息"部分。默认值：true。
  [in] | pause | 用于决定是否需要暂停加载过程的暂停对象。 这可以是 null，表示在解析过程中不暂停。 如果不是 null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度， 直到进度完成。

## ◆ StartLoadW()

FSDK::PDFDoc::StartLoadW | ( | password | ,
|  | is_cache_stream | ,
|  | pause |
| ) |  |

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

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

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

参数

  [in] | password | 用于加载当前文档内容的密码字符串。密码可以是用户密码或所有者密码。 如果当前文档未使用密码加密，只需传递一个空字符串。默认值：空字符串。
  [in] | is_cache_stream | true 表示将流内容加载到内存中，false 表示不将流内容加载到内存中， 而是将流内容保留在文件系统上，并在需要时读取。 有关这两种模式之间的区别，请参阅"详细信息"部分。默认值：true。
  [in] | pause | 用于决定是否需要暂停加载过程的暂停对象。 这可以是 null，表示在解析过程中不暂停。 如果不是 null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度， 直到进度完成。

## ◆ StartRecognizeForm() [1/2]

FSDK::PDFDoc::StartRecognizeForm | ( | is_set_tool_tips | ,
|  | pause |
| ) |  |

开始在当前PDF文档中识别表单。

在PDF文档中识别表单可能需要很长时间，因此此函数使用渐进式过程来完成此操作。
对于Windows平台，强烈建议用户在调用此函数之前通过调用函数 FSDK.OCREngine.Initialize 初始化OCR引擎。

参数

  [in] | is_set_tool_tips | true 表示为识别的表单域设置工具提示，而 false 表示不为识别的表单域设置工具提示。
  [in] | pause | 暂停回调对象，用于决定识别过程是否需要暂停。 可以为 null，表示在识别过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartRecognizeForm() [2/2]

FSDK::PDFDoc::StartRecognizeForm | ( | pause |  | ) |

开始在当前PDF文档中识别表单。

在PDF文档中识别表单可能需要很长时间，因此此函数使用渐进式过程来完成此操作。
对于Windows平台，强烈建议用户在调用此函数之前通过调用函数 FSDK.OCREngine.Initialize 初始化OCR引擎。

参数

  [in] | pause | 暂停回调对象，用于决定识别过程是否需要暂停。 可以为 null，表示在识别过程中不暂停。 如果不为 null，应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度，直到进度完成。

## ◆ StartSaveAs() [1/2]

FSDK::PDFDoc::StartSaveAs | ( | file | ,
|  | save_flags | ,
|  | pause |
| ) |  |

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

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

参数

  [in] | file | 用户实现的 FSDK.FileWriterCallback 对象，用于保存PDF文档。
  [in] | save_flags | 文档保存标志。请参阅从 FSDK.PDFDoc.e_SaveFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：FSDK.PDFDoc.e_SaveFlagNormal。
  [in] | pause | 用于决定是否需要暂停解析过程的暂停回调对象。 这可以是 null，表示在解析过程中不暂停。 如果不是 null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度， 直到进度完成。

注解
  此函数不支持将当前PDF文档对象直接保存回用于构造当前PDF对象的PDF文件。 为了这样做，建议用户按照以下步骤操作：
  假设当前PDF对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将当前PDF对象保存到临时文件。这里，此临时文件名为"temp.tmp"。
  2. 确保当前PDF对象已被析构——这相当于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
  然后用户可以打开保存的PDF文件进行其他操作。

## ◆ StartSaveAs() [2/2]

FSDK::PDFDoc::StartSaveAs | ( | file_path | ,
|  | save_flags | ,
|  | pause |
| ) |  |

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

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

参数

  [in] | file_path | 新保存的PDF文件的完整路径。不应为空字符串。
  [in] | save_flags | 文档保存标志。请参阅从 FSDK.PDFDoc.e_SaveFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：FSDK.PDFDoc.e_SaveFlagNormal。
  [in] | pause | 用于决定是否需要暂停解析过程的暂停回调对象。 这可以是 null，表示在解析过程中不暂停。 如果不是 null，则应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 FSDK.Progressive.GetRateOfProgress 检查当前进度的速率。 如果速率尚未达到100，请调用函数 FSDK.Progressive.Continue 继续进度， 直到进度完成。

注解
  此函数不支持将当前PDF文档对象直接保存回用于构造当前PDF对象的PDF文件。 为了这样做，建议用户按照以下步骤操作：
  假设当前PDF对象是从名为"org.pdf"的PDF文件构造的。
  1. 使用当前函数将当前PDF对象保存到临时文件。这里，此临时文件名为"temp.tmp"。
  2. 确保当前PDF对象已被析构——这相当于"关闭文档"。
  3. 删除"org.pdf"并将"temp.tmp"重命名为"org.pdf"。
  然后用户可以打开保存的PDF文件进行其他操作。

## ◆ StartSaveAsPayloadFile()

FSDK::PDFDoc::StartSaveAsPayloadFile | ( | file_path | ,
|  | payload_file_path | ,
|  | crypto_filter | ,
|  | description | ,
|  | version | ,
|  | ave_flags | ,
|  | pause |
| ) |  |

Start to save current PDF document as a wrapper document with a payload document (defined in PDF 2.0).

It may take a long time to saving PDF document, so this function uses a progressive process to do this.
If current document is loaded from an existing PDF file and a different file version has been set by FSDK.PDFDoc.SetFileVersion before saving, Foxit PDF SDK will ignore FSDK.PDFDoc.e_SaveFlagIncremental in parameter save_flags and use the file version in saved PDF file.

参数

  [in] | file_path | A full path for the new saved PDF file. It should not be an empty string.
  [in] | payload_file_path | A full path of a PDF document which will be used as payload document. It should not be an empty string.
  [in] | crypto_filter | The name of the cryptographic filter used to encrypt the encrypted payload document.
  [in] | description | Description for wrapper file to show applications or confront users prompt information.
  [in] | version | The version number of the cryptographic filter used to encrypt the encrypted payload referenced by this dictionary.
  [in] | save_flags | Document saving flags. Please refer to values starting from FSDK.PDFDoc.e_SaveFlagNormal and this can be one or combination of these values. Default value: FSDK.PDFDoc.e_SaveFlagNormal.
  [in] | pause | Pause callback object which decides if the parsing process needs to be paused. This can be null which means not to pause during the parsing process. If this is not null, it should be a valid pause object implemented by user. Default value: null.

返回
  A progressive object. Please check the rate of current progress by function FSDK.Progressive.GetRateOfProgress. If the rate is not 100 yet, call function FSDK.Progressive.Continue to continue the progress until the progress is finished.

## ◆ UpdateHeaderFooter()

GetEditableHeaderFooter () FSDK::PDFDoc::UpdateHeaderFooter | ( | headerfooter |  | ) |

Get the editable header footer object.

A PDF document may have been added header-footer sereral times, but only one of these header-footer can be editable. This function is to retreive the editable header-footer.

返回
  A header-footer object that represents the editable header-footer.

Add new header-footer.

A PDF document can be added header-footer sereral times. When a new header-footer is added, the old ones will not be removed but be covered by the new one if the old ones appear in the same place as new one.

参数

  [in] | headerfooter | A valid header-footer object to be added to current document.

返回
  None.

Update header-footer.

A PDF document can be added header-footer sereral times. When a header-footer is updated to the document, the old ones which appear in the same place with the new one will all be removed and then the new one will be added.

参数

  [in] | headerfooter | A valid header-footer object to be updated to current document.

返回
  None.

## 类成员变量说明

## ◆ e_DisplayUseNone

FSDK::PDFDoc::e_DisplayUseNone
| static

显示模式的枚举,指定文档打开时应如何显示。

此枚举的值应单独使用。

打开文档时,文档大纲和缩略图图像均不可见。

## ◆ e_EncryptUnknown

FSDK::PDFDoc::e_EncryptUnknown
| static

加密类型的枚举。

此枚举的值应单独使用。

未知的加密类型。

## ◆ e_ExtractPagesOptionAnnotation

FSDK::PDFDoc::e_ExtractPagesOptionAnnotation
| static

用于提取页面的选项枚举。

此枚举的值可以单独使用或组合使用。

如果设置,表示与提取页面相关的注释也将被提取。

## ◆ e_Forms

FSDK::PDFDoc::e_Forms
| static

数据类型的枚举,用于决定哪些对象将从 FDF/XFDF 文档导入或导出到 FDF/XFDF 文档。

此枚举的值可以单独使用或组合使用。

如果设置,表单字段将从 FDF/XFDF 文档导入或导出到 FDF/XFDF 文档。

## ◆ e_ImportFlagNormal

FSDK::PDFDoc::e_ImportFlagNormal
| static

用于导入页面的标志枚举。

此枚举的值可以单独使用或组合使用。

正常导入页面。

## ◆ e_ImportFlagShareStream

FSDK::PDFDoc::e_ImportFlagShareStream
| static

导入页面时不将流对象克隆到内存中。

此标志仅在源 PDF 文档未加密时有用。 如果使用此标志导入页面,将减少内存开销。

## ◆ e_InsertDocOptionAttachments

FSDK::PDFDoc::e_InsertDocOptionAttachments
| static

用于将 PDF 文档插入到另一个文档的选项枚举。

此枚举的值可以单独使用或组合使用。

如果设置,表示附件也将被插入到目标文档。

## ◆ e_PermAnnotForm

FSDK::PDFDoc::e_PermAnnotForm
| static

操作文本注释并填写交互式表单字段。(权限值中的第 6 位)

如果值 FSDK.PDFDoc.e_PermModify 也已设置, 用户可以创建或修改交互式表单字段(包括签名字段)。

## ◆ e_PermAssemble

FSDK::PDFDoc::e_PermAssemble
| static

组装 PDF 文档。(权限值中的第 11 位)

如果设置此值,则可以组装文档 (插入、旋转或删除页面并创建书签或缩略图图像), 无论是否设置值 FSDK.PDFDoc.e_PermModify。

## ◆ e_PermExtract

FSDK::PDFDoc::e_PermExtract
| static

提取 PDF 内容。(权限值中的第 5 位)

如果设置此值,用户可以通过除由值 FSDK.PDFDoc.e_PermExtractAccess 控制的操作之外的操作 从文档中复制或以其他方式提取文本和图形。

## ◆ e_PermExtractAccess

FSDK::PDFDoc::e_PermExtractAccess
| static

残障支持。(权限值中的第 10 位)

如果设置此值,用户可以提取文本和图形以支持 残障用户的可访问性或用于其他目的。

## ◆ e_PermFillForm

FSDK::PDFDoc::e_PermFillForm
| static

填写 PDF 表单。(权限值中的第 9 位)

如果设置此值,用户可以填写交互式表单字段(包括签名字段), 即使未使用值 FSDK.PDFDoc.e_PermAnnotForm。

## ◆ e_PermModify

FSDK::PDFDoc::e_PermModify
| static

修改 PDF 内容。(权限值中的第 4 位)

如果设置此值,用户可以通过除由 值 FSDK.PDFDoc.e_PermAnnotForm、FSDK.PDFDoc.e_PermFillForm 和 FSDK.PDFDoc.e_PermAssemble 控制的操作之外的操作修改 PDF 文档的内容。

## ◆ e_PermPrint

FSDK::PDFDoc::e_PermPrint
| static

PDF 文档中用户访问权限的枚举。

此枚举的值可以单独使用或组合使用。

以正常模式打印 PDF 文档。(权限值中的第 3 位)

如果用户想要打印更高质量级别的 PDF 文档,请将当前值与 值 FSDK.PDFDoc.e_PermPrintHigh 一起设置。

## ◆ e_PermPrintHigh

FSDK::PDFDoc::e_PermPrintHigh
| static

以更高质量打印 PDF 文档。(权限值中的第 12 位)

如果未设置此值(并且设置了值 FSDK.PDFDoc.e_PermPrint), 打印仅限于外观的低级表示,可能质量较差。

## ◆ e_PwdInvalid

FSDK::PDFDoc::e_PwdInvalid
| static

PDF 文档中当前使用的密码类型的枚举。

此枚举的值应单独使用。

密码无效。

## ◆ e_SaveFlagIncremental

FSDK::PDFDoc::e_SaveFlagIncremental
| static

增量保存文档。

这可以单独使用或与其他保存标志组合使用,除了 FSDK.PDFDoc.e_SaveFlagNormal。 特别是,如果这与 FSDK.PDFDoc.e_SaveFlagNoOriginal 组合使用, 将只保存增量数据。

## ◆ e_SaveFlagLinearized

FSDK::PDFDoc::e_SaveFlagLinearized
| static

将文档保存为线性化文件。

这应该单独使用,不能与其他保存标志一起使用,除了 FSDK.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime。 这只能用于函数 FSDK.PDFDoc.SaveAs 或 FSDK.PDFDoc.StartSaveAs。

## ◆ e_SaveFlagNoOriginal

FSDK::PDFDoc::e_SaveFlagNoOriginal
| static

保存文档时不包含原始数据或未更改的对象。

这可以单独使用或与其他保存标志组合使用,除了 FSDK.PDFDoc.e_SaveFlagNormal。 特别是,如果这与 FSDK.PDFDoc.e_SaveFlagIncremental 组合使用, 将只保存增量数据。

## ◆ e_SaveFlagNormal

FSDK::PDFDoc::e_SaveFlagNormal
| static

PDF 文档保存标志的枚举。

此枚举的值可以单独使用或组合使用。

正常保存文档,不使用任何特殊标志。

这只能与标志 FSDK.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime 组合使用。

## ◆ e_SaveFlagNoUpdatingMetadataDateTime

FSDK::PDFDoc::e_SaveFlagNoUpdatingMetadataDateTime
| static

保存文档时不更新元数据 "ModDate" 和 "CreationDate"。

这可以单独使用或与其他保存标志组合使用。 这只能用于函数 FSDK.PDFDoc.SaveAs 和 FSDK.PDFDoc.StartSaveAs。

## ◆ e_SaveFlagRemoveRedundantObjects

FSDK::PDFDoc::e_SaveFlagRemoveRedundantObjects
| static

保存文档时删除冗余的 PDF 对象。

这可以单独使用或与 FSDK.PDFDoc.e_SaveFlagNoOriginal、FSDK.PDFDoc.e_SaveFlagXRefStream 或 FSDK.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime 组合使用。 这只能用于函数 FSDK.PDFDoc.SaveAs 或 FSDK.PDFDoc.StartSaveAs。

## ◆ e_SaveFlagXRefStream

FSDK::PDFDoc::e_SaveFlagXRefStream
| static

使用 XRef 流保存文档。

这可以单独使用或与其他保存标志组合使用,除了 FSDK.PDFDoc.e_SaveFlagNormal。

## ◆ e_WrapperNone

FSDK::PDFDoc::e_WrapperNone
| static

包装类型的枚举。

此枚举的值应单独使用。

普通文档。