Foxit PDF SDK

Public 成员函数 | 静态 Public 属性 | 所有成员列表
com.foxit.sdk.pdf.PDFDoc类 参考
类 com.foxit.sdk.pdf.PDFDoc 继承关系图:

## Public 成员函数
| PDFDoc () throws com.foxit.sdk.PDFException
| 构造函数。 更多...
| PDFDoc (byte[] buffer) throws com.foxit.sdk.PDFException
| 构造函数，从内存缓冲区。 更多...
| PDFDoc (FileReaderCallback file_read, boolean is_async) throws com.foxit.sdk.PDFException
| 构造函数，使用文件读取回调对象。 更多...
| PDFDoc (PDFDoc other)
| 构造函数，通过另一个PDF文档对象。 更多...
| PDFDoc (String path) throws com.foxit.sdk.PDFException
| 构造函数，从现有PDF文件路径。 更多...
void | addHeaderFooter (HeaderFooter headerfooter) throws com.foxit.sdk.PDFException
| 添加新的页眉页脚。 更多...
int | addIndirectObject (PDFObject pdf_object) throws com.foxit.sdk.PDFException
| 将PDF对象添加到当前PDF文档中，成为间接对象。 更多...
PDFPage | addPageFromTemplate (String template_name) throws com.foxit.sdk.PDFException
| 从命名模板添加新的PDF页面到文档。 更多...
PagingSealSignature | addPagingSealSignature (Range page_range, float width, float height, boolean to_check_permission) throws com.foxit.sdk.PDFException
| 按页面范围向文档添加骑缝章签名。 更多...
void | addTableOfContents (String title, Int32Array bookmark_level_array) throws com.foxit.sdk.PDFException
| 将页面作为目录插入到当前PDF文档的前面。 更多...
void | addTableOfContents (TableOfContentsConfig table_of_contents_config) throws com.foxit.sdk.PDFException
| 插入目录页到当前PDF最前页。 更多...
int | checkPassword (byte[] password) throws com.foxit.sdk.PDFException
| 检查指定密码的类型。 更多...
void | clearRenderCache () throws com.foxit.sdk.PDFException
| 清除渲染过程中使用的缓存，以减少内存使用。 更多...
void | createDSS () throws com.foxit.sdk.PDFException
| 在当前PDF文档中创建DSS信息。 更多...
Bookmark | createRootBookmark () throws com.foxit.sdk.PDFException
| 创建新的书签根节点。 更多...
synchronized void | delete ()
| 直接清除C++相关资源。 更多...
void | deleteIndirectObject (int object_number) throws com.foxit.sdk.PDFException
| 通过间接对象编号删除间接对象。 更多...
boolean | doJSOpenAction () throws com.foxit.sdk.PDFException
| 文档打开时执行JavaScript动作。 更多...
boolean | exportAnnotToFDF (Annot pdf_annot, FDFDoc fdf_doc) throws com.foxit.sdk.PDFException
| 将指定的注释导出到FDF/XFDF文档。 更多...
boolean | exportFormFieldsToFDF (FieldArray field_array, boolean is_include, FDFDoc fdf_doc) throws com.foxit.sdk.PDFException
| 将指定的表单字段导出到FDF/XFDF文档。 更多...
boolean | exportToFDF (FDFDoc fdf_doc, int types, Range page_range) throws com.foxit.sdk.PDFException
| 将表单字段和注释导出到FDF/XFDF文档。 更多...
PageBasicInfoArray | getAllPageBasicInfo () throws com.foxit.sdk.PDFException
| 获取所有页面的基本信息。 更多...
AnnotArray | getAnnotsByIdArray (WStringArray unique_id_arr)
| 通过唯一ID数组返回注释数组。 更多...
int | getBookmarkLevelDepth () throws com.foxit.sdk.PDFException
| 获取书签层级深度。 更多...
PDFDictionary | getCatalog () throws com.foxit.sdk.PDFException
| 获取目录字典。 更多...
CertificateEncryptData | getCertificateEncryptData () throws com.foxit.sdk.PDFException
| 获取证书加密的加密数据。 更多...
CustomEncryptData | getCustomEncryptData () throws com.foxit.sdk.PDFException
| 获取自定义加密的加密数据。 更多...
int | getDisplayMode () throws com.foxit.sdk.PDFException
| 获取显示模式。 更多...
DRMEncryptData | getDRMEncryptData () throws com.foxit.sdk.PDFException
| 获取Foxit DRM加密的加密数据。 更多...
HeaderFooter | getEditableHeaderFooter () throws com.foxit.sdk.PDFException
| 获取可编辑的页眉页脚对象。 更多...
EmbeddedFontData | getEmbeddedFontData () throws com.foxit.sdk.PDFException
| 获取嵌入字体数据。 更多...
PDFDictionary | getEncryptDict () throws com.foxit.sdk.PDFException
| 获取加密字典。 更多...
int | getEncryptionType () throws com.foxit.sdk.PDFException
| 获取加密类型。 更多...
java.math.BigInteger | getFileSize () throws com.foxit.sdk.PDFException
| 获取文件大小。 更多...
int | getFileVersion () throws com.foxit.sdk.PDFException
| 获取存储在PDF头部部分的PDF文件版本。 更多...
int | getFirstAvailPageIndex () throws com.foxit.sdk.PDFException
| 获取第一个可用页面的页面索引。 更多...
Font | getFont (int index) throws com.foxit.sdk.PDFException
| 通过索引获取字体。 更多...
int | getFontCount () throws com.foxit.sdk.PDFException
| 计算当前PDF文档中使用的所有PDF字体。 更多...
String | getHeader () throws com.foxit.sdk.PDFException
| 获取标识文件所符合的PDF规范版本的PDF头部。 更多...
PDFObject | getIndirectObject (int object_number) throws com.foxit.sdk.PDFException
| 通过间接对象编号获取间接对象。 更多...
PDFDictionary | getInfo () throws com.foxit.sdk.PDFException
| 获取信息字典。 更多...
Action | getOpenAction () throws com.foxit.sdk.PDFException
| 获取文档打开时要执行的动作。 更多...
PDFPage | getPage (int index) throws com.foxit.sdk.PDFException
| 通过索引获取PDF页面。 更多...
PageBasicInfo | getPageBasicInfo (int index) throws com.foxit.sdk.PDFException
| 通过索引获取指定页面的基本信息。 更多...
int | getPageCount () throws com.foxit.sdk.PDFException
| 获取页面数量。 更多...
PDFDictionary | getPagesDict () throws com.foxit.sdk.PDFException
| 获取"Pages"的字典。 更多...
String | getPageText (int page_index) throws com.foxit.sdk.PDFException
| 以显示顺序获取指定页面文本。 更多...
int | getPasswordType () throws com.foxit.sdk.PDFException
| 获取当前使用的密码类型。 更多...
PayLoadData | getPayLoadData () throws com.foxit.sdk.PDFException
| 如果当前文档的包装类型是 com.foxit.sdk.pdf.PDFDoc.e_WrapperPDFV2 ，获取载荷数据。 更多...
ReadingBookmark | getReadingBookmark (int index) throws com.foxit.sdk.PDFException
| 通过索引获取阅读书签。 更多...
int | getReadingBookmarkCount () throws com.foxit.sdk.PDFException
| 获取阅读书签的数量。 更多...
RMSEncryptData | getRMSEncryptData () throws com.foxit.sdk.PDFException
| 获取RMS加密的加密数据。 更多...
Bookmark | getRootBookmark () throws com.foxit.sdk.PDFException
| 获取书签根节点。 更多...
SecurityHandler | getSecurityHandler () throws com.foxit.sdk.PDFException
| 获取当前文档的当前PDF安全处理程序。 更多...
Signature | getSignature (int index) throws com.foxit.sdk.PDFException
| 通过索引获取签名。 更多...
int | getSignatureCount () throws com.foxit.sdk.PDFException
| 获取签名数量。 更多...
StdEncryptData | getStdEncryptData () throws com.foxit.sdk.PDFException
| 获取标准加密（称为密码加密）的加密数据。 更多...
PDFDictionary | getTrailer () throws com.foxit.sdk.PDFException
| 获取拖车字典。 更多...
String | getUserPassword (byte[] owner_password) throws com.foxit.sdk.PDFException
| 基于所有者密码获取用户密码。 更多...
int | getUserPermissions () throws com.foxit.sdk.PDFException
| 获取用户访问权限。 更多...
WrapperData | getWrapperData () throws com.foxit.sdk.PDFException
| 如果当前文档的包装类型是 com.foxit.sdk.pdf.PDFDoc.e_WrapperFoxit ，获取包装数据。 更多...
int | getWrapperOffset () throws com.foxit.sdk.PDFException
| 如果当前文档的包装类型是 com.foxit.sdk.pdf.PDFDoc.e_WrapperFoxit ，获取包装偏移量。 更多...
int | getWrapperType () throws com.foxit.sdk.PDFException
| 获取包装类型。 更多...
boolean | hasForm () throws com.foxit.sdk.PDFException
| 检查当前PDF文档是否有交互式表单（也称为AcroForm）。 更多...
boolean | hasHeaderFooter () throws com.foxit.sdk.PDFException
| 检查当前文档是否有页眉页脚。 更多...
boolean | hasLayer () throws com.foxit.sdk.PDFException
| 检查当前PDF文档是否有图层（在《PDF参考手册1.7》中称为"可选内容组"）。 更多...
boolean | hidePageTemplate (String template_name) throws com.foxit.sdk.PDFException
| 隐藏命名页面。 更多...
boolean | importFromFDF (FDFDoc fdf_doc, int types, Range page_range) throws com.foxit.sdk.PDFException
| 从FDF/XFDF文档导入表单字段和注释。 更多...
void | insertDocument (int dest_index, PDFDoc src_doc, int options) throws com.foxit.sdk.PDFException
| 将另一个PDF文档插入到当前PDF文档的指定位置。 更多...
void | insertDocument (int dest_index, PDFDoc src_doc, int options, String bookmark_title) throws com.foxit.sdk.PDFException
| 将另一个PDF文档插入到当前PDF文档的指定位置。 更多...
PDFPage | insertPage (int index, float width, float height) throws com.foxit.sdk.PDFException
| 通过索引向文档插入新的空白PDF页面。 更多...
PDFPage | insertPage (int index, int size) throws com.foxit.sdk.PDFException
| 通过索引向文档插入新的空白PDF页面。 更多...
ReadingBookmark | insertReadingBookmark (int reading_bookmark_index, String title, int dest_page_index) throws com.foxit.sdk.PDFException
| 向当前PDF文档插入阅读书签。 更多...
boolean | isEmpty ()
| 检查当前对象是否为空。 更多...
boolean | isEncrypted () throws com.foxit.sdk.PDFException
| 检查当前文档是否为加密文件。 更多...
boolean | isLinearized () throws com.foxit.sdk.PDFException
| 检查当前PDF文档是否为线性化文件。 更多...
boolean | isOwnerPassword (byte[] password) throws com.foxit.sdk.PDFException
| 检查输入密码是否为当前PDF文档的所有者密码。 更多...
boolean | isOwnerPassword (String password) throws com.foxit.sdk.PDFException
| 检查输入密码是否为当前PDF文档的所有者密码。 更多...
boolean | isPortfolio () throws com.foxit.sdk.PDFException
| 检查当前PDF文档是否为文档集文件。 更多...
boolean | isTaggedPDF () throws com.foxit.sdk.PDFException
| 检查当前PDF文档是否为标签化PDF文件。 更多...
boolean | isUserPassword (byte[] password) throws com.foxit.sdk.PDFException
| 检查输入密码是否为当前PDF文档的用户密码。 更多...
boolean | isUserPassword (String password) throws com.foxit.sdk.PDFException
| 检查输入密码是否为当前PDF文档的用户密码。 更多...
boolean | isWrapper () throws com.foxit.sdk.PDFException
| 检查当前文档是否为包装文件。 更多...
boolean | isXFA () throws com.foxit.sdk.PDFException
| 检查当前PDF文档是否为XFA文档。 更多...
int | load (byte[] password) throws com.foxit.sdk.PDFException
| 使用指定密码加载当前文档内容。 更多...
int | loadW (String password) throws com.foxit.sdk.PDFException
| 使用指定密码加载当前文档内容。 更多...
boolean | movePagesTo (Range page_range, int dest_index) throws com.foxit.sdk.PDFException
| 将一个或多个页面（按索引指定）移动到新位置。 更多...
boolean | movePageTo (PDFPage page, int dest_index) throws com.foxit.sdk.PDFException
| 将指定页面移动到新位置。 更多...
boolean | removeAllHeaderFooters () throws com.foxit.sdk.PDFException
| 删除所有页眉页脚。 更多...
boolean | removeBookmark (Bookmark bookmark) throws com.foxit.sdk.PDFException
| 删除指定的书签。 更多...
void | removeHiddenInfo (HiddenInfoSettingData hidden_data_setting) throws com.foxit.sdk.PDFException
| 根据用户定义的设置从当前PDF文档中删除指定类型的隐藏信息。 更多...
boolean | removeOpenAction () throws com.foxit.sdk.PDFException
| 移除文档打开时要执行的动作。 更多...
boolean | removePage (int index) throws com.foxit.sdk.PDFException
| 通过页面索引删除PDF页面。 更多...
boolean | removePage (PDFPage page) throws com.foxit.sdk.PDFException
| 删除指定的PDF页面。 更多...
boolean | removeReadingBookmark (ReadingBookmark reading_bookmark) throws com.foxit.sdk.PDFException
| 从当前PDF文档中删除阅读书签。 更多...
boolean | removeSecurity () throws com.foxit.sdk.PDFException
| 从当前文档中移除安全处理程序，以便后续保存的文档将是未加密的。 更多...
void | removeSignature (Signature signature) throws com.foxit.sdk.PDFException
| 删除签名。 更多...
void | removeStructTree ()
| 移除当前文档中的结构树。 更多...
void | sanitize () throws com.foxit.sdk.PDFException
| 使用默认设置从当前PDF文档中删除所有隐藏或潜在敏感信息。 更多...
boolean | saveAs (String file_path, int save_flags) throws com.foxit.sdk.PDFException
| 将当前PDF文档另存为另一个PDF文件。 更多...
boolean | saveAsWrapperFile (String file_path, WrapperData wrapper_data, int user_permissions, String owner_password) throws com.foxit.sdk.PDFException
| 将当前PDF文档另存为包装文件。 更多...
void | setCacheFile (StreamCallback file_stream, boolean is_own_file_stream) throws com.foxit.sdk.PDFException
| 设置缓存文件 (代表文件流) 到当前PDF文档。 更多...
void | setDisplayMode (int display_mode) throws com.foxit.sdk.PDFException
| 设置显示模式。 更多...
void | setFileVersion (int version) throws com.foxit.sdk.PDFException
| 设置将存储在保存的PDF文件的PDF头部部分中的PDF文件版本。 更多...
boolean | setOpenAction (Action action) throws com.foxit.sdk.PDFException
| 设置文档打开时要执行的动作。 更多...
boolean | setSecurityHandler (SecurityHandler handler) throws com.foxit.sdk.PDFException
| 为加密设置PDF安全处理程序，如标准加密（密码）、 证书加密等。 更多...
Progressive | startAddTiledWatermark (FileReaderCallback src_img_stream, TiledWatermarkSettings settings, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 通过图像流添加图片类型平铺水印到页面中。 更多...
Progressive | startAddTiledWatermark (PDFPage page, TiledWatermarkSettings settings, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 添加页面类型平铺水印。 更多...
Progressive | startAddTiledWatermark (String src_img_file_path, TiledWatermarkSettings settings, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| Add image type tiled watermark to PDF pages by image path. 更多...
Progressive | startAddTiledWatermark (String text, TiledWatermarkSettings settings, WatermarkTextProperties properties, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 添加文本平铺水印到页面中。 更多...
Progressive | startEmbedAllFonts (PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始转换所有未嵌入字体为内嵌字体。 更多...
Progressive | startExtractPages (FileWriterCallback file, int options, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始从当前PDF文档提取页面。 更多...
Progressive | startExtractPages (String file_path, int options, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始从当前PDF文档提取页面。 更多...
Progressive | startGetPayloadFile (FileWriterCallback payload_file, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始获取载荷文件。 更多...
Progressive | startImportPages (int dest_index, PDFDoc src_doc, int flags, String layer_name, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始从另一个PDF文档（通过PDF文档对象）导入页面。 更多...
Progressive | startImportPagesFromFilePath (int dest_index, String src_file_path, byte[] password, int flags, String layer_name, Range page_range, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始从另一个PDF文档（通过文件路径）导入页面。 更多...
Progressive | startLoad (byte[] password, boolean is_cache_stream, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始使用指定密码加载当前文档内容。 更多...
Progressive | startLoadW (String password, boolean is_cache_stream, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始使用指定密码加载当前文档内容。 更多...
Progressive | startRecognizeForm (boolean is_set_tool_tips, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始识别表单域。 更多...
Progressive | startRecognizeForm (PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始识别表单域。 更多...
Progressive | startSaveAs (FileWriterCallback file, int save_flags, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始将当前PDF文档另存为另一个PDF文件。 更多...
Progressive | startSaveAs (String file_path, int save_flags, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始将当前PDF文档另存为另一个PDF文件。 更多...
Progressive | startSaveAsPayloadFile (String file_path, String payload_file_path, String crypto_filter, String description, float version, int save_flags, PauseCallback pause) throws com.foxit.sdk.PDFException
| 开始将当前PDF文档另存为带有载荷文档的包装文档（在PDF 2.0中定义）。 更多...
void | updateHeaderFooter (HeaderFooter headerfooter) throws com.foxit.sdk.PDFException
| 更新页眉页脚。 更多...

## 静态 Public 属性
static final int | e_Annots = 0x0002
| 如果设置，注释（链接注释除外）将从FDF/XFDF文档导入或导出到FDF/XFDF文档。
static final int | e_DisplayFullScreen = 3
| 当文档打开时，全屏模式，没有菜单栏、窗口控件或任何其他窗口可见。
static final int | e_DisplayUseAttachment = 5
| 当文档打开时，附件面板可见。
static final int | e_DisplayUseNone = 0
| 当文档打开时，文档大纲和缩略图都不可见。
static final int | e_DisplayUseOC = 4
| 当文档打开时，可选内容组面板可见。
static final int | e_DisplayUseOutlines = 1
| 当文档打开时，文档大纲（书签）可见。
static final int | e_DisplayUseThumbs = 2
| 当文档打开时，缩略图可见。
static final int | e_EncryptCDRM = 6
| （保留，目前不使用此值。）加密类型：福昕连接PDF DRM加密。
static final int | e_EncryptCertificate = 2
| 加密类型：数字证书加密。
static final int | e_EncryptCustom = 4
| 加密类型：自定义加密。
static final int | e_EncryptFoxitDRM = 3
| 加密类型：福昕DRM加密。
static final int | e_EncryptNone = 0
| 无加密模式。
static final int | e_EncryptPassword = 1
| 加密类型：密码，这是标准加密。
static final int | e_EncryptRMS = 5
| 加密类型：微软RMS加密。
static final int | e_EncryptUnknown = -1
| 未知加密类型。
static final int | e_ExtractPagesOptionAnnotation = 0x0001
| 如果设置，表示与提取页面相关的注释也将被提取。
static final int | e_ExtractPagesOptionAttachFiles = 0x0020
| 如果设置，表示附件文件也将被提取。
static final int | e_ExtractPagesOptionBookmark = 0x0040
| 如果设置，表示书签也将被提取。
static final int | e_ExtractPagesOptionJavascript = 0x0004
| 如果设置，表示Javascript也将被提取。
static final int | e_ExtractPagesOptionObjectStream = 0x0010
| 如果设置，表示对结果文件使用 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagXRefStream 保存标志 以减少结果文件的大小。
static final int | e_ExtractPagesOptionOCProperties = 0x0008
| 如果设置，表示OCProperties也将被提取。
static final int | e_ExtractPagesOptionSignature = 0x0080
| 如果设置，表示签名也将被提取。必须与 结合使用。
static final int | e_ExtractPagesOptionStructureTree = 0x0002
| 如果设置，表示结构树也将被提取。
static final int | e_Forms = 0x0001
| 如果设置，表单字段将从FDF/XFDF文档导入或导出到FDF/XFDF文档。
static final int | e_ImportFlagNormal = 0
| 正常导入页面。
static final int | e_ImportFlagShareStream = 0x0002
| 导入页面时不将流对象克隆到内存中。 更多...
static final int | e_ImportFlagWithLayers = 0x0001
| 导入页面时包含图层。
static final int | e_InsertDocOptionAttachments = 0x0001
| 如果设置，表示附件也将插入到目标文档中。
static final int | e_InsertDocOptionBookmark = 0x0002
| 如果设置，表示书签也将插入到目标文档中。
static final int | e_Links = 0x0004
| （保留，尚未支持）如果设置，只有链接注释将从XFDF文档导入或导出到XFDF文档。
static final int | e_PermAnnotForm = 0x0020
| 操作文本注释和填写交互式表单字段。（权限值中的第6位） 更多...
static final int | e_PermAssemble = 0x0400
| 组装PDF文档。（权限值中的第11位） 更多...
static final int | e_PermExtract = 0x0010
| 提取PDF内容。（权限值中的第5位） 更多...
static final int | e_PermExtractAccess = 0x0200
| 残疾人支持。（权限值中的第10位） 更多...
static final int | e_PermFillForm = 0x0100
| 填写PDF表单。（权限值中的第9位） 更多...
static final int | e_PermModify = 0x0008
| 修改PDF内容。（权限值中的第4位） 更多...
static final int | e_PermPrint = 0x0004
| 以普通模式打印PDF文档。（权限值中的第3位） 更多...
static final int | e_PermPrintHigh = 0x0800
| 以更高质量打印PDF文档。（权限值中的第12位） 更多...
static final int | e_PwdInvalid = 0
| 密码无效。
static final int | e_PwdNoPassword = 1
| PDF文档中不使用密码。
static final int | e_PwdOwner = 3
| PDF文档中使用所有者密码。
static final int | e_PwdUser = 2
| PDF文档中使用用户密码。
static final int | e_SaveFlagIncremental = 0x0001
| 增量保存文档。 更多...
static final int | e_SaveFlagLinearized = 0x1000
| 将文档保存为线性化文件。 更多...
static final int | e_SaveFlagNoOriginal = 0x0002
| 保存文档时不包含原始数据或未更改的对象。 更多...
static final int | e_SaveFlagNormal = 0
| 正常保存文档，不使用任何特殊标志。 更多...
static final int | e_SaveFlagNoUpdatingMetadataDateTime = 0x0020
| 保存文档时不更新元数据"ModDate"和"CreationDate"。 更多...
static final int | e_SaveFlagRemoveRedundantObjects = 0x0010
| 保存文档时移除冗余的PDF对象。 更多...
static final int | e_SaveFlagXRefStream = 0x0008
| 使用XRef流保存文档。 更多...
static final int | e_WrapperFoxit = 1
| Foxit包装文档。
static final int | e_WrapperNone = 0
| 普通文档。
static final int | e_WrapperPDFV2 = 2
| PDF 2.0包装文档。

## 详细描述

PDF文档对象可以通过文件路径、内存缓冲区、 自定义实现的 com.foxit.sdk.common.fxcrt.FileReaderCallback 对象和输入文件流从现有PDF文件构造。然后调用函数 pdf.PDFDoc.load 或 PDFDoc.startLoad 来加载文档内容。 此类提供了检索PDF文档不同部分的函数。例如：

- 要检索页面，请使用函数 pdf.PDFDoc.getPageCount 和 PDFDoc.getPage 。
- 要检索书签，例如函数 pdf.PDFDoc.getRootBookmark 、PDFDoc.createRootBookmark 等。
- 要检索一些文档的字典（低级），例如函数 pdf.PDFDoc.getCatalog 、PDFDoc.getTrailer 等。
- 要检索阅读书签，例如函数 PDFDoc.getReadingBookmarkCount 、 PDFDoc.getReadingBookmark 等。
- 要检查PDF文档是否有交互式表单，请使用函数 PDFDoc.hasForm 。
- 要检查PDF文档是否有页眉页脚，请使用函数 PDFDoc.hasHeaderFooter 。 要修改页眉页脚，请参考函数，例如 pdf.PDFDoc.addHeaderFooter 、PDFDoc.updateHeaderFooter 和 PDFDoc.removeAllHeaderFooters 。

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

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

参见
  com.foxit.sdk.pdf.interform.Form
  com.foxit.sdk.pdf.actions.AdditionalAction
  DocViewerPrefs
  Metadata
  PageLabels
  TextSearch
  LayerTree
  LayerContext
  FileSpec
  AssociatedFiles
  com.foxit.sdk.pdf.objects.PDFNameTree
  Attachments
  com.foxit.sdk.addon.Redaction

## 构造及析构函数说明

## ◆ PDFDoc() [1/5]

com.foxit.sdk.pdf.PDFDoc.PDFDoc | ( |  | ) | throws com.foxit.sdk.PDFException

构造函数。

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

## ◆ PDFDoc() [2/5]

com.foxit.sdk.pdf.PDFDoc.PDFDoc | ( | String | path | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

## ◆ PDFDoc() [3/5]

com.foxit.sdk.pdf.PDFDoc.PDFDoc | ( | byte[] | buffer | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

## ◆ PDFDoc() [4/5]

com.foxit.sdk.pdf.PDFDoc.PDFDoc | ( | FileReaderCallback | file_read,
|  | boolean | is_async
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | file_read | 由用户实现的 com.foxit.sdk.common.fxcrt.FileReaderCallback 对象，用于 加载PDF文档。它不应该是 null。 如果输入的回调对象是 com.foxit.sdk.common.file.AsyncReaderCallback 对象，且 is_async 为 true， 这意味着PDF文档将通过异步方法加载；否则， 文档将以普通方式加载。
  [in] | is_async | 输入的 com.foxit.sdk.common.fxcrt.FileReaderCallback 对象是否用于异步加载。 默认值：false。

## ◆ PDFDoc() [5/5]

com.foxit.sdk.pdf.PDFDoc.PDFDoc | ( | PDFDoc | other | ) |

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

参数

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

## 成员函数说明

## ◆ addHeaderFooter()

void com.foxit.sdk.pdf.PDFDoc.addHeaderFooter | ( | HeaderFooter | headerfooter | ) | throws com.foxit.sdk.PDFException

添加新的页眉页脚。

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

参数

  [in] | headerfooter | 要添加到当前文档的有效页眉页脚对象。

返回
  无。

## ◆ addIndirectObject()

int com.foxit.sdk.pdf.PDFDoc.addIndirectObject | ( | PDFObject | pdf_object | ) | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | pdf_object | com.foxit.sdk.pdf.objects.PDFObject 对象。不应为null。

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

## ◆ addPageFromTemplate()

PDFPage com.foxit.sdk.pdf.PDFDoc.addPageFromTemplate | ( | String | template_name | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

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

## ◆ addPagingSealSignature()

PagingSealSignature com.foxit.sdk.pdf.PDFDoc.addPagingSealSignature | ( | Range | page_range,
|  | float | width,
|  | float | height,
|  | boolean | to_check_permission
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | page_range | 指定某些页面的范围对象。这些页面将被添加签名。 有效的页面范围：从 1 到 count。count 由函数 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]

void com.foxit.sdk.pdf.PDFDoc.addTableOfContents | ( | String | title,
|  | Int32Array | bookmark_level_array
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  无。

## ◆ addTableOfContents() [2/2]

void com.foxit.sdk.pdf.PDFDoc.addTableOfContents | ( | TableOfContentsConfig | table_of_contents_config | ) | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | table_of_contents_config | TOC配置对象。

返回
  无。

## ◆ checkPassword()

int com.foxit.sdk.pdf.PDFDoc.checkPassword | ( | byte[] | password | ) | throws com.foxit.sdk.PDFException

检查指定密码的类型。

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

参数

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

返回
  密码类型。请参考从com.foxit.sdk.pdf.PDFDoc.e_PwdInvalid 开始的值， 这将是这些值中的一个。

## ◆ clearRenderCache()

void com.foxit.sdk.pdf.PDFDoc.clearRenderCache | ( |  | ) | throws com.foxit.sdk.PDFException

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

返回
  无。

## ◆ createDSS()

void com.foxit.sdk.pdf.PDFDoc.createDSS | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

返回
  无。

## ◆ createRootBookmark()

Bookmark com.foxit.sdk.pdf.PDFDoc.createRootBookmark | ( |  | ) | throws com.foxit.sdk.PDFException

创建新的书签根节点。

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

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

## ◆ delete()

synchronized void com.foxit.sdk.pdf.PDFDoc.delete | ( |  | ) |

直接清除C++相关资源。

返回
  无。

注解
  一旦这个接口被调用，这个对象将不能再被使用。

重载 com.foxit.sdk.common.Base .

## ◆ deleteIndirectObject()

void com.foxit.sdk.pdf.PDFDoc.deleteIndirectObject | ( | int | object_number | ) | throws com.foxit.sdk.PDFException

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

参数

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

返回
  无。

## ◆ doJSOpenAction()

boolean com.foxit.sdk.pdf.PDFDoc.doJSOpenAction | ( |  | ) | throws com.foxit.sdk.PDFException

文档打开时执行JavaScript动作。

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

## ◆ exportAnnotToFDF()

boolean com.foxit.sdk.pdf.PDFDoc.exportAnnotToFDF | ( | Annot | pdf_annot,
|  | FDFDoc | fdf_doc
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ exportFormFieldsToFDF()

boolean com.foxit.sdk.pdf.PDFDoc.exportFormFieldsToFDF | ( | FieldArray | field_array,
|  | boolean | is_include,
|  | FDFDoc | fdf_doc
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ exportToFDF()

boolean com.foxit.sdk.pdf.PDFDoc.exportToFDF | ( | FDFDoc | fdf_doc,
|  | int | types,
|  | Range | page_range
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | fdf_doc | 一个有效的FDF/XFDF文档对象，向其导出表单字段和注释。
  [in] | types | 用于决定将导出哪种类型的数据。请参考从 com.foxit.sdk.pdf.PDFDoc.e_Forms 开始的值， 这可以是这些值中的一个或组合。 默认值：(com.foxit.sdk.pdf.PDFDoc.e_Forms | com.foxit.sdk.pdf.PDFDoc.e_Annots )。
  [in] | page_range | 指定一些页面的范围对象。这些页面中的数据（指定类型）将被导出到FDF/XFDF文档。 如果此范围对象通过默认构造函数构造且未设置任何值，意味着当前文档的所有数据（指定类型） 将被导出到FDF/XFDF文档。 此参数仅在参数types包含 com.foxit.sdk.pdf.PDFDoc.e_Annots 时有用。 默认值：通过默认构造函数构造且未设置任何值的范围对象。

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

## ◆ getAllPageBasicInfo()

PageBasicInfoArray com.foxit.sdk.pdf.PDFDoc.getAllPageBasicInfo | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getAnnotsByIdArray()

AnnotArray com.foxit.sdk.pdf.PDFDoc.getAnnotsByIdArray | ( | WStringArray | unique_id_arr | ) |

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

参数

  [in] | unique_id_arr | 唯一ID数组。唯一ID由 annots.Annot.getUniqueID 返回。

返回
  com.foxit.sdk.pdf.annots.Annot 对象数组。

## ◆ getBookmarkLevelDepth()

int com.foxit.sdk.pdf.PDFDoc.getBookmarkLevelDepth | ( |  | ) | throws com.foxit.sdk.PDFException

获取书签层级深度。

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

## ◆ getCatalog()

PDFDictionary com.foxit.sdk.pdf.PDFDoc.getCatalog | ( |  | ) | throws com.foxit.sdk.PDFException

获取目录字典。

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

## ◆ getCertificateEncryptData()

CertificateEncryptData com.foxit.sdk.pdf.PDFDoc.getCertificateEncryptData | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getCustomEncryptData()

CustomEncryptData com.foxit.sdk.pdf.PDFDoc.getCustomEncryptData | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getDisplayMode()

int com.foxit.sdk.pdf.PDFDoc.getDisplayMode | ( |  | ) | throws com.foxit.sdk.PDFException

获取显示模式。

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

返回
  显示模式值。请参考从 com.foxit.sdk.pdf.PDFDoc.e_DisplayUseNone 开始的值， 这将是这些值中的一个。

## ◆ getDRMEncryptData()

DRMEncryptData com.foxit.sdk.pdf.PDFDoc.getDRMEncryptData | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getEditableHeaderFooter()

HeaderFooter com.foxit.sdk.pdf.PDFDoc.getEditableHeaderFooter | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getEmbeddedFontData()

EmbeddedFontData com.foxit.sdk.pdf.PDFDoc.getEmbeddedFontData | ( |  | ) | throws com.foxit.sdk.PDFException

获取嵌入字体数据。

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

返回
  嵌入字体数据。

## ◆ getEncryptDict()

PDFDictionary com.foxit.sdk.pdf.PDFDoc.getEncryptDict | ( |  | ) | throws com.foxit.sdk.PDFException

获取加密字典。

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

## ◆ getEncryptionType()

int com.foxit.sdk.pdf.PDFDoc.getEncryptionType | ( |  | ) | throws com.foxit.sdk.PDFException

获取加密类型。

返回
  加密类型。请参考从com.foxit.sdk.pdf.PDFDoc.e_EncryptNone 开始的值， 这将是这些值中的一个。

## ◆ getFileSize()

java.math.BigInteger com.foxit.sdk.pdf.PDFDoc.getFileSize | ( |  | ) | throws com.foxit.sdk.PDFException

获取文件大小。

返回
  文件大小。

## ◆ getFileVersion()

int com.foxit.sdk.pdf.PDFDoc.getFileVersion | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

## ◆ getFirstAvailPageIndex()

int com.foxit.sdk.pdf.PDFDoc.getFirstAvailPageIndex | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getFont()

Font com.foxit.sdk.pdf.PDFDoc.getFont | ( | int | index | ) | throws com.foxit.sdk.PDFException

通过索引获取字体。

参数

  [in] | index | PDF字体的索引。有效范围：从0到(count-1)。 count由函数 PDFDoc.getFontCount 返回。

返回
  字体对象。

## ◆ getFontCount()

int com.foxit.sdk.pdf.PDFDoc.getFontCount | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

返回
  字体数量。

## ◆ getHeader()

String com.foxit.sdk.pdf.PDFDoc.getHeader | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

## ◆ getIndirectObject()

PDFObject com.foxit.sdk.pdf.PDFDoc.getIndirectObject | ( | int | object_number | ) | throws com.foxit.sdk.PDFException

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

参数

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

返回
  接收间接PDF对象的 com.foxit.sdk.pdf.objects.PDFObject 对象。null 表示未找到。

## ◆ getInfo()

PDFDictionary com.foxit.sdk.pdf.PDFDoc.getInfo | ( |  | ) | throws com.foxit.sdk.PDFException

获取信息字典。

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

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

## ◆ getOpenAction()

Action com.foxit.sdk.pdf.PDFDoc.getOpenAction | ( |  | ) | throws com.foxit.sdk.PDFException

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

返回
  动作对象。

## ◆ getPage()

PDFPage com.foxit.sdk.pdf.PDFDoc.getPage | ( | int | index | ) | throws com.foxit.sdk.PDFException

通过索引获取PDF页面。

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

参数

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

返回
  PDF页面对象。

## ◆ getPageBasicInfo()

PageBasicInfo com.foxit.sdk.pdf.PDFDoc.getPageBasicInfo | ( | int | index | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

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

## ◆ getPageCount()

int com.foxit.sdk.pdf.PDFDoc.getPageCount | ( |  | ) | throws com.foxit.sdk.PDFException

获取页面数量。

返回
  页面数量。

## ◆ getPagesDict()

PDFDictionary com.foxit.sdk.pdf.PDFDoc.getPagesDict | ( |  | ) | throws com.foxit.sdk.PDFException

获取"Pages"的字典。

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

## ◆ getPageText()

String com.foxit.sdk.pdf.PDFDoc.getPageText | ( | int | page_index | ) | throws com.foxit.sdk.PDFException

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

参数

  [in] | page_index | 页面索引。有效范围：从0到（count-1）。 count 返回于 PDFDoc.getPageCount 。

返回
  页面相关联的所有文本，该文本将以显示顺序提供。

## ◆ getPasswordType()

int com.foxit.sdk.pdf.PDFDoc.getPasswordType | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

返回
  密码类型。请参考从com.foxit.sdk.pdf.PDFDoc.e_PwdInvalid 开始的值， 这将是这些值中的一个。

## ◆ getPayLoadData()

PayLoadData com.foxit.sdk.pdf.PDFDoc.getPayLoadData | ( |  | ) | throws com.foxit.sdk.PDFException

如果当前文档的包装类型是 com.foxit.sdk.pdf.PDFDoc.e_WrapperPDFV2 ，获取载荷数据。

返回
  载荷数据。如果找不到包装数据或当前文档的包装类型不是 com.foxit.sdk.pdf.PDFDoc.e_WrapperPDFV2 ，将返回值为0和空字符串的载荷数据对象。

## ◆ getReadingBookmark()

ReadingBookmark com.foxit.sdk.pdf.PDFDoc.getReadingBookmark | ( | int | index | ) | throws com.foxit.sdk.PDFException

通过索引获取阅读书签。

参数

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

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

## ◆ getReadingBookmarkCount()

int com.foxit.sdk.pdf.PDFDoc.getReadingBookmarkCount | ( |  | ) | throws com.foxit.sdk.PDFException

获取阅读书签的数量。

返回
  阅读书签的数量。

## ◆ getRMSEncryptData()

RMSEncryptData com.foxit.sdk.pdf.PDFDoc.getRMSEncryptData | ( |  | ) | throws com.foxit.sdk.PDFException

获取RMS加密的加密数据。

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

返回
  RMS加密的加密数据。

注解
  如果在函数common.Library.initialize 中使用的许可证信息中未定义"RMS"模块， 这意味着用户没有使用RMS相关函数的权利，此函数将抛出异常com.foxit.sdk.common.Constants.e_ErrNoRMSModuleRight 。

## ◆ getRootBookmark()

Bookmark com.foxit.sdk.pdf.PDFDoc.getRootBookmark | ( |  | ) | throws com.foxit.sdk.PDFException

获取书签根节点。

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

## ◆ getSecurityHandler()

SecurityHandler com.foxit.sdk.pdf.PDFDoc.getSecurityHandler | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

注解
  如果在函数 common.Library.initialize 中使用的许可证信息中未定义模块"RMS"， 这意味着用户没有使用RMS相关功能的权限，此函数将抛出异常 com.foxit.sdk.common.Constants.e_ErrNoRMSModuleRight 。

## ◆ getSignature()

Signature com.foxit.sdk.pdf.PDFDoc.getSignature | ( | int | index | ) | throws com.foxit.sdk.PDFException

通过索引获取签名。

参数

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

返回
  签名对象。

## ◆ getSignatureCount()

int com.foxit.sdk.pdf.PDFDoc.getSignatureCount | ( |  | ) | throws com.foxit.sdk.PDFException

获取签名数量。

返回
  签名数量。

## ◆ getStdEncryptData()

StdEncryptData com.foxit.sdk.pdf.PDFDoc.getStdEncryptData | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ getTrailer()

PDFDictionary com.foxit.sdk.pdf.PDFDoc.getTrailer | ( |  | ) | throws com.foxit.sdk.PDFException

获取拖车字典。

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

## ◆ getUserPassword()

String com.foxit.sdk.pdf.PDFDoc.getUserPassword | ( | byte[] | owner_password | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  用户密码字符串。

## ◆ getUserPermissions()

int com.foxit.sdk.pdf.PDFDoc.getUserPermissions | ( |  | ) | throws com.foxit.sdk.PDFException

获取用户访问权限。

返回
  用户访问权限。请参考从 com.foxit.sdk.pdf.PDFDoc.e_PermPrint 开始的值， 这将是这些值中的一个。

## ◆ getWrapperData()

WrapperData com.foxit.sdk.pdf.PDFDoc.getWrapperData | ( |  | ) | throws com.foxit.sdk.PDFException

如果当前文档的包装类型是 com.foxit.sdk.pdf.PDFDoc.e_WrapperFoxit ，获取包装数据。

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

## ◆ getWrapperOffset()

int com.foxit.sdk.pdf.PDFDoc.getWrapperOffset | ( |  | ) | throws com.foxit.sdk.PDFException

如果当前文档的包装类型是 com.foxit.sdk.pdf.PDFDoc.e_WrapperFoxit ，获取包装偏移量。

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

## ◆ getWrapperType()

int com.foxit.sdk.pdf.PDFDoc.getWrapperType | ( |  | ) | throws com.foxit.sdk.PDFException

获取包装类型。

返回
  包装类型。请参考从 com.foxit.sdk.pdf.PDFDoc.e_WrapperNone 开始的值， 这将是其值中的一个或组合。

## ◆ hasForm()

boolean com.foxit.sdk.pdf.PDFDoc.hasForm | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ hasHeaderFooter()

boolean com.foxit.sdk.pdf.PDFDoc.hasHeaderFooter | ( |  | ) | throws com.foxit.sdk.PDFException

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

返回
  true 表示当前文档有页眉页脚， false 表示当前文档没有页眉页脚。

## ◆ hasLayer()

boolean com.foxit.sdk.pdf.PDFDoc.hasLayer | ( |  | ) | throws com.foxit.sdk.PDFException

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

返回
  true 表示当前文档有图层。 false 表示当前文档没有图层。

## ◆ hidePageTemplate()

boolean com.foxit.sdk.pdf.PDFDoc.hidePageTemplate | ( | String | template_name | ) | throws com.foxit.sdk.PDFException

隐藏命名页面。

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

参数

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

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

## ◆ importFromFDF()

boolean com.foxit.sdk.pdf.PDFDoc.importFromFDF | ( | FDFDoc | fdf_doc,
|  | int | types,
|  | Range | page_range
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

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

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

## ◆ insertDocument() [1/2]

void com.foxit.sdk.pdf.PDFDoc.insertDocument | ( | int | dest_index,
|  | PDFDoc | src_doc,
|  | int | options
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

返回
  无。

## ◆ insertDocument() [2/2]

void com.foxit.sdk.pdf.PDFDoc.insertDocument | ( | int | dest_index,
|  | PDFDoc | src_doc,
|  | int | options,
|  | String | bookmark_title
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

返回
  无。

## ◆ insertPage() [1/2]

PDFPage com.foxit.sdk.pdf.PDFDoc.insertPage | ( | int | index,
|  | float | width,
|  | float | height
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ insertPage() [2/2]

PDFPage com.foxit.sdk.pdf.PDFDoc.insertPage | ( | int | index,
|  | int | size
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ insertReadingBookmark()

ReadingBookmark com.foxit.sdk.pdf.PDFDoc.insertReadingBookmark | ( | int | reading_bookmark_index,
|  | String | title,
|  | int | dest_page_index
| ) |  | throws com.foxit.sdk.PDFException

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

参数

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

返回
  新的阅读书签对象。

## ◆ isEmpty()

boolean com.foxit.sdk.pdf.PDFDoc.isEmpty | ( |  | ) |

检查当前对象是否为空。

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

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

## ◆ isEncrypted()

boolean com.foxit.sdk.pdf.PDFDoc.isEncrypted | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

## ◆ isLinearized()

boolean com.foxit.sdk.pdf.PDFDoc.isLinearized | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ isOwnerPassword() [1/2]

boolean com.foxit.sdk.pdf.PDFDoc.isOwnerPassword | ( | byte[] | password | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ isOwnerPassword() [2/2]

boolean com.foxit.sdk.pdf.PDFDoc.isOwnerPassword | ( | String | password | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ isPortfolio()

boolean com.foxit.sdk.pdf.PDFDoc.isPortfolio | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

## ◆ isTaggedPDF()

boolean com.foxit.sdk.pdf.PDFDoc.isTaggedPDF | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ isUserPassword() [1/2]

boolean com.foxit.sdk.pdf.PDFDoc.isUserPassword | ( | byte[] | password | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ isUserPassword() [2/2]

boolean com.foxit.sdk.pdf.PDFDoc.isUserPassword | ( | String | password | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ isWrapper()

boolean com.foxit.sdk.pdf.PDFDoc.isWrapper | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

## ◆ isXFA()

boolean com.foxit.sdk.pdf.PDFDoc.isXFA | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

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

## ◆ load()

int com.foxit.sdk.pdf.PDFDoc.load | ( | byte[] | password | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

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

## ◆ loadW()

int com.foxit.sdk.pdf.PDFDoc.loadW | ( | String | password | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

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

## ◆ movePagesTo()

boolean com.foxit.sdk.pdf.PDFDoc.movePagesTo | ( | Range | page_range,
|  | int | dest_index
| ) |  | throws com.foxit.sdk.PDFException

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

如果只移动一个页面，此函数与函数 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()

boolean com.foxit.sdk.pdf.PDFDoc.movePageTo | ( | PDFPage | page,
|  | int | dest_index
| ) |  | throws com.foxit.sdk.PDFException

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

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

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

## ◆ removeAllHeaderFooters()

boolean com.foxit.sdk.pdf.PDFDoc.removeAllHeaderFooters | ( |  | ) | throws com.foxit.sdk.PDFException

删除所有页眉页脚。

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

## ◆ removeBookmark()

boolean com.foxit.sdk.pdf.PDFDoc.removeBookmark | ( | Bookmark | bookmark | ) | throws com.foxit.sdk.PDFException

删除指定的书签。

参数

  [in] | bookmark | 要删除的有效书签。

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

## ◆ removeHiddenInfo()

void com.foxit.sdk.pdf.PDFDoc.removeHiddenInfo | ( | HiddenInfoSettingData | hidden_data_setting | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  无。

## ◆ removeOpenAction()

boolean com.foxit.sdk.pdf.PDFDoc.removeOpenAction | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

## ◆ removePage() [1/2]

boolean com.foxit.sdk.pdf.PDFDoc.removePage | ( | int | index | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ removePage() [2/2]

boolean com.foxit.sdk.pdf.PDFDoc.removePage | ( | PDFPage | page | ) | throws com.foxit.sdk.PDFException

删除指定的PDF页面。

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

参数

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

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

## ◆ removeReadingBookmark()

boolean com.foxit.sdk.pdf.PDFDoc.removeReadingBookmark | ( | ReadingBookmark | reading_bookmark | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ removeSecurity()

boolean com.foxit.sdk.pdf.PDFDoc.removeSecurity | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

注解
  如果在函数 common.Library.initialize 中使用的许可证信息中未定义模块"RMS"， 这意味着用户没有使用RMS相关功能的权限，此函数将抛出异常 com.foxit.sdk.common.Constants.e_ErrNoRMSModuleRight 。

## ◆ removeSignature()

void com.foxit.sdk.pdf.PDFDoc.removeSignature | ( | Signature | signature | ) | throws com.foxit.sdk.PDFException

删除签名。

参数

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

返回
  无。

## ◆ removeStructTree()

void com.foxit.sdk.pdf.PDFDoc.removeStructTree | ( |  | ) |

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

返回
  无。

## ◆ sanitize()

void com.foxit.sdk.pdf.PDFDoc.sanitize | ( |  | ) | throws com.foxit.sdk.PDFException

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

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

返回
  无。

## ◆ saveAs()

boolean com.foxit.sdk.pdf.PDFDoc.saveAs | ( | String | file_path,
|  | int | save_flags
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | file_path | 新保存的PDF文件的完整路径。它不应该是空字符串。
  [in] | save_flags | 文档保存标志。请参考从 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：com.foxit.sdk.pdf.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()

boolean com.foxit.sdk.pdf.PDFDoc.saveAsWrapperFile | ( | String | file_path,
|  | WrapperData | wrapper_data,
|  | int | user_permissions,
|  | String | owner_password
| ) |  | throws com.foxit.sdk.PDFException

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

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

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

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

参数

  [in] | file_path | PDF文件的完整路径。 当前PDF文档将作为包装文件保存到此PDF文件中。
  [in] | wrapper_data | 包装数据。如果这是null，则不使用包装数据。 默认值：null。
  [in] | user_permissions | 包装文档的用户权限。如果不需要特殊权限，传递0xFFFFFFFC。 请参考从 com.foxit.sdk.pdf.PDFDoc.e_PermPrint 开始的值， 这应该是这些值中的一个或组合。默认值：0xFFFFFFFC。
  [in] | owner_password | 所有者密码。如果这是空字符串，参数 user_permissions 将被忽略。 默认值：空字符串。

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

## ◆ setCacheFile()

void com.foxit.sdk.pdf.PDFDoc.setCacheFile | ( | StreamCallback | file_stream,
|  | boolean | is_own_file_stream
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | file_stream | 由用户实现com.foxit.sdk.common.fxcrt.StreamCallback 对象用于数据缓存。 它可以是 null 。它是 null ，原始缓存文件将被释放。
  [in] | is_own_file_stream | 用于决定福昕PDF SDK 是否应该持有输入流回调对象所有权 : true 表示输入流对象将被福昕PDF SDK销毁 (当不再为当前文档缓存数据时，可以通过调用接口 com.foxit.sdk.common.fxcrt.StreamCallback.release 释放)。 false 表示用户应该负责销毁回调对象。

返回
  无。

## ◆ setDisplayMode()

void com.foxit.sdk.pdf.PDFDoc.setDisplayMode | ( | int | display_mode | ) | throws com.foxit.sdk.PDFException

设置显示模式。

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

参数

  [in] | display_mode | 显示模式值。请参考从 com.foxit.sdk.pdf.PDFDoc.e_DisplayUseNone 开始的值， 这应该是这些值中的一个。

返回
  无。

## ◆ setFileVersion()

void com.foxit.sdk.pdf.PDFDoc.setFileVersion | ( | int | version | ) | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  无。

## ◆ setOpenAction()

boolean com.foxit.sdk.pdf.PDFDoc.setOpenAction | ( | Action | action | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

## ◆ setSecurityHandler()

boolean com.foxit.sdk.pdf.PDFDoc.setSecurityHandler | ( | SecurityHandler | handler | ) | throws com.foxit.sdk.PDFException

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

参数

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

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

注解
  如果在函数 common.Library.initialize 中使用的许可证信息中未定义模块"RMS"， 这意味着用户没有使用RMS相关功能的权限，此函数将抛出异常 com.foxit.sdk.common.Constants.e_ErrNoRMSModuleRight 。

## ◆ startAddTiledWatermark() [1/4]

Progressive com.foxit.sdk.pdf.PDFDoc.startAddTiledWatermark | ( | FileReaderCallback | src_img_stream,
|  | TiledWatermarkSettings | settings,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | src_img_stream | com.foxit.sdk.common.fxcrt.FileReaderCallback 对象用于用户传递图像数据给福昕PDF SDK， 它一定是有效的。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | page_range | 应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序（由此范围指定）并作为一个整体移动。 如果范围中存在重复的索引，只有最后一次出现的才有用。
  [in] | pause | 决定加载过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果这不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  步进式进度对象。 请通过函数 common.Progressive.getRateOfProgress 检查当前进度。如果当前进度比率没有到100，需要调用 common.Progressive.resume 继续进度直到进度完成。

## ◆ startAddTiledWatermark() [2/4]

Progressive com.foxit.sdk.pdf.PDFDoc.startAddTiledWatermark | ( | PDFPage | page,
|  | TiledWatermarkSettings | settings,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

添加页面类型平铺水印。

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

参数

  [in] | page | 有效的页面对象，内容用于添加平铺水印。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | page_range | 应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序（由此范围指定）并作为一个整体移动。 如果范围中存在重复的索引，只有最后一次出现的才有用。
  [in] | pause | 决定加载过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果这不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  步进式进度对象。 请通过函数 common.Progressive.getRateOfProgress 检查当前进度。如果当前进度比率没有到100，需要调用 common.Progressive.resume 继续进度直到进度完成。

## ◆ startAddTiledWatermark() [3/4]

Progressive com.foxit.sdk.pdf.PDFDoc.startAddTiledWatermark | ( | String | src_img_file_path,
|  | TiledWatermarkSettings | settings,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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 | 决定加载过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果这不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  步进式进度对象。 请通过函数 common.Progressive.getRateOfProgress 检查当前进度。如果当前进度比率没有到100，需要调用 common.Progressive.resume 继续进度直到进度完成。

## ◆ startAddTiledWatermark() [4/4]

Progressive com.foxit.sdk.pdf.PDFDoc.startAddTiledWatermark | ( | String | text,
|  | TiledWatermarkSettings | settings,
|  | WatermarkTextProperties | properties,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | text | 文本字符串。它将用于平铺水印的内容，它不能为空。
  [in] | settings | 平铺水印设置，包含布局设置。
  [in] | properties | 平铺水印文本属性。
  [in] | page_range | 应至少包含一个有效范围的范围对象。 所有相关页面将保持顺序（由此范围指定）并作为一个整体移动。 如果范围中存在重复的索引，只有最后一次出现的才有用。
  [in] | pause | 决定加载过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果这不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  步进式进度对象。 请通过函数 common.Progressive.getRateOfProgress 检查当前进度。如果当前进度比率没有到100，需要调用 common.Progressive.resume 继续进度直到进度完成。

## ◆ startEmbedAllFonts()

Progressive com.foxit.sdk.pdf.PDFDoc.startEmbedAllFonts | ( | PauseCallback | pause | ) | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | pause | 决定加载过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果这不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  步进式进度对象。 请通过函数 common.Progressive.getRateOfProgress 检查当前进度。如果当前进度比率没有到100，需要调用 common.Progressive.resume 继续进度直到进度完成。

## ◆ startExtractPages() [1/2]

Progressive com.foxit.sdk.pdf.PDFDoc.startExtractPages | ( | FileWriterCallback | file,
|  | int | options,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startExtractPages() [2/2]

Progressive com.foxit.sdk.pdf.PDFDoc.startExtractPages | ( | String | file_path,
|  | int | options,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startGetPayloadFile()

Progressive com.foxit.sdk.pdf.PDFDoc.startGetPayloadFile | ( | FileWriterCallback | payload_file,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

开始获取载荷文件。

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

参数

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

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startImportPages()

Progressive com.foxit.sdk.pdf.PDFDoc.startImportPages | ( | int | dest_index,
|  | PDFDoc | src_doc,
|  | int | flags,
|  | String | layer_name,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

开始从另一个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 | 导入页面的选项。请参考从 com.foxit.sdk.pdf.PDFDoc.e_ImportFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：com.foxit.sdk.pdf.PDFDoc.e_ImportFlagNormal 。
  [in] | layer_name | 要在应用程序图层面板中显示的不可选择标签的名称或不可选择标签的前缀名称。 默认值：空字符串。 如果参数 flags 包含 com.foxit.sdk.pdf.PDFDoc.e_ImportFlagWithLayers ， 这不应为空，应为有效字符串。 如果参数 flags 不包含 com.foxit.sdk.pdf.PDFDoc.e_ImportFlagWithLayers ， 此字符串将被忽略。 如果要将源PDF文档的所有页面导入到当前文档， 源文档的所有图层将分组在一个不可选择的标签下， 此字符串将直接用作标签。 如果只导入源PDF文档的部分页面到当前文档， 同一页面中的图层将分组在单个不可选择的标签下， 此字符串将用作标签的前缀名称。 标签将类似于"layerName_Page_X"。
  [in] | page_range | 指定要插入哪些页面的范围对象。如果此范围对象通过默认构造函数构造 且未设置任何值，将导入源文档中的所有页面。 默认值：通过默认构造函数构造且未设置任何值的范围对象。
  [in] | pause | 决定导入过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startImportPagesFromFilePath()

Progressive com.foxit.sdk.pdf.PDFDoc.startImportPagesFromFilePath | ( | int | dest_index,
|  | String | src_file_path,
|  | byte[] | password,
|  | int | flags,
|  | String | layer_name,
|  | Range | page_range,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

开始从另一个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 | 导入页面的选项。请参考从 com.foxit.sdk.pdf.PDFDoc.e_ImportFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：com.foxit.sdk.pdf.PDFDoc.e_ImportFlagNormal 。
  [in] | layer_name | 要在应用程序图层面板中显示的不可选择标签的名称或不可选择标签的前缀名称。 默认值：空字符串。 如果参数 flags 包含 com.foxit.sdk.pdf.PDFDoc.e_ImportFlagWithLayers ， 这不应为空，应为有效字符串。 如果参数 flags 不包含 com.foxit.sdk.pdf.PDFDoc.e_ImportFlagWithLayers ， 此字符串将被忽略。 如果要将源PDF文档的所有页面导入到当前文档， 源文档的所有图层将分组在一个不可选择的标签下， 此字符串将直接用作标签。 如果只导入源PDF文档的部分页面到当前文档， 同一页面中的图层将分组在单个不可选择的标签下， 此字符串将用作标签的前缀名称。 标签将类似于"layerName_Page_X"。
  [in] | page_range | 指定要导入哪些页面的范围对象。如果此范围对象通过默认构造函数构造 且未设置任何值，将导入源文档中的所有页面。 默认值：通过默认构造函数构造且未设置任何值的范围对象。
  [in] | pause | 决定导入过程是否需要暂停的暂停对象。 这可以是null，表示在解析过程中不暂停。 如果不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startLoad()

Progressive com.foxit.sdk.pdf.PDFDoc.startLoad | ( | byte[] | password,
|  | boolean | is_cache_stream,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

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

参数

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

返回
  一个渐进对象。请通过函数common.Progressive.getRateOfProgress 检查当前进度的比率。 如果比率尚未达到100，请调用函数common.Progressive.resume 继续进度， 直到进度完成。

## ◆ startLoadW()

Progressive com.foxit.sdk.pdf.PDFDoc.startLoadW | ( | String | password,
|  | boolean | is_cache_stream,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

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

参数

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

返回
  一个渐进对象。请通过函数common.Progressive.getRateOfProgress 检查当前进度的比率。 如果比率尚未达到100，请调用函数common.Progressive.resume 继续进度， 直到进度完成。

## ◆ startRecognizeForm() [1/2]

Progressive com.foxit.sdk.pdf.PDFDoc.startRecognizeForm | ( | boolean | is_set_tool_tips,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

开始识别表单域。

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

参数

  [in] | is_set_tool_tips | true 意味着对识别表单设置提示， false 表示不设置。
  [in] | pause | 决定替换过程是否需要暂停的暂停对象。 这可以是null，表示在替换过程中不暂停。 如果不是null，它应该是用户实现的有效暂停对象。

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startRecognizeForm() [2/2]

Progressive com.foxit.sdk.pdf.PDFDoc.startRecognizeForm | ( | PauseCallback | pause | ) | throws com.foxit.sdk.PDFException

开始识别表单域。

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

参数

  [in] | pause | 决定替换过程是否需要暂停的暂停对象。 这可以是null，表示在替换过程中不暂停。 如果不是null，它应该是用户实现的有效暂停对象。

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ startSaveAs() [1/2]

Progressive com.foxit.sdk.pdf.PDFDoc.startSaveAs | ( | FileWriterCallback | file,
|  | int | save_flags,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

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

## ◆ startSaveAs() [2/2]

Progressive com.foxit.sdk.pdf.PDFDoc.startSaveAs | ( | String | file_path,
|  | int | save_flags,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

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

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

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

## ◆ startSaveAsPayloadFile()

Progressive com.foxit.sdk.pdf.PDFDoc.startSaveAsPayloadFile | ( | String | file_path,
|  | String | payload_file_path,
|  | String | crypto_filter,
|  | String | description,
|  | float | version,
|  | int | save_flags,
|  | PauseCallback | pause
| ) |  | throws com.foxit.sdk.PDFException

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

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

参数

  [in] | file_path | 新保存的PDF文件的完整路径。它不应该是空字符串。
  [in] | payload_file_path | 将用作载荷文档的PDF文档的完整路径。 它不应该是空字符串。
  [in] | crypto_filter | 用于加密加密载荷文档的加密过滤器的名称。
  [in] | description | 包装文件的描述，用于向应用程序显示或面对用户提示信息。
  [in] | version | 用于加密此字典引用的加密载荷的加密过滤器的版本号。
  [in] | save_flags | 文档保存标志。请参考从 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal 开始的值， 这可以是这些值中的一个或组合。 默认值：com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal 。
  [in] | pause | 暂停回调对象，用于决定解析过程是否需要暂停。 这可以是null，表示在解析过程中不暂停。 如果不是null，它应该是用户实现的有效暂停对象。 默认值：null。

返回
  渐进式对象。请通过函数 common.Progressive.getRateOfProgress 检查当前进度的速率。 如果速率还不是100，调用函数 common.Progressive.resume 继续进度直到进度完成。

## ◆ updateHeaderFooter()

void com.foxit.sdk.pdf.PDFDoc.updateHeaderFooter | ( | HeaderFooter | headerfooter | ) | throws com.foxit.sdk.PDFException

更新页眉页脚。

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

参数

  [in] | headerfooter | 要更新到当前文档的有效页眉页脚对象。

返回
  无。

## 类成员变量说明

## ◆ e_ImportFlagShareStream

final int com.foxit.sdk.pdf.PDFDoc.e_ImportFlagShareStream = 0x0002
| static

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

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

## ◆ e_PermAnnotForm

final int com.foxit.sdk.pdf.PDFDoc.e_PermAnnotForm = 0x0020
| static

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

如果也设置了值 com.foxit.sdk.pdf.PDFDoc.e_PermModify ， 用户可以创建或修改交互式表单字段（包括签名字段）。

## ◆ e_PermAssemble

final int com.foxit.sdk.pdf.PDFDoc.e_PermAssemble = 0x0400
| static

组装PDF文档。（权限值中的第11位）

如果设置了此值，可以组装文档 （插入、旋转或删除页面并创建书签或缩略图）， 无论是否设置了值 com.foxit.sdk.pdf.PDFDoc.e_PermModify 。

## ◆ e_PermExtract

final int com.foxit.sdk.pdf.PDFDoc.e_PermExtract = 0x0010
| static

提取PDF内容。（权限值中的第5位）

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

## ◆ e_PermExtractAccess

final int com.foxit.sdk.pdf.PDFDoc.e_PermExtractAccess = 0x0200
| static

残疾人支持。（权限值中的第10位）

如果设置了此值，用户可以提取文本和图形以支持残疾用户的辅助功能 或用于其他目的。

## ◆ e_PermFillForm

final int com.foxit.sdk.pdf.PDFDoc.e_PermFillForm = 0x0100
| static

填写PDF表单。（权限值中的第9位）

如果设置了此值，用户可以填写交互式表单字段（包括签名字段）， 即使未使用值 com.foxit.sdk.pdf.PDFDoc.e_PermAnnotForm 。

## ◆ e_PermModify

final int com.foxit.sdk.pdf.PDFDoc.e_PermModify = 0x0008
| static

修改PDF内容。（权限值中的第4位）

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

## ◆ e_PermPrint

final int com.foxit.sdk.pdf.PDFDoc.e_PermPrint = 0x0004
| static

以普通模式打印PDF文档。（权限值中的第3位）

如果用户要打印更高质量级别的PDF文档，请将当前值与 值 com.foxit.sdk.pdf.PDFDoc.e_PermPrintHigh 一起设置。

## ◆ e_PermPrintHigh

final int com.foxit.sdk.pdf.PDFDoc.e_PermPrintHigh = 0x0800
| static

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

如果未设置此值（且设置了值 com.foxit.sdk.pdf.PDFDoc.e_PermPrint ）， 打印将限制为外观的低级表示，可能质量较差。

## ◆ e_SaveFlagIncremental

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagIncremental = 0x0001
| static

增量保存文档。

这可以单独使用或与除 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal 外的其他保存标志组合使用。 特别地，如果与 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoOriginal 组合使用， 将只保存增量数据。

## ◆ e_SaveFlagLinearized

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagLinearized = 0x1000
| static

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

这应该单独使用，不能与除 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime 外的其他保存标志一起使用。 这只能用于函数 pdf.PDFDoc.saveAs 或 PDFDoc.startSaveAs 。

## ◆ e_SaveFlagNoOriginal

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoOriginal = 0x0002
| static

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

这可以单独使用或与除 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal 外的其他保存标志组合使用。 特别地，如果与 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagIncremental 组合使用， 将只保存增量数据。

## ◆ e_SaveFlagNormal

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal = 0
| static

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

这只能与标志 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime 组合使用。

## ◆ e_SaveFlagNoUpdatingMetadataDateTime

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime = 0x0020
| static

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

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

## ◆ e_SaveFlagRemoveRedundantObjects

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagRemoveRedundantObjects = 0x0010
| static

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

这可以单独使用或与 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoOriginal 、com.foxit.sdk.pdf.PDFDoc.e_SaveFlagXRefStream 或 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNoUpdatingMetadataDateTime 组合使用。 这只能用于函数 pdf.PDFDoc.saveAs 或 PDFDoc.startSaveAs 。

## ◆ e_SaveFlagXRefStream

final int com.foxit.sdk.pdf.PDFDoc.e_SaveFlagXRefStream = 0x0008
| static

使用XRef流保存文档。

这可以单独使用或与除 com.foxit.sdk.pdf.PDFDoc.e_SaveFlagNormal 外的其他保存标志组合使用。