1. 首页
  2. Foxit PDF SDK for ActiveX
  3. 用户手册5.7.1(ActiveX)

用户手册5.7.1(ActiveX)

© 福昕软件版权所有。保留所有权利。
未经福昕公司授权,任何人或组织不得以任何手段与形式对本文档内容进行形式复制、转移、分发或存储。
Anti-Grain Geometry – Version 2.3, Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com). FreeType2 (freetype2.2.1), Copyright (C) 1996-2001, 2002, 2003, 2004| David Turner, Robert Wilhelm, and Werner Lemberg. LibJPEG (jpeg V6b 27- Mar-1998), Copyright (C) 1991-1998 Independent JPEG Group. ZLib (zlib 1.2.2),
Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler. Little CMS, Copyright (C) 1998-2004 Marti Maria. Kakadu, Copyright (C) 2001, David Taubman, The University of New South Wales (UNSW). PNG, Copyright (C) 1998-2009 Glenn Randers-Pehrson. LibTIFF, Copyright (C) 1988-1997 Sam Leffler and Copyright (C) 1991-1997 Silicon Graphics, Inc.
在所有副本中的版权提示允许的情况下,您可以复制、使用、修改、出售和散布该软件。此软件不含任何隐藏条款,对于使用本软件所产生的任何后果,均由用户本人承担。

概述

Foxit PDF SDK ActiveX 是一款可视编程组件,可以让您的应用程序实现高质高效的PDF文档显示效果,其体积小巧,系统资源消耗少,可迅速集成于其它应用程序中。
Foxit PDF SDK ActiveX 使用与福昕阅读器Foxit Reader 相同的核心技术,能够快速、准确、高质量的渲染PDF文件。
相对于Foxit PDF SDK DLL而言,Foxit PDF SDK ActiveX使用更加灵活,并且它还内嵌了丰富的界面和编程特性。程序设计人员可通过简单的拖放组件, 迅速为应用程序添加 PDF 显示功能。ActiveX还允许用户对 PDF 文档进行各种操作,如页面导航、改变缩放比例、页面旋转、页面滚动及打印,等等。
Foxit PDF SDK ActiveX 5.0添加了签名模块和其他高级的PDF功能,允许开发人员使用Windows系统证书中心存储的第三方数字证书签署PDF文档,同时,也支持数字签名验证(用于验证含数字签名文档的真实性和完整性)、签名时间戳、签名打印控制等。

Foxit PDF SDK ActiveX 5.2提供了原生64位系统的支持。

Foxit PDF SDK ActiveX提供两个不同的版本,即标准版和专业版。这两个版本提供不同的 GUID,您可以在同一电脑上同时注册和使用。与标准版比较,专业版包含更多的特性:页面管理、设置密码和权限、创建/编辑批注、导入/导出表单数据、执行JS脚本、将PDF导出为文本格式、数字签名等。

您可以根据您的应用程序来选择 ActiveX 的版本。您可以在线购买专业版或标准版ActiveX,如果需要表单模块、批注模块和电子签章模块,请联系我们的销售团队(发送邮件至sales@foxitsoftware.cn)了解更多授权信息。

在本开发手册中,所有带*号的属性和功能只属于专业版本,所有标记(#)的属性和方法只属于表单模块,所有标记(^)的属性和方法只属于批注模块,所有标记(&)的属性和方法只适用于电子签章模块。

Foxit PDF SDK ActiveX 可运行在Windows XP 或之后的版本上,是一个独立的控件,无需再安装任何的PDF应用程序。需要注意的是,在Windows系统下,可能需要Admin权限的用户才能成功的注册ActiveX控件。

解锁码: 如果您已经购买了Foxit PDF SDK ActiveX 并且已经拿到正式的ActiveX控件和解锁码, 在调用任何一个函数前,请确保在您的程序中至少调用过一次UnLockActiveX函数。该函数将在后续的章节中有详细描述。如果您只是想评估ActiveX,则无需调用该函数。

标准版GUID:0F6C092B-6E4C-4976-B386-27A9FD9E96A1

专业版GUID:F53B7748-643C-4A78-8DBC-01A4855D1A10

入门教程

本章节教程主要针对使用Foxit PDF ActiveX SDK的C/C++程序开发人员,并且默认开发人员已熟练掌握C/C++编程语言以及Microsoft Foundation Classes (MFC).
本章节内容主要包括如何使用Foxit PDF ActiveX SDK,通过其提供的demos作为示例来进行讲解。

安装

获取试用版本

从Foxit官网下载ActiveX SDK的试用版本:
https://developers.foxitsoftware.com/pdf-sdk/windows/activeX/

下载MSI包进行安装

填写申请信息后,您会收到一封含有标准版和专业版下载链接的邮件:FoxitPDFSDKActiveX_Std.msiFoxitPDFSDKActiveX_Pro.msi. 下载您需要版本的MSI包,然后双击进行安装。
请注意:当安装MSI时,OCX文件会被自动注册,包括32位和64位。

运行Demo

这里以ActiveX专业版为例。

1)安装文件的默认路径为C:\Program Files (x86)\Foxit Software\Foxit PDF SDK ActiveX Pro。在C:\Program Files (x86)\Foxit Software\Foxit PDF SDK ActiveX Pro\demo\vc\vc6 (or vc10)文件夹下打开demo工程。

  • 如果使用Visual C++ 6.0,则双击dsw.
  • 如果使用Visual Studio 2010, 则双击sln. 本教程使用Visual Studio 2010开发环境来演示如何运行demo。

2)双击sln, 在Solution Explorer中可以看到如下的5个demo工程。

  • AX_Pro_Demo – 实现一个功能丰富的PDF阅读器。
  • AX_Ppo_Demo – 通过交互界面实现PDF页面的相关操作。
  • AX_Annot_Demo – 通过交互界面对PDF文档进行Annotation相关操作。
  • AX_Form_Demo – 通过交互界面对PDF文档进行表单相关操作。
  • AX_Signature_Demo – 通过交互界面对PDF文档进行签名相关操作。

3)右键点击您需要运行的demo,选择Set as Startup Project.

4)编译 右键点击demo,选择Build.

5)运行demo。点击Debug > Starting Without Debugging.

AX_Pro_Demo:

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML1724189.PNG
AX_Ppo_Demo:

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML196965d.PNG
AX_Annot_Demo:

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML1acbc54.PNG
AX_Form_Demo:

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML1d23490.PNG
AX_Signature_Demo:

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML1e2b006.PNG

获取正式版本

试用版本的Foxit PDF SDK ActiveX是带有水印的,如果想去掉水印或者试用期结束后想继续使用,请联系Foxit购买正式版本的ActiveX。
购买成功后,Foxit会将已授权的正式ActiveX的FoxitPDFSDK_AX_Pro.ocx或者FoxitPDFSDK_AX_Pro_x64.ocx,以及解锁码(sn.txt)打包后发送到您的邮箱。

注册

如果Foxit PDF SDK ActiveX不是通过MSI包安装的,或者您获取到授权的OCX文件,那么您需要手动在Windows系统中注册OCX文件: (以ActiveX 专业版为例)

  • 点击Start菜单,输入cmd命令,然后按下Enter键,调出命令行窗口。
  • 在命令行窗口输入”regsvr32 “Filepath\FoxitPDFSDK_AX_Pro.ocx””, 其中”Filepath”是存放ActiveX OCX文件的路径。例如:

regsvr32 “D:\Foxit PDF SDK ActiveX\FoxitPDFSDK_AX_Pro.ocx”
注意

  • FoxitPDFSDK_AX_Pro_x64.ocx需要以管理员身份运行。
  • 在注册64位的OCX文件之前,需要先注册32位的OCX,否则Foxit PDF SDK ActiveX组件 “ FoxitPDFSDK Pro Control” 可能不会在Visual Studio的COM Components列表中。

注册成功后会弹出如下的提示框:
C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML8d7bb7.PNG

使用ActiveX创建一个Windows窗体工程(C#)

本节主要介绍如何使用Foxit PDF SDK ActiveX在Visual Studio 2010中创建一个C#的Windows窗体工程。请确保您已经安装Foxit PDF SDK ActiveX (例如,专业版)。

创建工程

在Visual Studio 2010界面,点击File > New > Project… > Visual C# > Windows > Windows Forms Application创建一个名为test的Windows窗体工程,如下图所示。
C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML2b674b0.PNG

添加Foxit PDF SDK ActiveX控件

点击 Tools > Choose Toolbox Items…, 在Choose Toolbox Items窗体中选择COM Components选项,然后勾选”FoxitPDFSDK Pro Control”, 点击OK。
C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML11471ea.PNG
拖拽FoxitPDFSDK Pro Control到Form1窗体,调整其大小如下图所示:

打开一个PDF文档

FoxitPDFSDK Pro Control包含了PDF相关的基础界面功能,用户可以自行添加新的功能,或者删除已有的功能。
点击Debug > Starting Without Debugging运行该应用程序。 然后在Form1窗口中点击 ,选择并打开一个PDF文档,如下图所示:
C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML1ce069e.PNG

调用函数打开和旋转文档

您也可以通过调用函数来打开一个PDF文件,例如下面的两行代码打开”C:/FoxitBigPreview.pdf”,并且按顺时针方向将文档第一页旋转90度。
在Form1.cs(双击Form1窗体)中加入如下代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            axFoxitPDFSDK1.OpenFile("C:/FoxitBigPreview.pdf", "");
            axFoxitPDFSDK1.SetPageRotate(0, 1);
        }
    }
}

运行后,如下图所示:

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTMLe2518d.PNG
本节只提供了一个简单的示例代码工程来说明如何使用Foxit PDF ActiveX SDK创建一个C#的Windows窗体工程,您可以通过调用其他的函数来丰富您的应用程序。

使用ActiveX创建一个基于对话框的MFC工程(C++)

本节主要介绍如何使用Foxit PDF SDK ActiveX在Visual Studio 2017中创建一个C++的基于对话框的MFC工程。请确保您已经安装Foxit PDF SDK ActiveX (例如,专业版)。

创建工程

在Visual Studio 2017界面,点击File > New > Project… > Visual C++ > MFC/ATL > MFC Application创建一个名为test的基于对话框的MFC工程,如下图所示。

选择应用类型为”Dialog based“。

添加Foxit PDF SDK ActiveX控件

在Resource View中,双击IDD_TEST_DIALOG,然后右键点击对话框,选择Insert ActiveX Control…,如下所示:

在弹出框中选择FoxitPDFSDK Pro Control,然后点击OK,如下所示:

调整IDD_TEST_DIALOG ActiveX control的大小,使ActiveX control填满整个对话框,如下图所示:

将Foxit PDF SDK ActiveX APIs导入到工程中

点击Project > Class Wizard…,在弹出的对话框中选择MFC class From TypeLib…,如下图所示:

然后,选择从File路径加载class,定位到OCX文件路径(比如,D:\Foxit PDF SDK ActiveX\FoxitPDFSDK_AX_Pro.ocx),导入APIs到工程,如下图所示:

在上图中点击Finish,接着在Class Wizard 窗口中点击OK。然后,您可以看到ActiveX APIs被导入到当前工程中,如下所示:

将导入的类和ActiveX控件进行关联

  • 在”stdafx.h” 文件中,根据您的需要包括相应的头文件。这里,我们仅包括如下的头文件:
#include "CDFoxitPDFSDK.h"
  • 在”testDlg.h”文件中,定义一个ActiveX控件变量:
// Implementation
protected:
   HICON m_hIcon;
       CDFoxitPDFSDK m_AX;
       // Generated message map functions
       virtual BOOL OnInitDialog();
       afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
       afx_msg void OnPaint();
       afx_msg HCURSOR OnQueryDragIcon();
       DECLARE_MESSAGE_MAP()
  • m_Ax变量和ActiveX控件(ID: IDC_FOXITPDFSDKPROCTRL1)进行关联。在”testDlg.cpp“文件中的CtestDlg::OnInitDialog()函数中添加如下的代码:
// TODO: Add extra initialization here
CWnd* pWnd = GetDlgItem(IDC_FOXITPDFSDKPROCTRL1);
LPUNKNOWN pUnknown = pWnd->GetControlUnknown();
// Get the IDispatch interface from control.
LPDISPATCH pDispatch = NULL;
pUnknown->QueryInterface(IID_IDispatch, (LPVOID*)&pDispatch);
// Set to automation wrap.
m_AX = pDispatch;

此时,m_Ax变量和ActiveX控件已关联上。

打开一个PDF文档

FoxitPDFSDK Pro Control包含了PDF相关的基础界面功能,用户可以自行添加新的功能,或者删除已有的功能。
点击Debug > Starting Without Debugging运行该应用程序。然后在运行后的对话框中点击 ,选择并打开一个PDF文档,如下图所示:

调用函数打开和旋转PDF文档

您也可以通过调用函数来打开一个PDF文件,例如下面的两行代码打开”C:/FoxitBigPreview.pdf”,并且按顺时针方向将文档第一页旋转90度。
在”testDlg.cpp“文件中,添加如下的代码到CtestDlg::OnInitDialog()函数中:

m_AX.OpenFile(L"C:/FoxitBigPreview.pdf", L"");
m_AX.SetPageRotate(0,1);

运行后,如下图所示:


本节只提供了一个简单的示例代码工程来说明如何使用Foxit PDF ActiveX SDK创建一个C++的基于对话框的MFC工程,您可以通过调用其他的函数来丰富您的应用程序。

PDF基础功能

本节内容是以AX_Pro_Demo为示例来阐述ActiveX SDK接口是如何使用的,您可以通过设置断点,逐行调试来进一步深入的理解其工作的逻辑。

解锁SDK

使用试用版本的ActiveX SDK渲染的PDF页面都带有水印。而购买正式版本的SDK用户会获得一个认证的key文件,可以用来去掉水印。


Key文件包含一个认证的id和一个解锁码,将其作为参数传递给UnLockActiveX函数。示例代码见AX_Pro_DemoDlg.cpp。
C++:

BOOL CAX_Pro_DemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// code
m_AX.UnLockActiveX(_T("Licence_ID"),_T("Unlock_code"));
    // code
}

如果您需要使用C#,您可以参考如下的C#代码:

public Form1()
{
     InitializeComponent();
     this.m_AX.UnLockActiveX("Licence_ID", "Unlock_code");
}

打开一个PDF文档

调用OpenFile函数打开一个PDF文档。示例代码见AX_Pro_DemoDlg.cpp。
C++:

void CAX_Pro_DemoDlg::OnFileOpen() 
{
        //code 
        m_AX.OpenFile(fdg.GetPathName() ,NULL );
        // code
}

Note:运行AX_Pro_Demo后,通过点击File > Open > 选择一个PDF文件 > 点击Open,或者通过点击打开文件图标 来触发OnFileOpen事件。
如果您需要使用C#,您可以参考如下的C#代码:

m_AX.OpenFile("C:/test.pdf", "");

跳转到指定页面

使用GoToPage函数直接跳转到参数指定的页面。页面索引是从0开始的,所有GoToPage(0)是跳转到文档的第一页。
运行AX_Pro_Demo后,打开一个多页面的文档,在界面上可以看到跳转到首页、前一页、下一页和最后一页的菜单按钮。如下图所示:

在AX_Pro_DemoDlg.cpp中,您可以看到按下导航栏跳转菜单按钮后触发的相对应的事件。使用适当的索引值调用GoToPage函数。
C++:

void CAX_Pro_DemoDlg::OnFirstPage() 
{    
        m_AX.GoToPage(0);
}
void CAX_Pro_DemoDlg::OnLastPage() 
{
        int count = m_AX.GetPageCount();
        m_AX.GoToPage(count-1);    
}
void CAX_Pro_DemoDlg::OnNextPage() 
{   
        int count = m_AX.GetPageCount();  
    int current = m_AX.GetCurPage();
        if(current+1 <= count-1)
            m_AX.GoToPage(current+1);
}
void CAX_Pro_DemoDlg::OnPrevPage() 
{  
        int count = m_AX.GetPageCount();  
        int current = m_AX.GetCurPage();
      if(current-1 >= 0)
            m_AX.GoToPage(current-1);    
}

如果您需要使用C#,您可以参考如下的C#代码:

private void btn_FIRST_PAGE_Click(object sender, EventArgs e)
{
     m_AX.GoToPage(0);
}
private void btn_PREV_PAGE_Click(object sender, EventArgs e)
{
     int iCurPage = m_AX.CurPage;
     int iCount = m_AX.PageCount;
     if (iCurPage - 1 >=0) m_AX.GoToPage(iCurPage - 1);
}
private void btn_Next_Page_Click(object sender, EventArgs e)
{
     int iCurPage = m_AX.CurPage;
     int iCount = m_AX.PageCount;
     if (iCurPage + 1 <= iCount - 1) m_AX.GoToPage(iCurPage + 1);
}
private void btn_LAST_PAGE_Click(object sender, EventArgs e)
{
     int iCount = m_AX.PageCount;
     if (iCount < 0) return;
     m_AX.GoToPage(iCount - 1);
}

缩放页面

调用SetZoomLevel函数放大或缩小PDF页面。运行AX_Pro_Demo后,打开一个PDF文档,在界面上可以看到放大,缩小,实际大小,适合页面,适合宽度。点击这些菜单按钮会触发相对应的事件,并且都会调用SetZoomLevel函数。


C++:

void CAX_Pro_DemoDlg::OnZoomIn() 
{   
        zoomfactor = m_AX.GetZoomLevel();
        if (zoomfactor + 10 == 6400) 
            zoomfactor = 6400;
        else 
            zoomfactor = zoomfactor + 10;
        m_AX.SetZoomLevel(zoomfactor);    
}
void CAX_Pro_DemoDlg::OnZoomOut() 
{
   zoomfactor = m_AX.GetZoomLevel();
   if(zoomfactor - 10 > 0) 
    zoomfactor = zoomfactor - 10;
    m_AX.SetZoomLevel(zoomfactor);
}
void CAX_Pro_DemoDlg::OnActualSize() 
{
    m_AX.SetZoomLevel(0);
}
void CAX_Pro_DemoDlg::OnFitPage() 
{
    m_AX.SetZoomLevel(1);
}
void CAX_Pro_DemoDlg::OnFitWidth() 
{
    m_AX.SetZoomLevel(2);
}

如果您需要使用C#,您可以参考如下的C#代码:

private void btn_ZoomIn_Click(object sender, EventArgs e)
{
        zoomfactor = m_AX.ZoomLevel;
        if (zoomfactor + 10 > 6400)
           zoomfactor = 6400;
        else
           zoomfactor = zoomfactor + 10;
        m_AX.ZoomLevel = zoomfactor;
}
private void btn_ZoomOut_Click(object sender, EventArgs e)
{
        zoomfactor = m_AX.ZoomLevel;
        if (zoomfactor - 10 > 0)
           zoomfactor = zoomfactor - 10;
        m_AX.ZoomLevel = zoomfactor;
}
private void btn_ActualSize_Click(object sender, EventArgs e)
{
        m_AX.ZoomLevel = 0;
}
private void btn_FitPage_Click(object sender, EventArgs e)
{
        m_AX.ZoomLevel = 1;
}
private void btn_FitWidth_Click(object sender, EventArgs e)
{
        m_AX.ZoomLevel = 2;
}

旋转页面

调用SetRotate函数旋转PDF页面。运行AX_Pro_Demo后,打开一个PDF文档,在界面上可以看到顺时针和逆时针旋转的菜单按钮。点击菜单按钮会触发对应的事件,并且都会调用SetRotate函数。


C++:

void CAX_Pro_DemoDlg::OnRotateRight() 
{
    if(rotatefactor == 3) 
            rotatefactor = 0;
        else 
            rotatefactor++;
        m_AX.SetRotate(rotatefactor);
}
void CAX_Pro_DemoDlg::OnRotateLeft() 
{  
        if(rotatefactor == 0) 
        rotatefactor=3;
   else 
           rotatefactor--;
        m_AX.SetRotate( rotatefactor );
}

如果您需要使用C#,您可以参考如下的C#代码:

private void btn_ClockWise_Click(object sender, EventArgs e)
{
        if (m_rotatefactor == 3)
          m_rotatefactor =0;
        else
          m_rotatefactor++;
        m_AX.Rotate = m_rotatefactor;
}
private void btn_CounterClockWise_Click(object sender, EventArgs e)
{
        if (m_rotatefactor == 0) m_rotatefactor = 3;
        else m_rotatefactor--;
        m_AX.Rotate = m_rotatefactor;
}

打印PDF文档

调用PrintWithDialog函数,即会弹出一个打印设置窗口。在该窗口界面上,您可以手动调整打印设置。使用ActiveX SDK,您还可以以编程方式设置打印机的相关参数。
运行AX_Pro_Demo后,打开一个PDF文档,在界面上点击打印菜单按钮 如下图所示,或者点击File > Print…,触发OnFilePrint()事件,调用PrintWithDialog函数弹出打印对话框设置窗口。

C:\Users\ADMINI~1\AppData\Local\Temp\SNAGHTML5cb349.PNG
C++:

void CAX_Pro_DemoDlg::OnFilePrint() 
{
        CPDFPrinter printer = m_AX.GetPrinter();
        if (!printer)
        {
            return;
        }
// printer.SetPrinterName("foxit PDF");
printer.SetPrinterRangeMode(3);
printer.SetPrinterRangeFrom(2);
printer.SetPrinterRangeTo(3);
printer.SetPaperSize(8);
printer.SetNumOfCopies(2);
printer.PrintWithDialog();
}

备注:有些IDE会自动封装属性对象,只读的属性会被封装成”GetXXX()”方法,可读写的属性会被封装成”GetXXX()”和”SetXXX()”方法.Printer 是Foxit PDF SDK ActiveX 控件的一个只读属性,因此在有些IDE中,您需要使用m_AX.GetPrinter()方法,而不是使用m_AX.Printer。
如果您需要使用C#,您可以参考如下的C#代码:

private void btn_FILE_PRINT_Click(object sender, EventArgs e)
{
        PDFPrinter pPrinter = m_AX.Printer;
        if (pPrinter==null) return;
        pPrinter.PrinterRangeMode = PrinterRangeMode.PRINT_RANGE_CURRENT_PAGE;
        pPrinter.printerRangeFrom = 2;
        pPrinter.printerRangeTo = 3;
        pPrinter.SetPaperSize(8);
        pPrinter.numOfCopies = 2;
        pPrinter.PrintWithDialog();
}

隐藏或显示用户界面元素

ActiveX SDK提供相应的接口用来定制修改用户界面。例如,调用ShowToolBar()即可显示或隐藏工具栏。如果您想创建自己的工具栏,只需隐藏ActiveX控件内置工具栏,然后在控件外部创建属于自己的工具栏。
调用ShowToolBar(FALSE):

调用ShowToolBar(TRUE):

在AX_Pro_DemoDlg.cpp,ShowToolBar函数的默认设置是FALSE。您可以将m_ToolState修改为TRUE来启用Toolbar,然后运行demo。
C++:

BOOL CAX_Pro_DemoDlg::OnInitDialog()
{
    // code
    m_ToolState = FALSE;    
    // code    
    m_AX.ShowToolBar( m_ToolState );
    // code
}

如果您需要使用C#,您可以参考如下的C#代码:

public Form1()
{
        // code
        m_AX.ShowToolBar(false);
        // code           
}

遍历PDF大纲目录

如果您需要给PDF文档建立大纲目录,您可以调用GetOutlineFirstChild()和GetOutlineNextSibling()函数,即可遍历整个大纲目录。
运行AX_Pro_Demo后,打开一个PDF文档,在界面上点击大纲目录按钮 ,即可看到该文档的目录(前提是该文档目录存在)。

在AX_Pro_DemoDlg.cpp的CAX_Pro_DemoDlg::OnFileOpen()函数中可以看到大纲目录在文档第一次被加载打开时是如何生成的。为了更进一步的理解整个过程,建议开发人员在该函数执行之前设置断点,并且逐步进行调试,找到GetOutlineFirstChild和GetOutlineNextSibling是何时被调用的。
C++:

void CAX_Pro_DemoDlg::OnFileOpen() 
{
        // code
    CPDFOutline outline;
        outline = m_AX.GetOutlineFirstChild( outline.m_lpDispatch );    
        if (outline != NULL)
        {    
            outline = NULL;
            ProcOutline(outline,NULL);
    }
        OnMENUITEMexpandtree();
        if (m_outlinetree.GetCount() > 0)
        {
            ShowBookMark();
            m_bhidebookmark = TRUE;
        }
        else
        {
            HideBookMark();
            m_bhidebookmark = FALSE;
        }
}

如果您需要使用C#,您可以参考如下的C#代码:

public BookMarkControl(AxFoxitPDFSDK pAx)
{
        // code
        PDFOutline outline = null;
        outline = m_AX.GetOutlineFirstChild(outline);
        if (outline != null)
        {
            ProcOutline_Root(outline, null);
        }
        m_BookMark.ShowLines = true;                        
        m_BookMark.ShowPlusMinus = true;            
                                
}
private void ProcOutline_Root(PDFOutline outline, TreeNode CurNode)
{
        if (outline != null)
        {
            CurNode = m_BookMark.Nodes.Add(outline.GetOutlineTitle().ToString());
            ProcOutline(outline, CurNode);
            t.Add(CurNode, outline);
            outline = m_AX.GetOutlineNextSibling(outline);
            ProcOutline_Root(outline, null);
        }
}
private void ProcOutline(PDFOutline outline, TreeNode CurNode)
{
        outline = m_AX.GetOutlineFirstChild(outline);
        while (outline != null)
        {
          TreeNode newNode = new TreeNode();
          String title = outline.GetOutlineTitle();
          newNode = CurNode.Nodes.Add(title);
          ProcOutline(outline, newNode);
          t.Add(newNode, outline);
          outline = m_AX.GetOutlineNextSibling(outline);
        }
}

检索PDF文件

调用FindFirstEx()函数即可定位到给定文本在整个PDF文档中的第一个位置。如果没有找到与给定文本相匹配的内容,则函数返回值为0。如果找到与给定文本相匹配的内容,则函数返回非零值,同时高亮对应的文本内容。
运行AX_Pro_Demo后,打开一个PDF文档,在界面上点击搜索按钮 ,即可弹出搜索对话框。

在FindDlg.cpp的CFindDlg::OnOK()函数中,可以找到FindFirstEx()和FindNext()的示例代码,如下所示:
C++:

void CFindDlg::OnOK() 
{
        UpdateData(true);
        If (TRUE == m_bFirst)
    {
        // code to initialize the var parameter
            m_pAX->FindFirstEx(var, m_check1, m_check2);
            // code
    }
    else
            //FindNext(BOOL) TRUE:down search, FALSE:up search
            m_pAX->FindNext(TRUE);
}

如果您需要使用C#,您可以参考如下的C#代码:

private void btn_Find_Next_Click(object sender, EventArgs e)
{
        newWord = textSearchWord.Text;
        if (newWord == "")
            MessageBox.Show("please input the characters that you want to search.");
        if (newWord != oldWord || bchkMatchCase != chkMatchCase.Checked || bchkWholeWord != chkWholeWord.Checked)
        {
            bchkMatchCase = chkMatchCase.Checked;
            bchkWholeWord = chkWholeWord.Checked;
            oldWord = newWord;
         if (!m_AX.FindFirst(newWord, chkMatchCase.Checked, chkWholeWord.Checked))
         {
              // MessageBox.Show("No Find");
              bFirst = true;
         }
         else bFirst = false;
        }
     if (bFirst == false) m_AX.FindNext(bSearchDown);
}

IFoxitPDFSDK

本章节主要讲解的是ActiveX提供的所有的属性和方法。需要注意的是,所有的描述均基于C语法。如果您使用的编程语言不同于C/C++,请遵守该种编程语言的语法。
备注: 标记(*)的函数属于专业版,标记 (#)的函数属于表单模块,标记 (^)的函数属于批注模块中使用,标记(&)的函数属于电子签章模块。

属性

FilePath

类型:
BSTR, 只读
描述:
当前打开的PDF文件的完整路径。如果当前没有打开的PDF文件,或者PDF文件是通过缓存或者流中打开的,则该属性的值为空。

Password

类型:
BSTR,只读
描述:
PDF文件的密码。

PageCount

类型:
long, 只读
描述:
当前打开的PDF文件的总页数。

CurPage

类型:
long, 只读。
描述:
当前显示的PDF页面的索引值,索引值从0开始计算。

Rotate

类型:
short, 读/写
描述:
当前旋转的方向,其值如下所列:
0 – 垂直正向;
1 – 顺时针旋转90度;
2 – 旋转180度;
3 – 逆时针旋转90度。

Zoomlevel

类型:
long, 读/写
描述:
一般情况下,缩放的比率在10~1600之间。也可使用如下特定的值:
0: 显示页面的原始尺寸,相当于100%。
1: 以适当的缩放比率显示页面,确保客户端显示窗口能够显示整个PDF页面。
2: 以适当的缩放比率显示页面,确保在水平方向上页面充满整个客户端显示窗口。

CurrentTool

类型:
BSTR, 读/写
描述:
读取或设置当前使用的工具,可使用如下所列的值:
Hand Tool”
ZoomOut Tool”
“ZoomIn Tool”
Select Text Tool”
Find Text Tool”
Snapshot Tool”
*“Loupe Tool”
*“Magnifier”
*“Annot Tool”
*“Rectangle Link Tool”
*“Quadrilateral Link Tool”
*“Arrow Tool”
*“Line Tool”
*“Dimension Tool”
*“Square Tool”
*“Rectangle Tool”
*“Circle Tool”
*“Ellipse Tool”
*“Polygon Tool”
*“Cloudy Tool”
*“Polyline Tool”
*“Pencil Tool”
*“Rubber Tool”
*“Highlight Tool”
*“Underline Tool”
*“Strikeout Tool”
*“Squiggly Tool”
*“Replace Tool”
*“Note Tool”
*“Push Button Tool”
*“Check Box Tool”
*“Radio Button Tool”
*“Combo Box Tool”
*“List Box Tool”
*“Text Field Tool”
*“Distance Tool”
*“Perimeter Tool”
*“Area Tool”
*“Typewriter”
*“CallOut”
*”Textbox”
*“Image Tool”
*“Sound Tool”
*“Movie Tool”
*“FileAttachment Tool”
*“Attach a file”
*“ESignature Tool”
备注:
通过调用CountTools函数可以获取当前ActiveX版本所支持的工具的数量,然后调用 GetToolByIndex函数来获取每一个工具的名称。

Printer

类型:
IPDFPrinter, 只读
描述:
该打印机属性返回的是一个IPDFPrinter 接口,通过接口可实现打印机的管理和打印操作。

DocumentInfo

类型:
IPDFDocumentInfo*, 只读
描述:
该属性返回的一个IPDFDocumentInfo 接口,通过接口可获取文档的其他信息,如作者、创建者、创建时间、关键词、修改时间、创建工具、主题和标题。

ActiveXVersion

类型:
BSTR, 只读
描述:
获取ActiveX控件的版本信息。

*bHasFormFields

类型:
BOOL , 只读
描述:
如果当前文档中含有PDF表单域,则该属性的值为True,否则为False。

*bHighlightFormFields

类型:
BOOL , 读/写
描述:
设置该属性值为True将会高亮所有的PDF表单域,突出PDF表单域,给出提示的作用。

*FormFieldsHighlightAlpha

类型:
short, 读/写
描述:
调整PDF表单域在被高亮时的透明度。0代表完全透明,255代表不透明。

*FormFieldsHighlightColor

类型:
OLE_COLOR, 读/写
描述:
高亮PDF表单域时使用的颜色。

方法

1. 解锁

UnLockActiveX

使用从福昕公司获取的正式授权文件来解锁ActiveX。
函数原型:
Void UnLockActiveX(BSTR lisence_id, BSTR unlock_code)
参数:
license_id – 授权标识字符串。
unlock_code – 解锁码字符串。
返回值:

备注:
如果只是试用ActiveX,则不需要调用该函数。试用水印将出现在所有页面上。
如果是正式授权的ActiveX,必须首先调用该函数以去除试用水印,再进行其他函数的调用。

UnLockActiveXEx

使用从福昕公司获取的正式授权文件来解锁ActiveX。
函数原型:
Void UnLockActiveXEx(BSTR strLicense)
参数:
strLicense – 福昕公司提供的SDK授权码
返回值:

备注:
该函数的功能与UnlockActiveX相同。

*IsUnLocked

判断ActiveX控件是否被解锁。
函数原型:
BOOL IsUnLocked()
参数:

返回值:

备注:
解锁成功才返回TRUE,反之则返回FALSE。

*RemoveEvaluationMark

在拥有正式授权的情况下,移除试用水印。
函数原型:
BOOL RemoveEvaluationMark()
参数:

返回值:
成功则返回TRUE,反之则返回FALSE。

2.全局设置

SetCurrentLanguage

在存在对应的XML文件的情况下,根据语言识别号切换相应的语言。
函数原型:
void SetCurrentLanguage(short LanguageID);
参数:
LanguageID – 语言识别号。0-30每个数字代表一种语言。
1-阿拉伯语
2-保加利亚语
3-匈牙利语
4-加泰罗尼亚语
5-捷克语
6-简体中文
7-繁体中文
8-丹麦语
9-荷兰语
10-英语
11-爱沙尼亚语
12-芬兰语
13-法语
14-加利西亚语
15-德语
16-希腊语
17-意大利语
18-韩语
19-拉托维亚语
20-立陶宛语
21-挪威语
22-波兰语
23-葡萄牙语
24-巴西葡萄牙语
25-罗马语
26-俄罗斯语
27-斯罗维尼亚语
28-西班牙语
29-瑞典语
30-土耳其语
31-希伯来语
32-日语
33-泰语
34-瓦伦西亚语
返回值:

备注:
ActiveX支持对用户界面进行动态的语言切换,支持的语言多达30多种。只需加载额外的语言包(xml文件)。如需指定的语言包,请发邮件至sales@foxitsoftware.cn与我们联系。

SetCurrentLanguageByString

通过指定语言包(XML文件)来切换程序界面语言。
函数原型:
void SetCurrentLanguageByString(BSTR FileName);
参数:
FileName – XML语言包的路径
阿拉伯语 – lang_ar_ae.xml
保加利亚语 – lang_bg_bg.xml
匈牙利语 – lang_hu_hu.xml
加泰罗尼亚语 – lang_ca_es.xml
捷克语 – lang_cz_cz.xml
简体中文 – lang_zh_cn.xml
繁体中文 – lang_tw_cn.xml
丹麦语 – lang_da_dk.xml
荷兰语 – lang_nl_nl.xml
英语 – lang_en_us.xml
爱沙尼亚语 – lang_et_ee.xml
芬兰语 – lang_fi_fi.xm
法语 – lang_fr_fr.xml
加利西亚语 – lang_gl_es.xml
德语 – lang_de_de.xml
希腊语 – lang_el_gr.xml
意大利语 – lang_it_it.xml
韩语 – lang_ko_kr.xml
拉托维亚语 – lang_lv_lv.xml
立陶宛语 – lang_lt_lt.xml
挪威语 – lang_nb_no.xml
波兰语 – lang_pl_pl.xml
葡萄牙语 – lang_pt_pt.xml
巴西葡萄牙语 – lang_pt_br.xml
罗马语 – lang_ro_ro.xml
俄罗斯语 – lang_ru_ru.xml
斯罗维尼亚语 – lang_sl_si.xml
西班牙语 – lang_es_es.xml
瑞典语 – lang_sv_se.xml
土耳其语 – lang_tr_tr.xml
希伯来语 – lang_he_il.xml
日语 – lang_jp_jp.xml
泰语 – lang_th_th.xml
瓦伦西亚语 – lang_va_es.xml
返回值:

备注:
ActiveX支持对用户界面进行动态的语言切换,支持的语言多达30多种。只需加载额外的语言包(xml文件)。如需指定的语言包,请发邮件至sales@foxitsoftware.cn与我们联系。

SetModulePath

指定fpdfcjk.bin组件的路径,用以显示PDF文件中的中文、日文和韩文文本。
函数原型:
void SetModulePath(LPCTSTR lpFolderName)
参数:
lpFolderName – fpdfcjk.bin组件的完整路径
返回值:

备注:
fpdfcjk.bin组件用以显示PDF文档中的中文、日文和韩文文本。

SetCrashLog

在应用程序中调用该函数可设置一个日志文件,该日志文件将记录程序运行中每次崩溃的情况。
函数原型:
BOOL SetCrashLog (BSTR filepath);
参数:
filepath – 指定日志文件的路径, 对应的文件必须已经存在。
返回值:
返回值指明是否成功设置了日志文件。

SetLogFile

在应用程序中调用该函数可设置一个日志文件,该日志文件将记录程序中调用的每一个接口。
函数原型:
BOOL SetLogFile(BSTR filepath);
参数:
filepath – 指定日志文件的路径,对应的文件必须已经存在。
返回值:
返回值指明是否成功设置了日志文件。

AboutBox

弹出”关于”对话框。
函数原型:
Void AboutBox()
参数:

返回值:

3.打开和关闭PDF文件

OpenFile

从本地磁盘中或从http网络服务器上打开一个PDF文件。
函数原型:
BOOL OpenFile (BSTR FilePath, BSTR Password)
参数:
FilePath – 本地PDF文件路径或者HTTP服务器上的URL地址。
Password – PDF文件的打开密码。
返回值:
如果PDF文件打开成功,则函数返回非零值,反之则返回零。
备注:

  • 通过该接口打开的PDF文件,不会被独占,其他应用程序还可同时打开同一个PDF文件。
  • Event事件和callback回调函数中不能使用OpenFile函数,否则程序可能会crash。

OpenMemFile

打开内存中PDF文件。
函数原型:
BOOL OpenMemFile(long pBuffer, long Size, BSTR Password)
参数:
pBuffer – 内存中指向PDF数据的指针
Size – PDF数据的大小
Password – PDF文件的打开密码
返回值:
如果PDF文件打开成功则返回一个非零值,反之返回值为零。

OpenBuffer

从缓存中打开一个PDF文件。
函数原型:
BOOL OpenBuffer(VARIANT Buffer, long size, BSTR password);
参数:
Buffer – 包含PDF数据的字节数组
Size – PDF数据的大小
Password – PDF文档的打开密码
返回值:
如果PDF文件打开成功则返回一个非零值,反之返回值为零。

OpenStream

通过从IStream类提供的接口中获取PDF数据的方式打开一个PDF文件。
函数原型:
BOOL OpenStream (IStream* Stream, BSTR Password)
参数:
Stream – 一个IStream的指针
Password – PDF文件的打开密码。如果文档没有设置密码,则此值为空即可。
返回值:
如果PDF文件打开成功则返回一个非零值,反之返回值为零。

SetFileStreamOption

当打开一个PDF文件时,设置文件流标记。
函数原型:
Void SetFileStreamOption(BOOL bFileStream);
参数:
bFileStream – 布尔型,文件流标记
返回值:

备注:
如果一个PDF文件被频繁的访问,可以通过该方法将内容流加载到内存中以提高执行效率。当然这样将会消耗更多的内存。

OpenCustomFile

通过用户自定义方式打开一个PDF文件。
函数原型:
BOOL OpenCustomFile(BSTR Password)
参数:
Password – PDF文件的打开密码。如果没有密码,则设置为空字符串。
返回值:
如果PDF文件打开成功则返回一个非零值,反之返回值为零。
备注:
当应用程序调用该方法时,ActiveX控件将触发CustomFileGetSize事件和CustomFileGetBlock事件。在这两个事件中,应用程序将按照用户自定义的格式打开一个PDF文件,并返回文件的大小和数据。详情请参照CustomFileGetSizeCustomFileGetBlock的描述。

OpenFtpFile

打开一个FTP服务器上的PDF文件。
函数原型:
BOOL OpenFtpFile(BSTR ftpName,BSTR username, BSTR userPassword, long port,BSTR filePath, BSTR filePassword, sernam Passive);
参数:
ftpName – FTP服务器的名称
Username – FTP服务器的登录用户名
userPassword – FTP 服务器的登录密码
port – FTP 服务器端口
filePath  – FTP文件的路径
filePassword – PDF文件的密码
Passive  – 是否主动连接服务器
返回值:
如果PDF文件打开成功则返回一个非零值,反之返回值为零。

CloseFile

关闭当前打开的PDF文件。
函数原型:
Void CloseFile()
参数:

返回值:

*EnableAXScrollBar

启用ActiveX控件的滚动条。
函数原型:
Void EnableAXScrollBar(BOOL isEnable);
参数:
isEnable – 值为TRUE表示启用ActiveX控件的滚动条,值为FALSE表示隐藏ActiveX控件的滚动条。
返回值:

*EnablePenInputPanel

启用手写面板。
函数原型:
Void EnablePenInputPanel(bool isEnable);
参数:
isEnable – 值为TRUE表示启用手写面板,值为FALSE表示禁用手写面板。
返回值:

4.保存

SaveAs

将当前打开的文档另存为一个新的文件。
函数原型:
Void SaveAs (BSTR FileName)
参数:
FileName – 指定当前PDF文件要保存的路径(仅支持本地路径)。
返回值:

Save

保存当前打开的文档。
函数原型:
Void Save ()
参数:

返回值:

备注:
该函数只能保存本地磁盘中的PDF文件,无法保存从URL中打开的PDF文件。

*SaveAsOptimization

优化PDF文件并将其保存到指定的文件路径。该PDF文件将会被压缩为对象流,从而减小文件的大小。
函数原型:
boolean SaveAsOptimization(BSTR filePath)
参数:
filePath – 新PDF文件的保存路径。
返回值:
成功则返回True,反之返回False。

SaveToStream

将当前打开的文档保存到内存流中。
函数原型:
IStream* SaveToStream()
参数:

返回值:
函数返回值是一个IStream指针。IStream提供的接口支持将PDF文件数据从IStream对象中读取,也支持将PDF数据写入IStream对象中。

*SaveAsFlag

根据指定的路径和标志来保存当前打开的文档。
函数原型:
Void SaveAsFlag(LPCTSTR FileName, short flag)
参数:
FileName     –     新PDF文件的保存路径。
flag               –    保存的标志位,可以是以下几个值的组合:
/** @brief增量更新。*/
#define FPDFCREATE_INCREMENTAL 1
/** @brief 只保存更新部分(不保留原始文档数据)。当与FPDFCREATE_INCREMENTAL组合时,只保存修改的PDF对象。当PDF文档没有更新时,则保存后的文档是空文件。*/
#define FPDFCREATE_NO_ORIGINAL 2
/** @brief使用对象流创建器。*/
#define FPDFCREATE_OBJECTSTREAM 8
返回值:

*SetShowSavePrompt

设置在关闭文档时弹出保存对话框窗口。
函数原型:
void SetShowSavePrompt(boolean bShow, short Result)
参数:
bShow – 指定是否弹出保存对话框窗口。
Result – 当bShow设置为FALSE时,指定在后台保存PDF。有效值为1和6.
返回值:

5.页面导航

ExistForwardStack

查询是否存在下一个视图。
函数原型:
BOOL ExistForwardStack ();
参数:

返回值:
如果存在下一个视图,则返回值为true,反之则返回值为false。
备注:
当用户在浏览PDF过程中,经常需要返回到上一个阅读的位置。我们将阅读到PDF文档的某一个位置或者PDF文档显示的某一个状态称作视图。用户的每一个操作都会产生一个新的视图。例如,如果用户跳转到一个新的页面,然后进行了缩放页面,那么这两个操作将产生两个新的视图。程序通过调用这一系列的方法,可以很方便的在不同的视图间进行切换。

GoForwardStack

跳转到下一个视图。
函数原型:
Void GoForwardStack ();
参数:

返回值:

ExistBackwardStack

查询是否存在前一个视图。
函数原型:
BOOL ExistBackwardStack ();
参数:

返回值:
如果存在前一个视图,则返回值为true,反之则返回值为false。

GoBackwardStack

跳转到前一个视图。
函数原型:
Void GoBackwardStack ();
参数:

返回值:

GetVisibleLeftTopPage

获取显示区域中左上角的页面的页码。
函数原型:
Long GetVisibleLeftTopPage ();
参数:

返回值:
返回显示区域中左上角的页面的页码。

GoToNextPage

跳转到PDF文档当前页面的下一页。
函数原型:
Void GoToNextPage ();
参数:

返回值:

备注:
该函数在后续的版本中将被删除,而以GoToPage函数代之。

GoToPrevPage

跳转到PDF文档当前页面的前一页。
函数原型:
Void GoToPrevPage ();
参数:

返回值:

备注:
该函数在后续的版本中将被删除,而以GoToPage函数代之。

GoToPage

跳转到当前打开的PDF文档指定的页面。
函数原型:
void GoToPage( long page_index )
参数:
page_index – 指定页面的页码。
返回值:

GoToPagePos

跳转到PDF文档中一个指定的位置。
函数原型:
Void GoToPagePos (long nPageIndex, float PageX, float PageY);
参数:
nPageIndex – 跳转到该页码索引值指定的页面
PageX – nPageIndex指定的页面内的x坐标点
PageY – nPageIndex指定的页面内的y坐标点
返回值:

GotoPageDest

跳转到PDF文档中一个指定的位置。
函数原型:
Void GotoPageDest (ILink_Dest * link_dest);
参数:
link_dest – 从OnHyperLink 事件中获取的ILink_Dest接口的一个实例
返回值:

6. 查看

ShowDocumentInfoDialog

弹出文档的属性对话框。
函数原型:
void ShowDocumentInfoDialog()
参数:

返回值:

SetPDFMeasureUnit

设置PDF文档的测量单位。
函数原型:
BOOL SetPDFMeasureUnit(short nType);
参数:
nType – 指定测量的单位,它包括: 0 = 点; 1 = 英寸; 2 = 厘米; 3=像素
返回值:
成功则返回True,反之返回False。

GetPageWidth

获取指定的PDF页面的宽度。
函数原型:
float GetPageWidth(short nPageIndex);
参数:
nPageIndex – 指定页面的页码
返回值:
返回可显示区域的页面宽度(以点为单位)。
1点= 1/72 英寸 (约等于0.3528 mm)

GetPageHeight

获取指定PDF页面的高度。
函数原型:
float GetPageHeight(short nPageIndex);
参数:
nPageIndex – 指定页面的页码
返回值:
返回可显示区域的页面高度(以点为单位)。
1点= 1/72 英寸 (约等于0.3528 mm)

CountTools

获取当前ActiveX版本中可使用工具的数量。
函数原型:
short CountTools()
参数:

返回值:
返回可使用工具的数量。

GetToolByIndex

根据索引值获取工具的名称。
函数原型:
BSTR GetToolByIndex (short nIndex)
参数:
nIndex – 索引值,范围是大于等于0,小于可使用工具的总数量
返回值:
返回工具的名称。

ScrollView

将当前视图在水平方向和垂直方向上进行dx和dy距离的滚动,采用的是设备坐标。
函数原型:
Void ScrollView (long dx, long dy);
参数:
dx – 水平方向的滚动的距离
dy – 垂直方向的滚动的距离
返回值:

GetScrollLocation

获取显示区域的滚动条当前的位置。
函数原型:
void GetScrollLocation (long *dx, long *dy);
参数:
dx – 返回水平滚动条的位置
dy – 返回垂直滚动条的位置
返回值:

GetScrollLocationEx

GetScrollLocation方法的扩展。
函数原型:
void GetScrollLocationEx (VARIANT * HPos, VARIANT * VPos);
参数:
HPos – 返回水平滚动条的位置
VPos – 返回垂直滚动条的位置
返回值:

SetViewRect

显示当前PDF页面指定区域的内容。
函数原型:
Void SetViewRect (float Left, float Top, float Width, float Height);
参数:
Left – 左上角x坐标
Top – 左上角y坐标
Width – 指定区域的宽度
Height – 指定区域的高度
返回值:

备注:
该函数将显示当前PDF页面指定区域的内容。这里提到的坐标指的是PDF的坐标,而非设备坐标。同样的,这里提到的长度单位是PDF的点。该函数不会改变ActiveX控件窗口的位置和尺寸大小,而是通过改变当前PDF页面的显示位置和缩放比率,以保证设定的区域内的PDF内容能够充满整个ActiveX控件窗口。一个典型的应用场景是:最终用户通过鼠标点击和拖拽划定一个区域后,松开鼠标,应用程序首先调用ConvertClientCoodToPageCood接口将鼠标坐标转换为PDF坐标,然后调用SetViewRect接口将之前选中的区域内的PDF页面内容充满整个显示窗口。

ConvertClientCoordToPageCoord

将ActiveX控件的窗口坐标转换为PDF页面坐标。
函数原型:
BOOL ConvertClientCoordToPageCoord (long nClientX, long nClientY, long* pnPageIndex, float* pPageX, float* pPageY);
参数:
nClientX – ActiveX控件的窗口坐标,x坐标点,像素
nClientY – ActiveX控件的窗口坐标,y坐标点,像素
pnPageIndex- 返回值。保存的是指定的坐标点转换成PDF页面坐标 后,所在页面的页码索引值。
pPageX – 返回值。保存的是PDF页面坐标的x坐标点。
pPageY – 返回值。保存的是PDF页面坐标的y坐标点。
返回值:
如果指定的区域包括ActiveX的背景区域,则转换失败。

ConvertClientCoordToPageCoordEx

ConvertClientCoordToPageCoord函数的扩展。
函数原型:
BOOL ConvertClientCoordToPageCoordEx (long nClientX, long nClientY, VARIANT* pnPageIndex, VARIANT* pPageX, VARIANT* pPageY);
参数:
nClientX – ActiveX控件的窗口坐标,x坐标点,像素
nClientY – ActiveX控件的窗口坐标,y坐标点,像素
pnPageIndex – 返回值。保存的是指定的坐标点转换成PDF页面坐标后, 所在页面的页码索引值。
pPageX – 返回值。保存的是PDF页面坐标的x坐标点。
pPageY – 返回值。保存的是PDF页面坐标的y坐标点。
返回值:
如果指定的区域包括ActiveX的背景区域,则转换失败。

ConvertPageCoordToClientCoord

将PDF页面坐标转换为ActiveX控件的窗口坐标。
函数原型:
BOOL ConvertPageCoordToClientCoord (long nPageIndex, float dPageX, float dPageY, long* pnClientX, long* pnClientY);
参数:
nPageIndex – 页面索引值
dPageX – PDF页面坐标的x坐标点
dPageY – PDF页面坐标的y坐标点
pnClientX – 返回值。保存的是ActiveX控件的窗口坐标的x坐标点。如果该坐标点超出了控件的窗口区域,则被视为无效的转换结果。
pnClientY – 返回值。保存的是ActiveX控件的窗口坐标的y坐标点。如果该坐标点超出了控件的窗口区域,则被视为无效的转换结果。
返回值:
函数返回值表示转换是否成功。
备注:
如果当前没有打开文档或者页码错误,则返回值为FALSE。否则,返回值为TRUE。

ConvertCoordFromClientToPage

将ActiveX控件的窗口坐标转换为PDF页面坐标。可以通过调用JavaScript实现。
函数原型:
VARIANT ConvertCoordFromClientToPage(long nClientX, long nClientY);
参数:
nClientX – ActiveX控件的窗口坐标,x坐标点,像素
nClientY – ActiveX控件的窗口坐标,y坐标点,像素
返回值:
返回一个包含3个元素的数组。第一个元素是当前的页面,第二个是转换后的x坐标,第三个是转换后的y坐标,在PDF页面坐标系中。

ConvertCoordFromPageToClient

将PDF页面坐标转换为ActiveX控件的窗口坐标。可以通过调用JavaScript实现。
函数原型:
VARIANT ConvertCoordFromPageToClient(long nPageIndex, float PageX, float PageY);
参数:
nPageIndex – 页面索引值
PageX – PDF页面坐标的x坐标点
PageY – PDF页面坐标的y坐标点
返回值:
返回一个包含2个元素的数组。第一个元素是转换后的x坐标,第二个是转换后的y坐标,在ActiveX控件的窗口坐标系中。

SetBackgroudColor

设置PDF页面的背景颜色。
函数原型:
BOOL SetBackgroudColor(OLE_COLOR color) ;
参数:
color – 背景颜色值
返回值:
成功则返回TRUE,反之返回FALSE。

ShowPageShadow

显示或隐藏PDF的页面阴影。
函数原型:
void ShowPageShadow(bool bShow);
参数:
bShow – 值为TRUE则显示页面阴影,值为FALSE则隐藏页面阴影。
返回值:
None

ShowPageBorder

显示或隐藏PDF页面的边框。
函数原型:
void ShowPageShadow(bool bShow);
参数:
bShow – 值为TRUE则显示页面边框,值为FALSE则隐藏页面边框。
返回值:
None

ShowPagesSpace

显示或隐藏在双页或连续页阅读模式下的页面间距。
函数原型:
void ShowPagesSpace (bool bShow);
参数:
bShow – 值为TRUE则显示页面间距,值为FALSE则隐藏页面间距。
返回值:
None

7. 超链接

统计指定页面所包含的超链接的数量。
函数原型:
short CountHyperLinks(short nPageIndex);
参数:
nPageIndex – 指定的页码
返回值:
成功则返回超链接的数量,返回值为0表示指定页面不包含任何超链接,返回值为-1表示函数执行失败。

高亮显示指定页面中某一个超链接。
函数原型:
void HighlightHyperLink(short nPageIndex, short nLinkIndex)
参数:
nPageIndex – 指定页面的页码
nLinkIndex – 超链接索引
返回值:

GetHyperLinkRect

获取指定超链接的位置。
函数原型:
BOOL   GetHyperLinkRect(short nPageIndex, short nIndex, float* top, float* left, float* bottom, float* right)
参数:
nPageIndex – 指定页面的索引
nLinkIndex – 超链接的索引
top      –   顶部坐标返回的指针
left      –   左边坐标返回的指针
bottom   –   底部坐标返回的指针
right     –   右边坐标返回的指针
返回值:
成功则返回True,反之,则返回False。

GetHyperLinkInfo

获取指定超链接的链接信息。
函数原型:
BOOL GetHyperLinkInfo(short nPageIndex, short nIndex, BSTR* linktype,BSTR* linkdata, L PDISPATCH* linkdest)
参数:
nPageIndex – 指定的页面
nLinkIndex – 超链接索引
linktype – 含有超链接的返回的指针
linkdata – 含有字符串数据的返回的指针
linkdest – 含有超链接重定向目的地的返回的指针
返回值:
成功则返回True,反之,则返回False。
备注:
目前,仅支持获取GoTo、GoToR、Lanuch 和URI类型链接的信息。

启用/禁用超链接。
函数原型:
Void EnableHyperLink(BOOL bEnable)
参数:
bEnable – 值为TRUE则启用超链接,值为FALSE则禁用超链接。
返回值:

8. 文本

GetPageText

从当前加载的PDF文件中提取指定页的文本内容。
函数原型:
BSTR GetPageText (long nPageIndex)
参数:
nPageIndex – 指定页面的页码
返回值:
返回提取的文本。

*GetPageTextW

从当前加载的PDF文件中提取指定页的文本内容。
函数原型:
long GetPageTextW(long nPageIndex, long FAR* pBuffer, long FAR* nBuflen)
参数:
nPageIndex – 指定页面的页码
pBuffer – 接收页面内容的缓存
nBuflen – 实际提取到的页面内容的长度
返回值:
成功返回值为-1,反之为0。

GetSelectedRectsCount

获取文本选中区域的数量。
函数原型:
long GetSelectedRectsCount()
返回值:
返回文本选中区域的总数量。

GetSelectedRectByIndex

获取指定索引的选择区域
函数原型:
long GetSelectedRectByIndex(long nIndex, long* nPageIndex, float* left, float* bottom, float* right, float* top);
参数:
nIndex – 当前选定区域的索引,索引值从0开始
nPageIndex – 选定区域所在页面的页码
Left – 选定区域左边的坐标
Bottom – 选定区域底端的坐标
Right – 选定区域右边的坐标
Top – 选定区域顶端的坐标
返回值:
成功则返回True,失败则返回False。

GetSelectedText

获取当前选中的文本。
函数原型:
BSTR GetSelectedText ();
参数:

返回值:
函数返回当前选中的文本内容。

GetSelectedTextEx

GetSelectedText函数的扩展。
函数原型:
long GetSelectedTextEx(long* pBuffer, long nBuflen);
参数:
pBuffer – 接收选定文本内容的缓存
nBufLen – 选定文本内容的长度
返回值:
返回选定文本内容的长度。

*SetSelectTextHighlightColor

设置标记选中文本的高亮颜色。
函数原型:
void SetSelectTextHighlightColor(OLE_COLOR HighLihgtColor, short Alpah);
参数:
HighLihgtColor – 标记选中文本时的高亮颜色。
Alpah – 透明度。取值范围为0到255。0表示完全透明,255表示完全不透明。
返回值:
None.

*LoadPDFTextDoc

从PDF文件中提取一个文本文档。
函数原型:
IPDFTextDoc* LoadPDFTextDoc(BSTR filePath, BSTR filePass);
参数:
filePath: PDF文件单独路径,该路径可以是一个URL地址。
filePass: PDF文件的密码。
返回值:
返回一个IPDFTextDoc对象。

*ExtractTextFromPDF

将一个PDF文件转换为txt文件。
函数原型:
BOOL ExtractTextFromPDF(BSTR sourcePath, BSTR sourcePass, BSTR destPath);
参数:
sourcePath: PDF文件的路径。
sourcePass: PDF文件的密码。
destPath: 要保存的txt文件路径。如果该文件不存在,则创建一个新的。
返回值:
成功则返回值为True,反之返回值为False。

9. 自定义用户界面

ShowTitleBar

显示或隐藏标题栏。
函数原型:
Void ShowTitleBar(BOOL bShow);
参数:
bShow – 值为FALSE,则隐藏标题栏;值为TRUE,则显示标题栏。
返回值:

ShowStatusBar

显示或隐藏状态栏。
函数原型:
Void ShowStatusBar(BOOL bShow);
参数:
bShow – 值为FALSE,则隐藏状态栏;值为TRUE,则显示状态栏。
返回值:

ShowToolBar

显示或隐藏工具栏。
函数原型:
Void ShowToolBar(BOOL bShow);
参数:
bShow – 值为FALSE,则隐藏工具栏。值为TRUE,则显示工具栏。
返回值:

ShowToolbarButton

显示或隐藏工具栏上的按钮。
函数原型:
Void ShowToolBarButton (short nIndex, BOOL bShow)
参数:
nIndex – 按钮的索引值
bShow – 值为FALSE,则隐藏该按钮;值为TRUE,则显示该按钮;
返回值:

EnableToolTip

显示或隐藏工具的提示信息。
函数原型:
BOOL EnableToolTip (BOOL bEnable)
参数:
bEnable – 值为TRUE表示显示提示信息,值为FALSE隐藏提示信息。
返回值:
返回值为True表示设置成功,反之则设置失败。

GetPanelStatus

获取整个导航栏的显示状态。
函数原型:
BOOL GetPanelStatus()
参数:

返回值:
返回值为TRUE表示导航栏为显示状态,反之表示导航栏为隐藏状态。

ShowNavPanelByString

显示指定名称的导航栏面板。
函数原型:
BOOL ShowNavPanelByString(LPCTSTR lpszPanelName)
参数:
lpszPanelName – 导航栏面板的名称,包括”Bookmarks”,”Pages”,”Layer”,”Attachments ”
返回值:
成功则返回值为TRUE,反之则返回值为FALSE。

ShowNavigationPanels

控制导航栏的显示或隐藏。
函数原型:
BOOL ShowNavigationPanels(BOOL bShow)
参数:
bShow – 值为TRUE,则显示整个导航栏。反之,则为FALSE。
返回值:
成功则返回值为True,反之则为False。

SetLayoutShowMode

设置页面显示布局的模式。
函数原型:
Void SetLayoutShowMode (BrowseMode nShowMode, short nFacingCount);
参数:
nShowMode – 可以设置如下的值:
0 = MODE_SINGLE.
1 = MODE_CONTINUOUS.
nFacingCount – 每行显示的列数
返回值:

备注:
在显示区域,可按照N*M的方式显示PDF文档。当显示布局的模式设定成MODE_SINGLE 时,在ActiveX控件的显示区域每行将只显示一页,nFacingCount的值将不起作用。当显示布局的模式设定成MODE_CONTINUOUS时,在ActiveX控件的显示区域每行将可以显示多页。

GetLayoutShowMode

获取页面显示布局的模式。
函数原型:
Void GetLayoutShowMode(short* pnShowMode, short* pnFacingCount)
参数:
pnShowMode – 返回当前的模式
pnFacingCount – 返回当前水平方向上显示页面的数量
返回值:

SetFacingCoverLeft

在双页显示模式下,调用该函数将决定PDF文档的封面是否显示在左侧。
函数原型:
Void SetFacingCoverLeft (BOOL bLeft)
参数:
bLeft – 布尔值,设定是否将封面显示在左侧。
返回值:

SetDisplayBackgroundColor

设置ActiveX控件的背景色。
函数原型:
void SetDisplayBackgroundColor(long clrArgb)
参数:
clrArgb – ActiveX控件的背景色。必须是十进制ARGB格式。
返回值:

*ShowContextMenu

显示或隐藏右键菜单
函数原型:
Void ShowContextMenu(BOOL bShow)
参数:
bShow – 是否显示右键菜单
备注:
bShow的值为TRUE,则显示右键菜单,反之,则隐藏右键菜单。

ShowTextSelectionMenu

显示或隐藏文本选择工具的右键菜单。
函数原型:
void ShowTextSelectionMenu(BOOL bShow);
参数:
bShow – 如果值为FALSE,则文本选择工具的右键菜单不显示;如果值为TRUE,则显示。
返回值:

备注:
文本选择工具调用ShowTextSelectionMenu,手形工具调用ShowContextMenu

*ShowFormFieldsMessageBar

显示或隐藏表单域信息提示栏。
函数原型:
void ShowFormFieldsMessageBar(BOOL bShow)
参数:
bShow – 如果值为FALSE,则信息提示栏不显示;如果值为TRUE,则信息提示栏显示。
返回值:

*SetSigContextMenuString

设定签名域的右键弹出菜单。
只针对使用”ESignature Tool”的未签名的签名域。。
函数原型:
void SetSigContextMenuString(BSTR string)
参数:
string – 右键菜单项。如果是多个菜单项,则通过逗号进行分隔。
返回值:
无。
备注:
必须首先调用GetPDFSignatureMgr函数,才能触发OnSigContextMenuIndex事件。

*EnableBookmarkEdit

启用书签编辑功能。
函数原型:
void EnableBookmarkEdit(boolean bEdit)
参数:
bEdit – 指定是否启用文档书签编辑功能。TRUE则启用,FALSE则不启用。
返回值:
无。

SetPagesContextMenuString

设置页面面板缩略图的右键弹出菜单。
函数原型:
void SetPagesContextMenuString(BSTR string)
参数:
String – 右键菜单项。如果是多个菜单项,则通过逗号进行分隔。
返回值:
无。

SetBookmarkContextMenuString

设置书签面板的书签编辑的右键弹出菜单。
函数原型:
void SetBookmarkContextMenuString(BSTR string)
参数:
String – 右键菜单项。如果是多个菜单项,则通过逗号进行分隔。
返回值:
无。

ShowStdBookmarkContextMenu

显示或隐藏默认的书签右键菜单。
函数原型:
void ShowStdBookmarkContextMenu(short nIndex, boolean bShow)
参数:
nIndex – 默认书签右键菜单的索引值。从1开始。
bShow – 指定是否显示右键菜单。
返回值:
无。

ShowStdPagesContextMenu

显示或隐藏默认的页面右键菜单。
函数原型:
void ShowStdPagesContextMenu(short nIndex, boolean bShow)
参数:
nIndex – 默认页面右键菜单的索引值。从1开始。
bShow – 指定是否显示右键菜单。
返回值:
无。

10. 打印

PrintWithDialog

打印PDF文档时弹出打印对话框。
函数原型:
Void PrintWithDialog();
参数:

返回值:

OpenMemFileForPrinter

直接对内存中的PDF文件进行打印,但不显示该PDF文件。
函数原型:
IPDFPrinter* OpenMemFileForPrinter(long long buffer, long size)
参数:
Buffer – 内存中PDF文件的数据。
Size – 缓存中数据的长度。
返回值:
函数返回一个IPDFPrinter类的实例,以便对打印机进行控制。

OpenFileForPrinter

直接打开一个PDF文件并进行打印,但不显示该PDF文件。
函数原型:
IPDFPrinter* OpenFileForPrinter(BSTR file_path)
参数:
file_path – PDF文件的路径(包括文件的扩展名)
返回值:
函数返回一个IPDFPrinter类的实例,以便对打印机进行控制。

*OpenFileForPrinterEx

静默打印一个带有密码加密的PDF文件。
函数原型:
IPDFPrinter* OpenFileForPrinterEx(BSTR file_path, BSTR password);
参数:
file_path – PDF文件路径。
password – PDF文件的密码。如果该文件没有密码,则其为空字符串。
返回值:
函数返回一个IPDFPrinter类的实例,以便对打印机进行控制。

*PrintPopupAnnot

设置是否打印当前PDF文档中的标注弹出框。
函数原型:
void PrintPopupAnnot(BOOL bPrint)
参数:
bPrint – 指定是否打印当前PDF文档中的标注弹出框。TRUE则打印,FALSE则不打印。
返回值:
None

11. 搜索

FindFirst

在PDF文档中搜索一个字符串。如果PDF页面包含搜索的字符串,则跳转到那个页面,并自动更新CurPage属性值,高亮页面上的字符串,返回值为TRUE,反之返回值为False。
函数原型:
BOOL FindFirst (BSTR search_string, BOOL bMatchCase, BOOL bMatchWholeWord)
参数:
SearchString – 要搜索的字符串
BMatchCase – 是否区分大小写
BMatchWholeWord – 是否匹配整个字符串
返回值:
如果文档中存在搜索的字符串,则返回非零值,反之,返回0。

FindFirstEx

FindFirst方法的扩展。提供在PDF文档中进行搜索的接口。
函数原型:
BOOL FindFirstEx(const VARIANT FAR& search_string, BOOL bMatchCase,
BOOL bMatchWholeWord)
参数:
Search_string – 要搜索的字符串
bMatchCase – 是否区分大小写
bMatchWholeWord – 是否匹配整个字符串
返回值:
如果文档中存在搜索的字符串,则返回非零值,反之,返回0。

FindNext

在整个PDF文档中搜索下一个与给定字符串相匹配的文本内容。如果找到下一个,则直接跳转到那个页面,自动更新CurPage属性值,并高亮页面中匹配的内容,函数返回值为True。反之,函数返回值为False。需要注意的是,FindNext的搜索条件与FindFirst方法相同,也包括是否区分大小写,是否匹配整个字符串。如果函数参数值为true,则向文档尾部方向继续搜索,如果函数参数值为false,则向文档开始方向进行搜索。
函数原型:
BOOL FindNext (BOOL bSearchDown);
参数:
bSearchDown – 搜索方向。设置为True,向文档尾部方向;设置为False,向文档开始方向。
返回值:
如果找到下一个匹配的内容,则返回值为非零,反之返回值等于零。

FindFileFirst

在一个PDF文件中搜索指定的字符串,如果文件中包含指定的字符串则返回一个IFindResult接口的实例,否则反之值为NULL。该方法允许在不打开文件的情况下直接进行搜索。例如,想要在一个目录中对所有的PDF文件进行关键字搜索,只需循环遍历目录中的每一个PDF文件,对每一个文件的内容进行关键字搜索即可。如果在一个PDF文件中找到与之相匹配的内容,函数的返回值是一个包含相关细节的IFindResult接口类的示例。然后,调用GoToSearchResult打开文件,自动跳转到相应的页面并高亮页面中匹配的内容。
函数原型:
IFindResult* FindFileFirst(BSTR file_path, BSTR search_string,BOOL bMatchCase, BOOL bMatchWholeWord)
参数:
file_path – PDF文件的完整路径
search_string – 想要搜索的字符串
bmatchCase – 是否区分大小写
BMatchWholeWord – 是否全字匹配
返回值:
如果找到匹配的内容,则返回一个IFindResult接口类实例,否则返回NULL。

FindFileFirstEx

对FindFileFirst方法的扩展。
函数原型:
IFindResult * FindFileFirstEx(BSTR file_path, BSTR password, VARIANT search_string, boolean bMatchCase, boolean bMatchWholeWord);
参数:
file_path – PDF文件的完整路径
Password – PDF文件的密码
search_string – 想要搜索的字符串
bMatchCase – 是否区分大小写
BMatchWholeWord – 是否全字匹配.
返回值:
如果找到匹配的内容,则返回一个IFindResult接口类实例,否则返回NULL。

FindFileNext

按照FindFileFirst指定的搜索条件,继续搜索并定位到下一个符合条件的结果。
函数原型:
IFindResult * FindFileNext ();
参数:

返回值:
如果找到下一个符合条件的结果,则返回一个IFindResult接口类实例,否则返回NULL。

GoToSearchResult

显示并高亮搜索结果。
函数原型:
void GoToSearchResult (IFindResult* findresult);
参数:
Findresult – 一个从FindFileFirstFindFileNext返回的IFindResult接口类的实例
返回值:

FindPageNext

搜索下一个实例。
函数原型:
IFindResult* FindPageNext()
参数:

返回值:
成功则返回IFindResult接口类实例,反之则返回NULL。
备注:
首次搜索时调用FindPageFirst函数,然后调用FindPageNext()接收下一个搜索结果。

FindClose

释放FindMemFileFirst当中分配的内存。
函数原型:
Void FindClose()

FindPageFirst

在页面中搜索第一个实例。
函数原型:
IFindResult* FindPageFirst(long nPageIndex, BSTR search_string,BOOL bMatchCase, BOOL bMatchWholeWord)
参数:
nPageIndex – PDF 页面索引,起始页为0。
Search_string – 所要查找的字符串
bMatchCase – 搜索字符串是否区分大小写
bMatchWholeWord – 搜索字符串是否全词匹配
返回值:
成功则返回IFindResult接口类实例,反之则返回NULL。

FindMemFileFirst

在内存当中查找文件
函数原型:
IFindResult* FindMemFileFirst(VARIANT buffer, long fileSize, BSTR password, BSTR search_string, BOOL bMatchCase, BOOL bMatchWholeWord)
参数:
Buffer – PDF的文件数据
fileSize – PDF的文件大小
Password – PDF的文件打开密码
Search_string – 所要查找的字符串
bMatchCase – 匹配大小写
bMatchWholeWord – 匹配完整关键字

*SetSearchHighlightFillColor

设置标记搜索匹配结果的高亮颜色。
函数原型:
void SetSearchHighlightFillColor(OLE_COLOR FillColor, short Alpha)
参数:
FillColor – 标记搜索匹配结果的高亮颜色。
Alpah – 透明度。取值范围为0到255。0表示完全透明,255表示完全不透明。
返回值:

*SearchAndHighlightAllTextOnPage

在指定的页面上搜索关键字,并高亮所有符合条件的结果。
函数原型:
Void SearchAndHighlightAllTextOnPage(BSTR searchstring, BOOL bMatchCase, BOOL bMatchWholeWord,long PageNo);
参数:
PageNo – 要搜索的页面
返回值:

ShowSearchNotFoundPrompt

显示或隐藏提示对话框(针对没有搜索到匹配字符时)。
函数原型:
void ShowSearchNotFoundPrompt (boolean bShow)
参数:
bShow – 指定在没有搜索到匹配字符时是否显示提示对话框。
返回值:

备注:
仅针对FindFirst函数显示或隐藏”No matches were found”。

12. 安全

GetDocPermissions

获取PDF文件的权限控制标识。
函数原型:
long GetDocPermissions ()
参数:

返回值:
返回值是一个32位的整型数,详情请参照PDF规范。如果文档不存在权限控制,则返回值是0xffffffff。

* CheckOwnerPassword

判断文档的所有者密码(文档修改密码)是否正确。
函数原型:
BOOL CheckOwnerPassword(BSTR lpszPermPsw)
参数:
lpszPermPsw – 输入文档的所有者密码(文档修改密码)用来进行校验
返回值:
成功则返回True,反之返回False。

*SetUserPassword

为当前的PDF文件设置打开密码。
函数原型:
BOOL SetUserPassword(LPCTSTR lpszNewValue)
参数:
lpszNewValue – 设置的新的打开密码字符串
返回值:
成功则返回True,反之返回False。

*SetOwnerPassword

为当前的PDF文件设置所有者密码(文档修改密码)。
函数原型:
BOOL SetOwnerPassword(LPCTSTR lpszNewValue)
参数:
lpszNewValue – 设置的新的所有者密码(文档修改密码)字符串
返回值:
成功则返回True,反之返回False。

*SetUserPermission

设置当前PDF文件的权限控制。
函数原型:
BOOL SetUserPermission(long dwPermission)
参数:
dwPermission – 权限控制标识
返回值:
成功则返回True,反之返回False。

13. JS脚本

* RunJScript

运行JavaScritp脚本。
函数原型:
void RunJScript(LPCTSTR csJS)
参数:
scJS – 指定待运行的JavaScript脚本
返回值:

*ShowDocJsDialog

弹出文档Javascript对话框
函数原型:
void ShowDocJsDialog();
参数:

返回值:

*ShowJsConsoleDialog

弹出Javascript控制台对话框。
函数原型:
void ShowJsConsoleDialog();
参数:

返回值:

DisableJavaScript

启用或禁用JavaScript。
函数原型:
void DisableJavaScript(bool bDisable);
参数:
bDisable – 指定是否启用JavaScript。TRUE则启用,FALSE则禁用。
返回值:

EnableSafeMode

启用或禁用安全模式
函数原型:
void EnableSafeMode(bool bEnable);
参数:
bEnable – 指定是否启用安全模式。TRUE则启用,FALSE则禁用。
返回值:

14. 多实例

SetCurrentWnd

当ActiveX在多实例情况下,通过该函数可设置当前的实例。
函数原型:
Void SetCurrentWnd(long hWnd);
参数:
hWnd – OCX实例的窗口句柄
返回值:

GetCurrentWnd

获取当前窗口的句柄。
函数原型:
Long GetCurrentWnd();
参数:

返回值:
成功则返回当前窗口句柄,反之返回值等于NULL。

GetCtrlInstance

获取控件实例句柄。
函数原型:
Long GetCtrlInstance ();
参数:

返回值:
成功则返回控件实例句柄,反之返回NULL。

15. 页面管理

GetPageRotation

获取指定PDF页面的旋转值。
函数原型:
long GetPageRotation(long page_index)
参数:
page_index – PDF页面的索引值
返回值:
返回页面旋转值。可能的值如下:
0 – 0
1 – 90
2 – 180
3 – 270

*InsertNewPage

在当前PDF文件的指定位置插入空白页。
函数原型:
Boolean InsertNewPage(long nPageIndex, long nPageWidth, long nPageHeight);
参数:
nPageIndex – 待插入的新空白PDF页的页码
nPageWidth – 待插入的新空白PDF页的页面宽度
nPageHeight – 待插入的新空白PDF页的页面高度
返回值:
成功则返回TRUE,反之则返回FALSE。

*InsertPage

在当前PDF文件中插入指定页面。
函数原型:
boolean InsertPage(long nInsertAt, BSTR lpszPDFFileName, BSTR lpszPssword, BSTR lpszPageRangeString);
参数:
nInsertAt – 插入新PDF页面的位置-在指定的当前PDF页面的前面
lpszPDFFileName – 待插入页面所在的PDF文件的路径
lpszPssword – 源PDF文件密码
lpszPageRangeString – 源PDF文件中指定插入页面的页码范围
返回值:
成功则返回True,反之则返回False。

*DeletePage

删除当前PDF文件中的页面。
函数原型:
boolean DeletePage(long pageIndex, long count);
参数:
pageIndex – 待删除页面的起始页页码
count – 待删除页面的总页数
返回值:
成功则返回True,反之则返回False。

*SwapPage

交换当前PDF文件的两个页面的位置。
函数原型:
boolean SwapPage(long pageIndex1, long pageIndex2);
参数:
pageIndex1 – 交换的页码
pageIndex2 – 交换的页码
返回值:
成功则返回True,反之则返回False。

*SetPageIndex

为当前PDF文档中指定的页面设置一个新的页码,即改变其位置。
函数原型:
boolean SetPageIndex (long pageOldIndex, long pageNewIndex);
参数:
pageOldIndex – 原页面号
pageNewIndex – 新页面号
返回值:
成功则返回 True,反之则返回False。

*SetPageCropBox

通过设置剪切区域,裁剪当前PDF文件中指定的页面。
函数原型:
boolean SetPageCropBox(long pageIndex, float left, float top, float right, float bottom);
参数:
pageIndex – 指定剪切的PDF页的页码
left – 页面左上角的水平坐标
top – 页面左上角的垂直坐标
right – 页面右下角的水平坐标
bottom – 页面右下角的垂直坐标
返回值:
成功则返回 True,反之则返回False。

* SetPageRotate

旋转当前PDF文件中的指定页面。
函数原型:
boolean SetPageRotate(long pageIndex, long rotate);
参数:
pageIndex – 指定旋转的PDF页的页码
rotate – 设置顺时针旋转的角度
返回值:
成功则返回True,反之则返回False。

*FlattenPage

页面扁平化
函数原型:
boolean FlattenPage(long pageIndex);
参数:
pageIndex – 页码
返回值:
成功则返回True,反之则返回False。

*ExportPagesToPDF

将当前PDF文档中的指定页面导出为一个新的PDF文件。
函数原型:
BOOL ExportPagesToPDF (BSTR lpszPDFFileName, BSTR lpszPageRangeString);
参数:
lpszPDFFileName – 新的PDF文件的路径
lpszPageRangeString – 指定页码范围,格式包括 “0, 2, 3-5”, 不能指定为逆序,例如”5-2″。也就是说,破折号前面的值不能大于破折号后面的值。
返回值:
成功则返回True,反之则返回False。

*ImportImageToPdf

在指定的PDF文件中导入图片。
函数原型:
BOOL ImportImageToPdf(LPCTSTR pdfFilePath, long index, LPCTSTR imageFilePath)
参数:
pdfFilePath – PDF文件的路径
index – PDF文件中要导入图片文件的页码
imageFilePath – 图片文件的路径
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
支持插入6种类型的图片:bmp, jpg, png, tif, gif 和 jpx.

*AddImageObject

将图片插入到文档中。
函数原型:
BOOL AddImageObject (long nPageIndex, float left, float bottom, float width,
float height, BSTR BmpFileName, short alpha, short rotate);
参数:
nPageIndex – 要插入图片的页码
left – 插入图片的水平坐标,坐标原点是左下角
bottom – 插入图片的垂直坐标,坐标原点是左下角
width – 图片在PDF文档中的的显示宽度
height – 图片在PDF文档中的显示高度
BmpFileName – 待插入图片的路径
alpha – 一个0到255之间的数字,表示图片显示的透明度
rotate – 图片的旋转度数
返回值:
函数返回值指明图片插入是否成功。

*ConvertPDFPageToImage

将指定PDF页面转换成图片。
函数原型:
BOOL ConvertPDFPageToImage(LPCTSTR pdfFile, long lnPageIndex, LPCTSTR imageFilePath, long lnImageWidth, long lnImageHeight)
参数:
pdfFile – PDF文档路径
lnPageIndex – 指定页面索引
imageFilePath – 图像文件的保存路径,支持6种类型的图片:bmp, jpg, png, tif, gif 和 jpx.
lnImageWidth – 转换的图片宽度
lnImageHeight – 转换的图片高度
返回值:
成功则返回TRUE,反之则返回FALSE。

16. 异步操作

OpenFileAsync

主要用于打开线性化PDF文档。可在B/S构架中快速下载并渲染PDF数据。
函数原型:
BOOL OpenFileAsync(LPCTSTR strURL, LPCTSTR strPDFPassword, LPCTSTR strUserName, LPCTSTR strUserPassword)
参数:
strURL – PDF文档的URL下载地址,可以FTP和HTTP类型;
strPDFPassword – PDF文档的打开密码,如果无密码,则值为空;
strUserName – FTP服务器的登陆用户名,如果不需要,则值为空;
strUserPassword – FTP服务器的登陆密码,如果不需要密码,则值为空。
返回值:
调用成功则返回TRUE,反之返回FALSE。

*SetAsyncFileLen

设置将通过异步方式加载的HTTP服务器上的文件的长度。
函数原型:
void SetAsyncFileLen (long lnSize);
参数:
lnSize: 文件大小。
返回值:
无。
备注:
*SetAsyncFileLen 需要和 *SetAsyncFileData, *OpenAsyncFile 以及*OnFetchAsyncFileData同时使用。

*SetAsyncFileData

设置以异步加载的方式打开的文件的数据。
函数原型:
void SetAsyncFileData(long lnFileBuffer, long offset, long size);
参数:
lnFileBuffer – 所需文件数据的内存地址。
offset – 所需数据的偏移量。
Size – 所需数据的大小。
返回值:
无。
备注:
*SetAsyncFileData需要和*SetAsyncFileLen, *OpenAsyncFile 以及*OnFetchAsyncFileData同时使用。

*OpenAsyncFile

异步打开HTTP服务器上的文件。
函数原型:
void OpenAsyncFile(LPCTSTR strPDFPassword):
参数:
strPDFPassword: PDF文件的密码。
返回值:
无。
备注:
*OpenAsyncFile需要和*SetAsyncFileData, *SetAsyncFileLen, 以及*OnFetchAsyncFileData同时使用。

17. 书签

GetOutlineFirstChild

获取大纲目录树中某个节点的第一个子节点。
函数原型:
IPDFOutline* GetOutlineFirstChild( IPDFOutline* Outline)
参数:
Outline – 大纲目录树中的某一个节点。如果想获取大纲目录树的根节点,则该参数为NULL。
返回值:
如果该节点存在子节点,则返回第一个子节点,反之则返回值为空。

GetOutlineNextSibling

获取大纲目录树中某个节点的下一个兄弟节点。
函数原型:
IPDFOutline* GetOutlineNextSibling ( IPDFOutline* Outline)
参数:
Outline – 大纲目录树中的某一个节点。
返回值:
如果该节点存在下一个兄弟节点,则返回该兄弟节点,反之返回值为空。

InsertOutline

创建一个新的大纲节点,并插入到指定的大纲目录树中。
函数原型:
IPDFOutline InsertOutline( IPDFOutline* parent, IPDFOutline* insertAfter, BSTR title, long zoom_mode, long page_index, float left, float top, float right, float bottom, float zoom_factor);
参数:
parent – 待创建的新节点的父节点。可以为NULL,如果insertAfter为NULL,该节点则为大纲树的第一个节点。
insertAfter – 插入新节点的位置-在指定的当前节点的后面。
title – 新节点的标题。
zoom_mode – 缩放模式。参考ZoomMode的值,必须为其中的一种。
page_index – 新节点所指向的PDF页面。
left – 矩形的左侧坐标。
top – 矩形的顶部坐标。
right – 矩形的右侧坐标。
bottom – 矩形的底部坐标。
zoom_factor – 缩放因子值。
返回值:
如果成功才返回该新节点,反之则返回NULL。

RemoveOutline

删除现有的大纲节点。
函数原型:
BOOL RemoveOutline(IPDFOutline* outline);
参数:
outline – 指定需要删除的大纲节点。
返回值:
成功则返回TRUE,反之则返回FALSE。

18. 表单

*ExportFormToFDFFile

将PDF表单数据从当前打开的文档中导出,并保存为一个独立的FDF文件。
函数原型:
BOOL ExportFormToFDFFile (BSTR FDFFileName)
参数:
FDFFileName – 导出的PDF表单数据形成的FDF文件的路径。
返回值:
成功则返回TRUE,反之则返回FALSE。

*ImportFormFromFDFFile

将PDF表单数据从FDF文件导入到当前打开的文档中。
函数原型:
BOOL ImportFormFromFDFFile(BSTR FDFFileName)
参数:
FDFFileName – 要导入到当前PDF文档的源表单数据FDF文件路径。
返回值:
成功则返回TRUE,反之则返回FALSE。

*FindFormFieldsTextFirst

在表单域中进行文本搜索
函数原型:
BOOL FindFormFieldsTextFirst (BSTR searchstring, BOOL bMatchCase);
参数:
Searchstring – 想要搜索的字符串
bMatchCase – 是否区分大小写
返回值:
函数返回值指明是否存在相同的字符串。

*FindFormFieldsTextNext

在表单域中继续进行文本搜索
函数原型:
BOOL FindFormFieldsTextNext ()
参数:

返回值:
函数返回值指明是否依然存在相同的字符串。

* SubmitForm

将PDF表单提交到指定的位置。
函数原型:
BOOL SubmitForm(BSTR csDestination)
参数:
csDestination – 指定的URL地址
返回值:
执行成功则返回 TRUE,反之返回FALSE。

#GetCurrentForm

获取一个操作表单接口的句柄。只有通过表单接口才能实现添加PDF表单元素的功能。
函数原型:
IPDFForm* GetCurrentForm()
参数:

返回值:
执行成功则返回表单接口的句柄,反之返回值等于NULL。

19. 注释

ForceRefresh

函数原型:
Void ForceRefresh()
备注:
该函数用于提高高亮显示的效率。在旧版本中,用户每添加一次高亮文本,页面就会刷新一次,若用户多次添加高亮文本,则页面将会多次刷新,这就降低了显示效率。从5.0版本开始,我们将高亮功能的添加和刷新动作进行分离,即在用户完成高亮添加后再调用ForceRefresh函数刷新页面。

*Highlight

在指定的文档页面上,将选定的矩形区域进行高亮。
函数原型:
void Highlight(long nPageIndex, float left, float top, float right, float bottom)
参数:
nPageIndex – 待高亮区域页面的页码
left – 指定矩形区域的左上角的水平坐标
top – 指定矩形区域的左上角的垂直坐标
right – 指定矩形区域的右下角的水平坐标
bottom – 指定矩形区域的右下角的垂直坐标
返回值:

*RemoveAllHighlight

移除当前打开的PDF文档中所有的高亮。
函数原型:
void RemoveAllHighlight()
参数:

返回值:

*ImportAnnotsFromFDFFile

将批注数据从FDF文件导入到当前打开的文档中。
函数原型:
BOOL ImportAnnotsFromFDFFile(BSTR FDFFileName)
参数:
FDFFileName – 进行批注数据导入的源FDF文件路径
返回值:
成功则返回TRUE,反之则返回FALSE。

*ImportAnnotsFromFDFFileEx

将批注数据从FDF文件导入到指定的PDF页面中。
函数原型:
BOOL ExportAnnotsToFDFFileEx(long PageIndex, BSTR FDFFileName)
参数:
PageIndex – 批注数据将到导入的PDF页面索引
FDFFileName – 进行批注数据导入的源FDF文件路径
返回值:
成功则返回TRUE,反之则返回FALSE。

*ExportAnnotsToFDFFile

将批注从当前打开的文档中导出,批注数据保存为一个独立的FDF文件。
函数原型:
BOOL ExportAnnotsToFDFFile(BSTR FDFFileName)
参数:
FDFFileName – 导出的批注数据FDF文件的路径
返回值:
成功则返回TRUE,反之则返回FALSE。

*ExportAnnotsToFDFFileEx

将指定PDF页面的批注导出,批注数据保存为一个独立的FDF文件。
函数原型:
BOOL ExportAnnotsToFDFFileEx(long PageIndex, BSTR FDFFileName)
参数:
PageIndex – 指定导出批注的PDF页面索引
FDFFileName – 导出的批注数据FDF文件的路径
返回值:
成功则返回TRUE,反之则返回FALSE。

*SetBDrawAnnot

设定在显示PDF页面时,批注是否显示
函数原型:
Void SetBDrawAnnot(BOOL bDrawAnnot);
参数:
bDrawAnnot – 参数值为true表示显示批注。参数值为false表示隐藏批注。
返回值:

*ShowAllPopup

显示所有批注的弹出框。
函数原型:
Void ShowAllPopup (BOOL bShow);
参数:
bShow – 参数值为true时,显示所有批注的弹出框。
返回值:

*ReleasePageAnnots

释放从GetPageAnnots函数获取的批注对象。
函数原型:
void ReleasePageAnnots(IPDFPageAnnots* pageAnnots)
参数:
pageAnnots – 页面批注对象。
返回值:

*SetAnnotDefaultProperties

为铅笔批注设置默认的属性。
函数原型:
void SetAnnotDefaultProperties(BSTR string)
参数:
string – 铅笔批注对象的属性信息。
返回值:

示例代码:
axFoxitPDFSDK1.SetAnnotDefaultProperties(“Type=Ink, Thickness=2, Color=255, Opacity=100, Author=Administrator”);
axFoxitPDFSDK1.CurrentTool = “Pencil Tool”;
备注:颜色的类型是十进制,并且取值范围为0-16777215(#FFFFFF)。

^GetPageAnnots

获取指定页面中的注释信息。
函数原型:
IPDFPageAnnots* GetPageAnnots(long pageIndex)
参数:
pageIndex – 指定PDF页面的页码以获取其注释信息
返回值:
成功则返回IPDFPageAnnots对象,该对象中包含页面所有的注释信息;反之则返回NULL。

^GetFormatTool

获取FormatTool的句柄。
函数原型:
IPDFormatTool* GetFormatTool ()
参数:

返回值:
如果成功,返回值为IPDFormatTool对象。失败则返回值为NULL。

*ChangePencilToolCursor

修改铅笔工具的光标。
函数原型:
BOOL ChangePencilToolCursor(BSTR imageFilePath)
参数:
imageFilePath – 用来创建光标的源文件数据。该数据必须是.CUR或者.ANI格式。
返回值:
成功则返回TRUE,反之则返回FALSE。

20. 电子签章

电子签章

&GetPDFSignatureMgr

函数原型:
IPDFSignatureMgr* GetPDFSignatureMgr();
返回值:
返回PDFSignatureMgr类型。

&GetLastSigModuleError

获取签章接口最后返回的错误索引
函数原型:
long GetLastSigModuleError()
返回值:
签章接口最后返回的错误索引
0 – 成功
1 – 参数错误
2 – 状态错误
3 – 执行错误
4 – 证书不存在

&GetLastSigModuleErrMsg

获取签章接口最后返回的错误提示
函数原型:
BSTR GetLastSigModuleErrMsg()
返回值:
签章接口最后返回的错误提示。

21. 其他

*AddPrintMark

打印时,在PDF页面添加文本水印。
函数原型:
BOOL AddPrintMark(BSTR string, float center_x, float center_y, BSTR fontname, short lfCharSet, short fontsize, OLE_COLOR fontcolor, short textmode, short alpha, short rotate)
参数:
string – 水印文本
center_x – X坐标,PDF页面坐标系中。
center_y – Y坐标,PDF页面坐标系中。
fontname – 水印文本的字体
lfCharSet – 水印文本的字符编码。预定义值列表如下:
ANSI_CHARSET,
BALTIC_CHARSET,
CHINESEBIG5_CHARSET,
DEFAULT_CHARSET (基于操作系统),
EASTEUROPE_CHARSET,
GB2312_CHARSET,
GREEK_CHARSET,
HANGUL_CHARSET,
MAC_CHARSET,
OEM_CHARSET (基于操作系统),
RUSSIAN_CHARSET,
SHIFTJIS_CHARSET,
SYMBOL_CHARSET,
TURKISH_CHARSET,
fontsize – 水印文本的字体大小
fontcolor – 水印文本的字体颜色
textmode – 水印文本的模式。其值必须为0,1或者2.
0 – 填充文本
1 – 描边文本
2 – 填充,描边文本
alpha – 文本水印的透明度。取值范围为0-255。0表示 透明,255表示完全不透明。
rotate – 文本水印的旋转度
返回值:
成功则返回TRUE,反之则返回FALSE。

*UploadCurFileToFTP

将当前的PDF文件上传到一个FTP服务器。
函数原型:
BOOL UploadCurFileToFTP(BSTR ftpName, BSTR userName, BSTR userPassword, long port, BSTR FilePath);
参数:
ftpName – FTP服务器名称
userName – FTP 服务器登录用户名
userPassword – FTP 服务器登录密码
port – FTP服务器端口
filePath  – FTP文件路径
返回值:
如果PDF文件上传成功则返回一个非零值,反之返回值为零。

*IsDualPage

判断PDF文档的页面是否是双层的。
函数原型:
BOOL IsDualPage(short pageIndex);
参数:
pageIndex – 指定的页码
返回值:
返回值指明该PDF页面是否是双层的。双层的意思是PDF页面包含一个图片和与图片对应的隐藏的文本。

*AddWaterMark

将一个文本型水印插入到文档中。
函数原型:
BOOL AddWaterMark (short page, BSTR string, float left, float bottom, short fontsize, OLE_COLOR fontcolor, short textmode, short alpha, short rotate);
参数:
Page – 要插入水印的页码
String – 水印的内容
Left – 插入水印的水平坐标
Bottom – 插入水印的垂直坐标
Fontsize – 水印文本的字体大小
Fontcolor – 水印文本的字体颜色
Textmode – 值只能是 0、1、2
0:表示填充文本
1:表示绘制文本边框
2:表示同时绘制边框和填充文本
alpha – 一个0到255之间的数字,表示透明度
rotate – 水印旋转的角度
返回值:
函数返回值指明添加水印是否成功。

*GetBitmap

将PDF的页面渲染为一张图片。
函数原型:
long GetBitmap(short nPageIndex, long pixelWidth, long pixelHeight, float rectLeft, float rectTop, loat rectRight, float rectBottom, long PixelFormat);
参数:
nPageIndex – 指定进行渲染的页面页码
pixelWidth – 形成的图片的宽度
pixelHeight – 形成的图片的高度
rectLeft – 设备坐标系中显示区域左边的像素位置
rectTop – 设备坐标系中显示区域上方的像素位置
rectRight – 设备坐标系中显示区域右边的像素位置
rectBottom – 设备坐标系中显示区域下方的像素位置
PixelFormat – 形成的图片的像素格式
返回值:
返回值为图片的句柄。

* GetBarcodeBitmap

将字符串转换为条形码图片。
函数原型:
Long GetBarcodeBitmap(BSTR contents, short format, long moduleHSize, long moduleVSize, short ecLevel);
参数:
Contents: 将被转换的内容。
Format: 编码格式,包括如下所列:
UNSPECIFY = -1
CODE_39 = 1
CODE_128 = 3
EAN_8 = 6
UPC_A = 7
EAN_13 = 8
ITF = 9
如果选择的是ITF,则字符串的长度必须是8、10、12、16、20、24、44中的一个。
QR_CODE = 15
moduleHSize: 图片的宽度。
moduleVSize: 图片的高度。
ecLevel: 交错级别。该参数只对QR码有效。
ECLEVEL_L = 0
ECLEVEL_M = 1
ECLEVEL_Q = 2
ECLEVEL_H = 3
返回值:
成功则返回一个二位的图片,反之的返回值为NULL。

*SetContextMenuString

设置右键菜单项的字符名称
函数原型:
Void SetContextMenuString(BSTR string);
参数:
string – 右键菜单项的字符名称
返回值:

备注:
该方法可以同OnContextMenuIndex一起使用。

*ShouldAlwaysShowPopupRope

是否一直显示标注弹出框。
函数原型:
void ShouldAlwaysShowPopupRope(BOOL bShow);
参数:
bShow – 是否一直显示标注弹出框。一直显示为TRUE,反之为FALSE。
返回值:

*SetPopupRopeDefaultOpacity

设置标注弹出框的默认不透明度。
函数原型:
void SetPopupRopeDefaultOpacity (float opacity);
参数:
opacity – 取值范围为0.0到1.0
返回值:

*SetPopupWindowDefaultDistance

设置标注和其弹出框的默认距离。
函数原型:
void SetPopupWindowDefaultDistance(int distance);
参数:
distance – 指定的默认距离值
返回值:

*SetPopupWindowDefaultSize

设置标注弹出框的默认窗口大小。
函数原型:
void SetPopupWindowDefaultSize(int width, int height);
参数:
width – 标注弹出框窗口的宽度,单位为像素
height – 标注弹出框窗口的高度,单位为像素
返回值:

*GetReturnFromJSFunction

获取JavaScript函数的字符串类型返回值。
函数原型:
BSTR GetReturnFromJSFunction(BSTR csJSFunction, BOOL *isSuccess);
参数:
csJSFunction – JavaScript代码,用来调用一个JS函数,如”Func();”
isSuccess – 运行结果是否成功
返回值:
JavaScript函数的字符串类型的返回值。
备注:
JavaScript函数必须在JavaScript运行上下文中已经定义,否则该API将会运行失败。

GetPageMode

获取文档的页面模式。
函数原型:
BSTR GetPageMode();
参数:
None
返回值:
UseNone: 文档大纲目录和缩略图不可见
UseOutlines: 文档大纲目录可见
UseThumbs: 缩略图可见
FullScreen: 全屏模式,没有菜单栏,窗口控件,或者任何其他的窗口
UseOC: 可选的内容组合面板可见
UseAttachments: 附件面板可见

GetPageLayout

获取文档的页面布局。
函数原型:
BSTR GetPageLayout();
参数:
None
返回值:
SinglePage: 单页模式
OneColumn: 以单列的形式显示PDF页面
TwoColumnLeft: 以两列的形式显示PDF页面,奇数页在左边
TwoColumnRight: 以两列的形式显示PDF页面,奇数页在右边
TwoPageLeft: 双页显示,奇数页在左边
TwoPageRight: 双页显示,奇数页在右边

GetOpenActionInfo

获取文档的打开行为。
函数原型:
BOOL GetOpenActionInfo(short FAR* nPageIndex,short FAR* nZoomLevel);
参数:
nPageIndex – [输出值]当前PDF页面的索引
nZoomLevel – [输出值]页面预览的缩放系数
0 实际大小

  1. 适应页面
  2. 适应宽度
  3. 适应高度

10~1600 缩放系数
返回值:
成功则返回TRUE,反之则返回FALSE。

GetViewerPreferencesHideToolbar

获取阅读器偏好的”HideToolbar”标签。该标签表示在文档处于活动状态时是否隐藏阅读器应用程序的工具栏。
函数原型:
BOOL GetViewerPreferencesHideToolbar();
参数:
None
返回值:
返回阅读器偏好的”HideToolbar”标签。

GetViewerPreferencesHideMenubar

获取阅读器偏好的”HideMenubar”标签。该标签表示在文档处于活动状态时是否隐藏阅读器应用程序的菜单栏。
函数原型:
BOOL GetViewerPreferencesHideMenubar();
参数:
None
返回值:
返回阅读器偏好的”HideMenubar”标签。

*RemoveImagesOnPageRect

删除页面中指定矩形区域内的所有图片对象。
函数原型:
BOOL RemoveImagesOnPageRect(long nPageIndex, float fLeft, float fBottom, float fRight, float fTop);
参数:
nPageIndex – 指定PDF页面的索引,0表示第一页。
fLeft – 指定矩形区域的左上角的水平坐标,PDF坐标系统
fBottom – 指定矩形区域的右下角的垂直坐标,PDF坐标系统
fRight – 指定矩形区域的右下角的水平坐标,PDF坐标系统
fTop – 指定矩形区域的左上角的垂直坐标,PDF坐标系统
返回值:
成功则返回True,反之返回False。

*RemoveNavPanelByString

从ActiveX控件的左侧面板中删除指定的导航面板。
函数原型:
boolean RemoveNavPanelByString(BSTR lpszPanelName);
参数:
lpszPanelName – 面板名称。包括”书签”,”页面”,”层”,”附件”和”签名”面板。
返回值:
成功则返回True,反之返回False。

*ShowAboutBox

在右键菜单中显示或者隐藏”关于”对话框菜单项。
函数原型:
void ShowAboutBox(BOOL bShow)
参数:
bShow – 指定是否在右键菜单中显示”关于”对话框菜单项
返回值:

*ExpandNavigationPanels

展开或收起导航面板。
函数原型:
void ExpandNavigationPanels()
参数:

返回值:

*GetViewerPreferencesBoolean

获取Viewer Preference字典项中对应name的布尔值。
函数原型:
BOOL GetViewerPreferencesBoolean(LPCTSTR name)
参数:
name – 字典项的name
返回值:
返回字典项中对应name的布尔值。

*GetViewerPreferencesName

获取Viewer Preference字典项中对应name的值。
函数原型:
BSTR GetViewerPreferencesName(LPCTSTR name)
参数:
name – 字典项的name
返回值:
返回特定字典项对应的值。

事件

OnDrawCtrlBackground

在开始绘制ActiveX控件视图的背景时触发的事件。
函数原型:
void OnDrawCtrlBackground(long dc, long left, long top, long right, long bottom);
参数:
dc – Windows渲染设备上下文句柄(HDC)
left – 左下角坐标,ActiveX控件的窗口坐标
top – 左上角坐标,ActiveX控件的窗口坐标
right – 右上角坐标,ActiveX控件的窗口坐标
bottom – 右下角坐标,ActiveX控件的窗口坐标
参数:
None

BeforeDraw

在开始绘制显示内容之前触发的事件。
函数原型:
Void BeforeDraw (long dc)
参数:
dc – 设备上下文相关的句柄

AfterDraw

在完成显示内容绘制之后触发的事件。
函数原型:
Void AfterDraw (long dc)
参数:
dc – 设备上下文相关的句柄

OnZoomChange

当Zoomlevel属性发生变化的时候触发该事件。
函数原型:
Void OnZoomChange ()
参数:

OnPageChange

当显示的页面发生变化时触发该事件。比如翻页、页面跳转等操作都会触发该事件。
函数原型:
Void OnPageChange ()
参数:

OnOpenPassword

当试图打开一个包含密码的PDF文件时触发该事件。
函数原型:
Void OnOpenPassword (BSTR* password, BOOL* cancel)
参数:
Password – PDF文件的密码
Cancel – 当该参数设置为False时, 该事件将一直被触发,直到密码输入正确为止

OnSearchProgress

当搜索文档时触发该事件。
函数原型:
Void OnSearchProgress (long pageNumber, long pageCount)
参数:
pageNumber – 当前正在搜索的页码
pageCount – 总页码数

OnOpenFile

当文件打开失败时触发该事件。
函数原型:
Void OnOpenFile(short Error);
参数:
Error – 返回错误代码
/** @brief文件错误:文件没有找到或者文件无法打开。*/
#define OPENFILE_ERROR_PDFPARSE_FILE 1
/** @brief格式错误:不是一个PDF文件或者文件已损坏。*/
#define OPENFILE_ERROR_PDFPARSE_FORMAT 2
/** @brief密码无效,请输入文档的正确密码。*/
#define OPENFILE_ERROR_PDFPARSE_PASSWORD 3
/** @brief该文档由不支持的安全处理程序加密。*/
#define OPENFILE_ERROR_PDFPARSE_HANDLER 4
/** @brief该文档由数字证书加密,当前用户没有正确的证书。*/
#define OPENFILE_ERROR_PDFPARSE_CERT 5
/** @brief URL地址无效。*/
#define OPENFILE_ERROR_DOWNLOAD_PARSEURL 6
/** @brief下载远程文件失败。*/
#define OPENFILE_ERROR_DOWNLOAD_FAIL 7

OnOpenDocument

当打开一个PDF文件时触发该事件。
函数原型:
Void OnOpenDocument (BSTR filepath)
参数:
Filepath – 被打开的PDF文件的路径

OnFilePathInvalidate

当打开文件路径错误时触发该事件。
函数原型:
Void OnFilePathInvalidate(BSTR WarnString);
参数:
WarnString – 返回错误提示信息

OnShowSavePrompt

当关闭一个已经被修改过的PDF文件时触发该事件。
函数原型:
Void OnShowSavePrompt(BOOL* bShow, short * nResult);
参数:
bShow – 该参数指明是否显示保存提示框。如果需要显示,则设置为true,否则设置为false。
nResult – 该参数指明是否保存被修改过的PDF文件。该参数只有在bShow设置为false时才有效。值为1表示保存修改过的PDF文件,值为0表示不保存修改过的PDF文件。

OnCloseDocument

当关闭一个PDF文件时触发该事件。
函数原型:
Void OnCloseDocument (BSTR filepath)
参数:
Filepath – 要关闭的PDF文件的路径。

OnDocumentChange

当PDF文档内容发生改变时触发该事件。
函数原型:
Void OnDocumentChange ()
参数:

CustomFileGetSize

当以OpenCustomFile方式打开PDF文档时触发该事件。
函数原型:
Void CustomFileGetSize (long* size)
参数:
size – [out] 该参数指向一个数值,用于设置PDF文件的长度。

CustomFileGetBlock

当以OpenCustomFile方式打开PDF文档时触发该事件。
函数原型:
Void CustomFileGetBlock (long pos, long pBuf, long size)
参数:
pos – [in ] 相对于文件起始位置的偏移位置,单位为字节
pBuf – [out ]指向一个用于接收PDF数据的缓冲
Size – [in] 缓冲区的大小
备注:
从指定的位置开始获取数据。以字节为单位,从文件起始位置开始进行偏移。偏移量和缓冲区的大小不能超出PDF文件的长度。

OnClick

在鼠标左键点击时触发该事件。
函数原型:
Void OnClick (long hWnd, long ClientX, long ClientY);
参数:
hWnd – 鼠标左键点击时的窗口句柄
ClientX – 鼠标左键在ActiveX控件窗口客户区点击时水平坐标
ClientY – 鼠标左键在ActiveX控件窗口客户区点击时垂直坐标

OnDbClick

在鼠标左键双击时触发该事件。
函数原型:
Void OnDbClick (long hWnd, long ClientX, long ClientY);
参数:
hWnd – 鼠标左键双击时的窗口句柄
ClientX – 鼠标左键在ActiveX控件窗口客户区双击时水平坐标。
ClientY – 鼠标左键在ActiveX控件窗口客户区双击时垂直坐标。

*OnDbClickEx

在鼠标左键双击时触发该事件。
函数原型:
void OnDbClickEx(long hWnd, long ClientX, long ClientY, BOOL* bRet)
参数:
hWnd – 鼠标左键双击时的窗口句柄
ClientX – 鼠标左键在ActiveX控件窗口客户区双击时水平坐标。
ClientY – 鼠标左键在ActiveX控件窗口客户区双击时垂直坐标。
bRet – 使用默认的ActiveX工作流或者自定义的工作流。
TRUE – 使用自定义的工作流
FALSE – 使用默认的ActiveX工作流
返回值:

OnRButtonClick

在点击鼠标右键时触发该事件。
函数原型:
Void OnRButtonClick(long hWnd, long ClientX, long Client);
参数:
hWnd – 鼠标右键双击时的窗口句柄
ClientX – 鼠标右键在ActiveX控件窗口客户区双击时水平坐标。
ClientY – 鼠标右键在ActiveX控件窗口客户区双击时垂直坐标。

*OnRButtonClickEx

在点击鼠标右键时触发该事件。
函数原型:
void OnRButtonClickEx(long hWnd, long ClientX, long ClientY, BOOL* bRet)
参数:
hWnd – 鼠标右键点击时的窗口句柄
ClientX – 鼠标右键在ActiveX控件窗口客户区点击时水平坐标。
ClientY – 鼠标右键在ActiveX控件窗口客户区点击时垂直坐标。
bRet – 使用默认的ActiveX工作流或者自定义的工作流。
TRUE – 使用自定义的工作流
FALSE – 使用默认的ActiveX工作流
返回值:

OnDownLoadFinish

从网络中下载PDF文件结束时触发该事件。
函数原型:
Void OnDownLoadFinish();
参数:

OnErrorOccurred

在调用SDK提供的接口出现异常时触发该事件。目前仅支持GetToolByIndexShowToolbarButton两个接口。
函数原型:
Void OnErrorOccurred(BSTR lpszErrorMsg)
参数:
lpszErrorMsg – 异常提示字符串
返回值:

OnUploadFinish

在调用UploadCurFileToFTP时触发该事件。
函数原型:
Void OnUploadFinish(short nRetCode)
参数:
nRetCode – 返回操作结果
返回值:

当在ActiveX控件点击操作文本链接时触发该事件。该事件传递的参数包括该链接和是否对该链接进行响应。
函数原型:
Void OnTextHyperLink(BSTR csUrl, boolean* cancel)
参数:
csUrl – 文本链接的URL地址
cancel – 是否响应链接
返回值:

OnExcuteMenuItem

通过OnAddmenuItemAction事件添加的用户自定义菜单项被执行时触发该事件。
函数原型:
Void OnExcuteMenuItem(BSTR sMenuItem, boolean* bResult)
参数:
sMenuItem – 用户自定义的菜单项
bResult – 操作产生的结果(TRUE 或者 FALSE)
返回值:

*OnAddMenuItemAction

当执行”添加一个菜单项”操作时触发该事件。
函数原型:
Void OnAddMenuItemAction(BSTR* pMenuItem)
参数:
pMenuItem – 菜单项的内容
返回值:

OnDoGoToRAction

当执行GoToR(超链接类型)操作时触发该事件。
函数原型:
Void OnDoGoToRAction(BSTR sFilePath, Link_Dest* dest)
参数:
sFilePath – 目标文件的路径
dest – 文件中的目标对象
返回值:

OnDoGoToEAction

当打开一个标注链接时触发,该链接指向当前文件附加的PDF文档。
函数原型:
void OnDoGoToEAction(BSTR sFilePath, Link_Dest* dest) ;
参数:
sFilePath – 存放附件PDF的临时路径
dest – 超链接的目标对象
返回值:

点击超文本时触发该事件。
函数原型:
Void OnHyperLink(BSTR linktype, BSTR linkdata, Link_Dest* dest,
BOOL* cancel)
参数:
Linktype – 包含超链接类型信息的字符串。
超链接类型字符串包括:
GoTo :跳转至当前文档的相应页面,linkdata为None,dest包含控件导览的位置信息。
GoToR: 跳转到本地磁盘中保存的相应PDF文件。若要在新的窗口中显示文档,则linkdata中在文件名后加1,反之linkdata中在文件名后加0。Dest包含控件导览的位置信息。
Launch: 执行外部程序,若要在新的窗口中打开文档,则linkdata中在文件名后加1,反之则在文件名后加0。
URI: 打开URI,linkdata包含URI字符串。
Cancel – cancel变量的值为true,则控件不打开超链接。
linkData – 附加信息字符串

*OnContextMenuIndex

在鼠标右键弹出的菜单中点击某一项时触发该事件。与SetContextMenuString 函数配合使用。
函数原型:
Void OnContextMenuIndex(short nIndex);
参数:
nIndex – 菜单的索引值

*OnFetchAsyncFileData

当打开一个异步加载的文件时,通过触发该事件来获取所需的文件数据。
函数原型:
Void OnFetchAsyncFileData(long offset, long size);
参数:
offset – 所需数据在文件中的偏移量。
Size – 所需数据的长度。
返回值:
无。

*OnCurPageIndexChanged

当应用程序改变了CurPage值时触发该事件。
函数原型:
Void OnCurPageIndexChanged (long curPageIdx, long newPageIdx);
参数:
curPageIdx – 改变前的CurPage值。
newPageIdx – 改变后的CurPage值。
返回值:
无。

*OnSigContextMenuIndex

当点击签名域的右键菜单项时触发该事件。
函数原型:
void OnSigContextMenuIndex(short nIndex, IDispatch* SignatureField);
参数:
nIndex – 菜单项的索引值。
SignatureField – 鼠标右键点击的签名域。
返回值:

备注:
必须首先调用GetPDFSignatureMgr函数,OnSigContextMenuIndex函数才能被触发。

OnPagesContextMenuIndex

当在页面面板的页面缩略图中右键菜单项时触发该事件。
函数原型:
void OnPagesContextMenuIndex(short nIndex, VARIANT* pageArray)
参数:
nIndex – 页面菜单项的索引值。
SignatureField – 页面数组。
返回值:
无。

OnBookmarkContextMenuIndex

当点击书签的右键菜单项时触发该事件。
函数原型:
void OnBookmarkContextMenuIndex(short nIndex)
参数:
nIndex – 书签菜单项的索引值。
返回值:
无。

*OnFormFieldClick

当点击表单域时触发该事件。
函数原型:
void OnFormFieldClick(PDFFormField* pClickedField)
参数:
pClickedField – PDF表单域对象
返回值:
无。

*OnFormFieldKeyDown

当在表单域中按下key down键时触发该事件。
函数原型:
void OnFormFieldKeyDown(IPDFFormField* pFormField, long* nKey)
参数:
pFormField – PDF表单域对象
nKey – 虚拟键码
返回值:
无。

*OnFormFieldKeyUp

当在表单域中释放按键(key up)时触发该事件。
函数原型:
void OnFormFieldKeyUp(IPDFFormField* pFormField, long* nKey)
参数:
pFormField – PDF表单域对象
nKey – 虚拟键码
返回值:
无。

*OnSetFocus

当将焦点设置到ActiveX实例时触发该事件。
函数原型:
void OnSetFocus(long hwnd)
参数:
hwnd – ActiveX实例句柄
返回值:
无。

*OnKillFocus

当从一个控件实例失去焦点时触发该事件。
函数原型:
void OnKillFocus(long hwnd)
参数:
hwnd – ActiveX实例句柄
返回值:
无。

#FormFieldError

在设置PDF表单域时出现异常会触发该事件。
函数原型:
Void FormFieldError(long nErrorCode);
参数:
nErrorCode – 返回异常错误码
返回值:

OnCriticalError

当发生严重错误时触发该事件。
函数原型:
void OnCriticalError(BSTR StrError, short nFlag);
参数:
StrError – 严重错误信息。
nFlag – 严重错误标记。
返回值:
无。

OnKeyDown

当按下key down键时触发该事件。
函数原型:
void OnKeyDown(short KeyCode, BOOL Shift, BOOL Alt, BOOL Control);
参数:
KeyCode – 虚拟键码。
Shift – 标记是否按下shift键
Alt – 标记是否按下Alt键
Control – 标记是否按下Control键
返回值:
无。

OnKeyUp

当释放(key up)键时触发该事件。
函数原型:
void OnKeyUp(short KeyCode, BOOL Shift, BOOL Alt, BOOL Control);
参数:
KeyCode – 虚拟键码。
Shift – 标记是否释放shift键
Alt – 标记是否释放Alt键
Control – 标记是否释放Control键
返回值:
无。

OnMouseDown

当按下鼠标时触发该事件。
函数原型:
void OnMouseDown(short Button, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
参数:
Button – 1:左键;2:右键; 10:中间键。
x – 在ActiveX控件窗口的x坐标。
y – 在ActiveX控件窗口的y坐标。
返回值:
无。

OnMouseMove

当鼠标移动时触发该事件。
函数原型:
void OnMouseMove(short Button, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
参数:
Button – 1:左键;2:右键; 10:中间键。
x – 在ActiveX控件窗口的x坐标。
y – 在ActiveX控件窗口的y坐标。
返回值:
无。

OnMouseUp

当释放鼠标(mouse up)时触发该事件。
函数原型:
void OnMouseUp(short Button, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
参数:
Button – 1:左键;2:右键; 10:中间键。
x – 在ActiveX控件窗口的x坐标。
y – 在ActiveX控件窗口的y坐标。
返回值:
无。

IPDFPrinter

通过IPDFPrinter所提供的接口可以控制打印机和执行打印操作。

属性

PrinterName

类型:
BSTR
描述:
设置将要被执行打印操作的打印机名称。
PrinterRangeMode
描述:
设置打印范围,可设置如下选项:
PRINT_RANGE_ALL = 0,
PRINT_RANGE_CURRENT_VIEW = 1,
PRINT_RANGE_CURRENT_PAGE = 2,
PRINT_RANGE_SELECTED = 3,
PrinterRangeFrom
类型:
short
描述:
设定开始打印的页码。
该属性仅在PrinterRangeMode = PRINT_RANGE_SELECTED时有效。
PrinterRangeTo
类型:
short
描述:
设定打印结束的页码。
该属性仅在PrinterRangeMode = PRINT_RANGE_SELECTED时有效。
NumOfCopies
类型:
short
描述:
设定文档打印的份数。
Scaling
类型:
short
描述:
在打印对话框中设置打印缩放比例。
AutoRotate
类型:
boolean
描述:
设置打印对话框中自动旋转的参数。
AutoCenter
类型:
boolean
描述:
设置打印时是否自动居中。
1 = 自动居中
0 = 不要自动居中。
Collate
类型:
boolean
描述:
设置是否检查“自动分页”选项。
1 = 检查“自动分页”选项
2 = 不检查“自动分页”选项
Rotation
类型:
short
描述:
设置打印时是否旋转文档。
RangeSubset
类型:
short
描述:
设置打印时是否包含子集。
ReversePage
类型:
boolean
描述:
设置是否以逆序方式打印文档。
PageBorder
类型:
boolean
描述:
设置是否打印页面边框。
PrintWhat
类型:
Short
描述:
选择打印文档的内容。包括如下所列的值:
0 = 只打印正文;
1= 打印正文和批注等其他内容;
2= 只打印批注等其他内容。

方法

PrintWithDialog

执行打印操作过程中,弹出与打印相关的对话框。
函数原型:
Void PrintWithDialog();
参数:

返回值:

PrintQuiet
执行静默打印操作。即在执行打印操作时,不弹出任何与打印相关的对话框。
函数原型:
Void PrintQuiet();
参数:

返回值:

SetPaperSize
设置打印机的页面尺寸,具体的参数值请参照Windows SDK说明文档。
函数原型:
Void SetPaperSize (long paperSize);
参数:
paperSize – Windows SDK说明文档规定的值。
返回值:

GetSystemPrinterCount
获取系统打印机的数量。
函数原型:
Long GetSystemPrinterCount();
返回值:
返回系统中打印机的数量。
GetSystemPrinterNameByIndex
通过索引获取系统中打印机的名称。
函数原型:
BSTR GetSystemPrinterNameByIndex(long index);
返回值:
返回通过索引获得的系统打印的名称。
SetPaperSizeByPage
在静默打印和正常打印过程中勾选“根据PDF页面大小选择打印纸张”选项。
函数原型:
Void SetPaperSizeByPage(BOOL bPage);
参数:
bPage: 值为TRUE则勾选“根据PDF页面大小选择打印纸张”选项,值为FALSE则不勾选此选项。
SetDuplexMode
设置双工模式。
函数原型:
BOOL SetDuplexMode(short nDuplexMode)
参数:
nDuplexMode – 双工模式值。可能的值为1,2或者3。
1 = DMDUP_SIMPLEX (最简单 (非双工) 模式.)
2 = DMDUP_VERTICAL (双工模式,垂直翻转页面.)
3 = DMDUP_HORIZONTAL (双工模式,水平翻转页面.)
返回值:
成功则返回TRUE,反之返回FALSE。

IPDFDocumentInfo

本章节介绍了PDF文档属性的相关信息。

属性

Author

类型:
BSTR
描述:
指明文档的作者。
Subject
类型:
BSTR
描述:
指明文档的主题。
CreatedDate
类型:
BSTR
描述:
指明文档创建的时间。
ModifiedDate
类型:
BSTR
描述:
指明文档最后一次被修改的时间。
Keywords
类型:
BSTR
描述:
指明用于描述文档的的关键词。
Creator
类型:
BSTR
描述:
指明文档的创建者。
Producer
类型:
BSTR
描述:
指明创建文档的工具或软件。
Title
类型:
BSTR
描述:
指明文档的标题。

IFindResult

通过IFindResult所提供的接口可以执行搜索操作。

方法

GetFindRectsCount

获取查找的矩形框个数
函数原型:
long GetFindRectsCount();
返回值:
成功则返回非负整数,反之则返回0。
GetFindRectByIndex
获取查找矩形框。
函数原型:
Long GetFindRectByIndex
(longnIndex,float* left, float* bottom, float* right, float* top);
参数:
nIndex – 查找到的区域的索引
left – 查找到的区域的左边坐标(PDF坐标系统)
bottom – 查找到的区域的底部坐标(PDF坐标系统)
right – 查找到的区域的右边坐标(PDF坐标系统)
top – 查找到的区域的顶端坐标(PDF坐标系统)
返回值:
成功则返回True,反之则返回False。
GetFindRectByIndex
获取查找矩形框。
函数原型:
VARIANT  GetFindRectByIndexEx(long nIndex)
参数:
nIndex – 查找到的区域的索引
返回值:
返回查找到的区域矩形。
GetFindPageNum
获取搜索结果的页面索引信息。
函数原型:
long GetFindPageNum();
参数:

返回值:
返回页面索引值。
GetFindFileName
获取执行搜索操作的文件名。
函数原型:
BSTR GetFindFileName();
参数列表:

返回值:
函数返回的是当前FindResult类包含的搜索结果所对应的文件名。
GetFindString
获取搜索结果内容。
函数原型:
BSTR GetFindString()
参数:

返回值:
返回搜索结果内容。

IPDFOutline

通过IPDFOutline所提供的接口可以获取PDF文件的书签的相关信息。

属性

Expand

类型:
BOOL 读和写
描述:
标记子标签是否扩展。

方法

GetOutlineDest

获取书签的链接目标。
函数原型:
ILink_Dest* GetOutlineDest ();
返回值:
返回书签的跳转目标。
GetOutlineAction
获取书签所关联的动作。
函数原型:
IPDF_Action* GetOutlineAction ();
返回值:
返回书签的跳转动作。
GetOutLineColor
获取书签文本的颜色(RGB)。
函数原型:
DWORD GetOutlineColor ();
返回值:
返回书签文本的颜色。
NavigateOutline
遍历指定的大纲结点所包含的子节点的数据。
函数原型:
Void NavigateOutline ();
参数:

返回值:

GetOutlineTitle
获取大纲结点的标题。
函数原型:
BSTR GetOutlineTitle()
参数:

返回值:
返回当前大纲结点的标题。
GetOutLineTitle2
获取大纲节点的标题,作为一个变量。
函数原型:
VARIANT GetOutLineTitle2 ()
参数:

返回值:
返回大纲节点的标题,作为一个变量。
GetOutlineExpandValue
获取大纲子节点的数量。
函数原型:
Long GetOutlineExpandValue()
返回值:
返回子节点的数量。

ILink_Dest

通过ILink_Dest所提供的接口可以获取链接所关联的PDF页面的相关信息。

方法

GetPageIndex

获取PDF页面索引值。
函数原型:
long GetPageIndex();
返回值:
页面索引值
GetZoomMode
获取页面显示模式。
函数原型:
long GetZoomMode();
返回值:
返回值定义如下:
2 – 适合页面
3 – 适合宽度
4 – 适合高度
GetZoomParamCount
获取缩放参数。
函数原型:
long GetZoomParamCount()
返回值:
返回缩放参数值。
GetZoomParam
获取第nIndex个参数的内容
函数原型:
double GetZoomParam(long nIndex)
返回值:
返回第nIndex参数的内容,该内容描述的是缩放的信息。
GetDestName
获取目标对象名称。
函数原型:
BSTR GetDestName() ;
返回值:
返回目标对象名称。

IPDFAction

通过IPDFAction所提供的接口可以获取Action的信息。

方法

GetURIPath

获取Action所关联的URI路径。
函数原型:
BSTR GetURIPath();
返回值:
返回URI路径。

GetFilePath

获取Action所关联的外部文件的路径。
函数原型:
BSTR GetFilePath();
返回值:
返回外部文件路径。

GetType

获取Action的类别。
函数原型:
int GetType();
返回值:
返回值以下几个值:
1 – Go to Action;
2 – Remote Go-To Actions;
4 – Launch Actions;
6 – URI Actions;

GetDest

获取Action所关联的dest
函数原型:
Ilink_Dest* GetDest();
返回值:
返回跳转定义。

#IPDFForm

方法

#ImportFromFDF

从FDF文件导入表单内容。
函数原型:
Void ImportFormFromFDF(LPCTSTR bstrFullPath);
参数:
bstrFullPath – 待导入的FDF文件路径。
返回值:

#ExportToFDF
导出特定表单元素并保存为FDF文件。
函数原型:
Void ExportToFDF (LPCTSTR bstrFullPath, BOOL bEmptyFields, const VARIANT FAR& arrFields)
参数:
bstrFullPath – 导出后生成的FDF文件的路径
bEmptyFields – 值为True 则仅导出VARIANT & arrField函数指定的表单元素。值为False则导出除VARIANT& arrFields函数指定的元素外的所有表单元素。
ArrFields – 待导出的表单元素数组。
返回值:

#ReleaseLTField
释放由GetLTFieldByIndexGetLTFieldByName获取的表单域对象。
函数原型:
void ReleaseLTField(LPDISPATCH formField);
参数:
formField: 将要被释放的表单域对象。
返回值:

#AddField

添加一个表单域
函数原型:
LPDISPATCH AddField(LPCTSTR bstrFieldName, LPCTSTR bstrFieldType, long pageIndex, float left, float top, float right, float bottom);
参数:
bstrFieldName – 表单全名
bstrFieldType – 新建表单域的类型
表单域类型包括:
文本域
按钮
组合框
列表框
复选框
单选按钮
pageIndex – 添加表单域的页码(页码从0开始计算)
Left – 表单域左边的坐标
Top – 表单域顶部的坐标
right – 表单域右边的坐标
Bottom – 表单域底部的坐标
返回值:
返回新创建的表单。
备注:
表单域的坐标是在旋转后的页面中测量的,也就是说,无论页面怎么旋转,表单左下角的坐标都是[0,0]。
#GetSelectedField
获取选中的表单域。
函数原型:
IPDFFormField* GetSelectedField()
参数:

返回值:
返回一个IPDFFormField对象
#RemoveField
删除指定的表单域。
函数原型:
void RemoveField(IPDFFormField pFormField)
参数:
pFormField – 将要被删除的表单域。
返回值:

#RemoveFieldsByName
删除一个表单域
函数原型:
Void RemoveFieldsByName (LPCTSTR bstrFieldName);
参数:
bstrFieldName – 待删除表单的全名,若表单中含有多个子注释,则所有子注释都将会被删除;若系统中含有多个同名的表单,则所有同名的表单都将会被删除。
返回值:

#GetFieldsCount
获取表单域的总数量。
函数原型:
long GetFieldsCount()
参数:

返回值:
调用成功,返回表单域的总数量值,否则返回值“-1”。
#GetFieldsCountByName
获取特定域名称的表单域的总数量。
函数原型:
long GetFieldsCountByName(LPCTSTR bstrFieldName)
参数:
bstrFieldName – 表单域名称
返回值:
返回特定域名称的表单域的总数量。
#RenameField
重命名表单域。
函数原型:
BOOL RenameField(BSTR bstrFieldName,BSTR bstrNewFieldName)
参数:
bstrFieldName – 表单域名称
bstrNewFieldName – 表单域新名称
返回值:
重命名成功,则返回TRUE,否则返回FALSE。
#GetFieldByIndex
获取特定表单域的指针。
函数原型:
LPDISPATCH GetFieldByIndex(long index)
参数:
index – 表单域索引
返回值:
成功则返回表单域指针,反之则返回NULL。
#GetLTFieldByIndex
获取特定表单域的指针。
函数原型:
LPDISPATCH GetLTFieldByIndex(long index)
参数:
index – 表单域索引
返回值:
成功则返回表单域指针,反之则返回NULL。
备注:
GetLTFieldByIndex返回的PDF表单对象需要由ReleaseLTField释放。
#GetFieldByName
获取指定域名称的表单域。
函数原型:
LPDISPATCH GetFieldByName(LPCTSTR bstrFieldName, long index)
参数:
bstrFieldName – 表单域名称
index – 表单域索引,其值必须小于等于(GetFieldsCountByName函数返回值-1)
返回值:
成功则返回表单域指针,反之则返回NULL。
#GetLTFieldByName
获取指定域名称的表单域。
函数原型:
LPDISPATCH GetLTFieldByName(LPCTSTR bstrFieldName, long index)
参数:
bstrFieldName – 表单域名称
index – 表单域索引,其值必须小于等于(GetFieldsCountByName函数返回值-1)
返回值:
成功则返回表单域指针,反之则返回NULL。
备注:
GetLTFieldByName返回的PDF表单对象需要由ReleaseLTField释放。

#IPDFFormField

属性

#Alignment

类型:
String
描述:
对齐文本框中的文本(左对齐、居中对齐、右对齐)
备注:
仅用于文本域。
#BorderStyle
类型:
String
描述:
表单域边框类型
备注:
可用于所有表单类型。
边框类型包括:
实线
虚线
斜线
插入线
下划线
#BorderWidth
类型:
short
描述:
表单域的宽度
备注:
可用于所有表单类型
#ButtonLayout
类型:
short
描述:
按钮的外观。有效值包括:
0 – 仅为文本;按钮有文字说明,但没有图标。
1 – 仅为图标;按钮有图标,但没有文字说明。
2 – 在文本上显示图标;按钮图标显示在文字说明的顶部。
3 – 在图标上显示文本;按钮的文本显示在图标的顶部。
4 – 先显示图标,然后显示文本;按钮的图标显示在文字说明的左边。
5 – 先显示文本,然后显示图标;按钮的图标显示在文字说明的右边。
6 – 在图标下显示文本;按钮的文本显示在图标顶部的下方。
备注:
仅用于按钮类型
#CalcOrderIndex
类型:
short
描述:
优化列阵中当前表单域的索引
备注:
可用于所有的表单类型
#CharLimit
类型:
short
描述:
文本域的字符数限制
备注:
仅用于文本域类型
#DefaultValue
类型:
String
描述:
表单域的默认值
备注:
可用于所有的表单类型
#IsEditable
类型:
Boolean
描述:
Combo Box是否可编辑
备注:
仅用于Combo Box
#Behavior
类型:
String
备注:
None, Invert, Outline, Push
N (None) 无高亮显示
I (Invert) 转化注释内容
O (Outline) 转化注释边框
P (Push) 在页面文字的下方显示注释
#IsHidden
类型:
Boolean
描述:
表单域是否隐藏;
备注:
可用于所有的表单类型
#IsMultiline
类型:
Boolean
描述:
文本域是单行浏览或者多行浏览。
备注:
仅用于文本域
#IsPassword
类型:
Boolean
描述:
密码以明文或者密文方式输入。
备注:
仅用于文本域。
#IsReadOnly
类型:
Boolean
描述:
表单域是否只读。
备注:
可用于所有的表单类型。
#IsRequired
类型:
Boolean
描述:
是否将表单域设置为非空
备注:
可用于组合框、单选按钮和文本框
#Name
类型:
String
描述:
当前选中的表单域的名称
备注:
只读,可用于所有表单类型
#NoViewFlag
类型:
Boolean
描述:
是否显示表单元素。“1”表示隐藏表单元素;“0”表示显示表单元素。
备注:
可用于所有表单类型
#PrintFlag
类型:
Boolean
描述:
打印内容时否包含表单元素。“1”表示包含表单元素;“0”表示不包含表单元素。
备注:
可用于所有表单类型
#Style
类型:
CString
描述:
设置复选框和单选按钮的形状:
1) 格子形
2) 十字形
3) 菱形
4) 圆形
5) 星形
6) 方形
备注:
可用于复选框和单选按钮
#TextFont
类型:
String
描述:
字体(Reference 1.7 416)
字体可设置为:
Courier
Courier-Bold
Courier-Oblique
Courier-BoldOblique
Helvetica
Helvetica-Bold
Helvetica-Oblique
Helvetica-BoldOblique
Symbol
Times-Roman
Times-Bold
Times-Italic
Times-BoldItalic
ZapfDingbats
备注:
可用于除复选框和单选按钮以外的所有表单
#TextSize
类型:
Short
描述:
表单域中文本的大小
备注:
可用于除复选框和单选按钮外的所有表单
#Type
类型:
String
描述:
表单类型
备注:
可用于所有表单类型
表单类型可设置为: 文本域、按钮、组合框、列表框、复选框、单选按钮
#Value
类型:
String
描述:
当前值
备注:
以下表单形式包含这种属性:
1)文本
2)组合框
3)单选按钮
4)复选框 <是&否>
5)列表框
#Tooltip
类型:
String
描述:
显示提示信息
备注:
可用于所有表单类型
#Orientation
类型:
Short
描述:
表单文本的旋转方向
备注:
可用于所有表单类型
#DirtyFlag
描述:
表单域被改动后设置为true,没改动过为false。
#ID
类型:
BSTR
描述:
表单域的ID。

方法

#PopulateListOrComboBox

给列表框或组合框中的条目分配数值
函数原型:
Void PopulateListOrComboBox ( const VARIANT& arrItems, const VARIANT& arrExportVal);
参数:
arrItem – 一个字符串数组,每个元素代表一个项目名称。
arrExportVal – 一个字符串数组,大小与第一个参数相同,每个元素代表一个导出值。
返回值:

#SetBackgroundColor
设置表单域的背景颜色
函数原型:
Void SetBackgroundColor (LPCTSTR bstrColorSpace, float redC, float greenM, float blueY, float AlphaK);
参数:
bstrColorSpace – 可设置的颜色包括:
透明、灰色、RGB或CMYK色域
使用T、G、RGB和CMYK分别代表以上四种颜色。
设置为T和G时,需要设置redC;
设置为RGB时,需要设置redC、greenM和blueY;
设置为CMYK时,需要设置redC、greenM、blueY和AlphaK。redC、greenM和blueY值的范围为0-1。
返回值:

#SetBorderColor
设置边框颜色。
函数原型:
Void SetBorderColor (LPCTSTR bstrColorSpace, float redC, float greenM, float blueY, float AlphaK);
参数:
bstrColorSpace – 可设置的颜色包括:
透明、灰色、RGB或CMYK色域
使用T、G、RGB和CMYK分别代表以上四种颜色。
设置为T和G时,需要设置redC;
设置为RGB时,需要设置redC、greenM和blueY;
设置为CMYK时,需要设置redC、greenM、blueY和AlphaK。redC、greenM和blueY值的范围为0-1。
返回值:

#SetForegroundColor
设置前背景色
函数原型:
Void SetForegroundColor (LPCTSTR bstrColorSpace, float redC, float greenM, float blueY, float AlphaK);
参数:
bstrColorSpace – 可设置的颜色包括:
透明、灰色、RGB或CMYK色域,使用T、G、RGB和CMYK分别代表以上四种颜色。
设置为T和G时,需要设置redC;
设置为RGB时,需要设置redC、greenM和blueY;
设置为CMYK时,需要设置redC、greenM、blueY和AlphaK。redC、greenM和blueY值的范围为0-1。
返回值:

#SetButtonCaption
对按钮上显示的文本进行设置
函数原型:
Void SetButtonCaption (LPCTSTR bstrFace, LPCTSTR bstrCaption);
参数:
bstrFace – 一个字符串,指定说明文字的朝向
有效的字符串包括:
N —普通
D —向下
R — 反转
bstrCaption – 按钮文字说明
返回值:

#SetButtonIcon
设置按钮图标
函数原型:
Void SetButtonIcon (LPCTSTR bstrFace, LPCTSTR bstrFilePath);
参数:
bstrFace 一个字符串,指定说明文字的朝向
有效的字符串包括:
N = 普通
D = 向下
R = 反转
BstrFilePath: 用作图标的图片文件的路径。
返回值:

#SetExportValues
导出单选按钮和复选框时,根据不同的选择(如:已选、未选、已勾选、未勾选等)设置导出值。
函数原型:
Void SetExportValues (const VARIANT& arrExportVal);
参数:
arrExportVal – 导出值数组
返回值:

#SetJavaScriptAction
设置Javascript脚本动作
函数原型:
Void SetJavaScriptAction (LPCTSTR bstrTrigger, LPCTSTRbstrJavaScript);
参数:
bstrTrigger – 一个字符串,指定动作触发的条件
有效的字符串包括:
up
down
enter
exit
calculate
validate
format
keystroke
bstrJavaScript – 脚本动作
返回值:

#SetResetFormAction
设置重置表单域动作
函数原型:
Void SetResetFormAction (LPCTSTR bstrTrigger, long bFlags, const VARIANT& arrFields);
参数:
bstrTrigger – 一个字符串, 指定动作触发的条件
有效的字符串包括:
Up = 鼠标向上移动
down = 鼠标向下移动
enter = 鼠标输入
exit = 鼠标退出
bFlags – 一组定义动作特性的标记集
arrFields – 待导出的表单元素组
返回值:

#SetSubmitFormAction
设置提交表单域的动作
函数原型:
Void SetSubmitFormAction (LPCTSTR bstrTrigger, LPCTSTR bstrURL, long bFlags, const VARIANT& arrFields);
参数:
bstrTrigger – 一个字符串,指定动作触发的条件
有效的字符串包括:
up = 鼠标向上移动
down = 鼠标向下移动
enter = 鼠标输入
exit = 鼠标退出
bstrURL – 含有URL的字符串
bFlags – 一组定义动作特性的标记集
arrFields – 待提交的表单元素组
返回值:

#GetPageIndex
获取指定表单域的页码
函数原型:
long GetPageIndex()
参数:

返回值:
返回表单域的页码
#GetRectTop
获取指定表单域的顶部的坐标
函数原型:
float GetRectTop(l)
参数:

返回值:
返回表单域顶边的坐标
#GetRectLeft
获取表单域左边的坐标
函数原型:
float GetRectLeft()
参数:

返回值:
返回表单域左边的坐标
#GetRectRight
获取指定表单域的右边的坐标
函数原型:
float GetRectRight()
参数:

返回值:
返回表单域右边的坐标
#GetRectBottom
获取指定表单域底边的坐标
函数原型:
float GetRectBottom()
参数:

返回值:
返回表单域底边的坐标

^IPDFPageAnnots

方法

^GetAnnot

获取特定PDF注释的指针
函数原型:
CPDFAnnot GetAnnot(long AnnotIndex)
参数:
AnnotIndex : 该PDF注释的索引。
返回值:
成功则获取特定PDF注释的指针,反之则返回NULL。

^GetLTAnnot

获取特定PDF注释的指针
函数原型:
IPDFAnnot* GetLTAnnot(long AnnotIndex)
参数:
AnnotIndex : 该PDF注释的索引。
返回值:
成功则获取特定PDF注释的指针,反之则返回NULL。
备注:
由GetLTAnnot获取的PDF注释对象必须由ReleaseLTAnnot释放。

^ReleaseLTAnnot

释放由GetLTAnnot获取的注释对象。
函数原型:
void ReleaseLTAnnot(IPDFAnnot* Annot)
参数:
Annot: 将要被释放的注释对象。
返回值:

^AddAnnot

添加一个新的PDF注释。
函数原型:
CPDFAnnot AddAnnot (LPDISPATCH AnnotToAddAfter, LPCTSTR SubType, float left, float top, float right, float bottom)
参数:
AnnotToAddAfter : 保留。设为NULL。
SubType : 注释的子类型。
子类型包括:
“Cloudy”, “Arrow”, “Line”, “Square”, “Rectangle”, “Circle”, “Ellipse”, “Polygon”, “PolyLine”, “Pencil”,”Underline”, “Highlight”, “Squiggly”, “StrikeOut”, “Stamp”, “Replace”, “Caret”, “Note”, “Typewriter”, “Callout”,”Textbox”, “FileAttachment”, “Image”, “Movie”, “Sound”, “Rectangle Link”, “Quadrilateral Link”.
left : 该注释矩形框的左边坐标
top : 该注释矩形框的顶边坐标
right : 该注释矩形框的右边坐标
bottom : 该注释矩形框的底边坐标
返回值:
成功则返回新的注释对象,反之则返回NULL。
备注:
所有坐标均基于PDF坐标空间。如果添加一个stamp注释,必须在使用AddAnnot之前调用SetStampParam.

^AddLTAnnot

添加一个新的PDF注释。
函数原型:
IPDFAnnot* AddLTAnnot(IPDFAnnot*AnnotToAddAfter,BSTR SubType,float left,float top,float right,float bottom)
参数:
AnnotToAddAfter : 保留。设为NULL。
SubType : 注释的子类型。
子类型包括:
“Cloudy”, “Arrow”, “Line”, “Square”, “Rectangle”, “Circle”, “Ellipse”, “Polygon”, “PolyLine”, “Pencil”,”Underline”, “Highlight”, “Squiggly”, “StrikeOut”, “Replace”, “Caret”, “Note”, “Typewriter”, “Callout”,”Textbox”, “FileAttachment”, “Image”, “Movie”, “Sound”, “Rectangle Link”, “Quadrilateral Link”.
Left : 该注释矩形框的左边坐标
Top : 该注释矩形框的顶边坐标
Right : 该注释矩形框的右边坐标
Bottom : 该注释矩形框的底边坐标
所有坐标均基于PDF坐标空间。
返回值:
成功则返回新的注释对象,反之则返回NULL。
备注:
AddLTAnnot将返回一个长效的注释对象,该注释对象必须由ReleaseLTAnnot释放。在某些情况下,可以更好的控制注释对象。

^SetStampParam

设置由AddAnnot添加的stamp对象。
函数原型:
void SetStampParam(long source, long length, long nSourceType, LPCTSTR flag, short pageIndex)
参数:
source: 一个指向stamp对象源文件所在的缓冲区的指针。
length: 缓冲区大小。
nSourceType: Stamp对象源文件的类型。0表示使用PDF源文件,非0表示使用图片源文件。
flag: 用来显示stamp对象的图标名字。
pageIndex: 在源文件中的页面索引值。
返回值:

备注:
在使用AddAnnot 创建stamp之前,必须先调用SetStampParam。

^RemoveAnnot

删除特定PDF注释
函数原型:
Long RemoveAnnot(LPDISPATCH AnnotToRemove)
参数:
AnnotToRemove : 待删除PDF注释的信息
返回值:
成功则返回0,反之则返回-1。

^GetAnnotIndex

获取特定PDF注释的索引
函数原型:
Long GetAnnotIndex(LPDISPATCH Annot)
参数:
Annot : 特定PDF注释的信息
返回值:
成功则返回特定PDF注释的索引,反之则返回-1。

^GetAnnotsCount

获取当前PDF页面上PDF注释的总数量
函数原型:
Long GetAnnotsCount()
参数:

返回值:
返回PDF注释的数量

^IPDFAnnot

属性

^Thickness

类型:
Short 读/写
描述:
PDF注释边框的宽度
备注:
用于图形标注、测量工具以及其他具有边框的注释(即云形、箭头、线条、方形、矩形、圆形、椭圆形、多边形、折线、铅笔工具、注释框、文本框、链接等)。
^BorderStyle
类型:
Short 读/写
描述:
注释边框的类型。
备注:
边框类型包括七种:
1 – 实线
2 – 虚线类型1
3 – 虚线类型2
4 – 虚线类型3
5 – 虚线类型4
6 – 虚线类型5
7 – 虚线类型6
8 – 云形类型1
9 – 云形类型2
实线类型可用于:
“Rectangle”, “Cloudy” , “Ellipse”, “Circle”, “Arrow” , “Polygon”, “Line”, “Square” , “PolyLine”, “Callout”, “Textbox” ,”Image”, “Movie”, “Sound”, “Rectangle Link”, “Quadrilateral Link”.
虚线类型可用于:
“Rectangle”, “Cloudy” , “Ellipse”, “Circle”, “Arrow” , “Polygon”, “Line”, “Square” , “PolyLine”, “Callout”, “Textbox”.
云形类型可用于:
“Rectangle”, “Cloudy”, “Ellipse”, “Circle”, “Polygon”, “Square” , “Callout”, “Textbox”
^Color
类型:
OLE_COLOR 读/写
描述:
PDF注释的背景色。
备注:
可用于所有注释
^LineStartingStyle
类型:
Short 读/写
描述:
线条的起画格式
备注:
用于线条、箭头、折线及注释框等注释。
包括以下10种格式:
0 无
1 方形
2 圆形
3 菱形
4 张开
5 闭合
6 对接
7 反向张开
8 反向闭合
9 斜线
^LineEndingStyle
类型:
Short 读/写
描述:
线条的结束格式
备注:
用于线条、箭头和折线等注释
包括10种类型:
0 无
1 方形
2 圆形
3 菱形
4 张开
5 闭合
6 对接
7 反向张开
8 反向闭合
9 斜线
^FillColor
类型:
OLE_COLOR 读/写
描述:
PDF注释的填充色。
备注:
用于云形、箭头、线条、方形、矩形、圆圈、椭圆、多边形和折线等注释。
^Opacity
类型:
Short 读/写
描述:
PDF注释的透明度值
备注:
不支持链接、视频和音频等注释
^Author
类型:
BSTR 读/写
描述:
PDF注释的作者
备注:
不支持图片、视频、音频和链接等注释
^Subject
类型:
BSTR 读/写
描述:
PDF注释的主题
备注:
不支持图片、视频、音频和链接等注释
^CreationDate
类型:
DATE 只读
备注:
PDF注释的创建时间
^ModificationDate
类型:
DATE 只读
描述:
PDF注释的最后修改日期
^Locked
类型:
Boolean 读/写
描述:
标记注释是否被锁定
备注:
可用于所有注释
^Print
类型:
Boolean 读/写
描述:
标记是否可以打印注释
备注:
适用于所有注释
^ReadOnly
类型:
Boolean 读/写
描述:
标记注释是否为只读的
备注:
适用于所有注释。
标记为Read Only的注释是不能与用户进行交互的。该注释可以显示或者打印,但是不能响应鼠标点击事件或者更改外观等鼠标动作。
^Description
类型:
BSTR 读/写
描述:
PDF注释的描述
备注:
仅适用于文件附件注释
^Hidden
类型:
BOOL 读/写
描述:
标记注释是否被隐藏
备注:
适用于所有注释

方法

^GetType

获取PDF注释的类型
函数原型:
BSTR GetType()
参数:

返回值:
返回PDF注释的类型
^GetSubType
获取PDF注释的子类型
函数原型:
BSTR GetSubType()
参数:

返回值:
返回PDF注释的子类型
^GetContents
获取PDF注释的内容
函数原型:
BSTR GetContents()
参数:

返回值:
返回PDF注释的内容
^SetContents
设置PDF注释的内容
函数原型:
long SetContents(LPCTSTR Contents)
参数:
Contents: 需要设置的内容
返回值:
成功则返回0,反之则返回-1。
^IsPopupOpen
设定是否打开弹出框
函数原型:
BOOL IsPopupOpened()
参数:

返回值:
打开弹出框打开则返回TRUE,反之则返回FALSE。
^SetPopupOpen
设置打开弹出框
函数原型:
Long SetPopupOpened(BOOL Open)
参数:
Open: 所输入的值用来设定是否打开弹出框
返回值:
成功则返回0,反之则返回-1。
^HasPopup
指出注释是否含有弹出框
函数原型:
BOOL HasPopup()
参数:

返回值:
注释含有弹出框则返回TRUE,反之则返回FALSE。
^GetRect
获取注释的矩形区域
函数原型:
Long GetRect(float* pLeft, float* pTop, float* pRight, float* pBottom)
参数:
pLeft: 输出值,用以接收注释矩形区域左边的坐标
pTop: 输出值,用以接收注释矩形区域顶边的坐标
pRight: 输出值,用以接收注释矩形区域右边的坐标
pBottom: 输出值,用以接收注释矩形区域底边的坐标
返回值:
成功则返回0,反之则返回-1。
^SetRect
设置注释的矩形区域
函数原型:
long SetRect(float Left, float Top, float Right, float Bottom)
参数:
Left: 输入值,用以设置注释矩形区域左边的坐标
Top: 输入值,用以设置注释矩形区域顶边的坐标
Right: 输入值,用以设置注释矩形区域右边的坐标
Bottom: 输入值,用以设置注释矩形区域底边的坐标
返回值:
成功则返回0,反之则返回-1。
备注:
SetRect的过程中,ActiveX SDK内部会根据当前的页面边框、标注本身的边框厚度等信息对Rect的区域做适度的调整,因此GetRect所获取的结果和SetRect所设置的值不一定完全一样,是存在一定的差异的,但是大多数情况下这种差异是可以忽略的。
^SetLinkGoToAction
设置链接注释的跳转动作
函数原型:
Void SetLinkGoToAction(long nPageIndex, float left, float top, float zoom)
参数:
nPageIndex: 页码的输入值
left,top : Windows左上角的位置
zoom: 页面的放大系数
返回值:

^SetLinkURLAction
设置链接注释的URL动作
函数原型:
Void SetLinkURLAction(LPCTSTR sURL)
参数:
sURL: 动作执行时跳转的位置
返回值:

^DoAction
执行链接注释的动作(若有)
函数原型:
long DoAction()
参数:

返回值:
成功则返回0,反之则返回-1。
^HasAction
指出链接注释是否含有动作
函数原型:
BOOL HasAction()
参数:

返回值:
如果链接注释含有动作则返回TRUE,反之则返回FALSE。
^GetMarkedState
获取注释的标记状态
函数原型:
Long GetMarkedState()
参数:

返回值:
未标记时返回值为0,标记时返回值为1,出现错误时返回值为-1。
^SetMarkedState
设置注释的标记状态(不支持图片、视频、音频和链接等注释)
函数原型:
long SetMarkedState(long state)
参数:
state: 输入值,用以设置注释的标记状态。
可能的值为0(未标记)或1(标记)。
返回值:
成功则返回0,反之则返回-1。
^GetReviewState
获取注释的审阅状态
函数原型:
long GetReviewState()
参数:

返回值:
返回值可以为0、1、2、3和4,分别表示NULL、接受、拒绝、取消和完成。出现错误则返回值为-1。
^SetReviewState
设置注释的审阅状态(不支持图片、视频、音频和链接等注释)
函数原型:
long SetReviewState(long state)
参数:
State: 输入值,用以设置注释的审阅状态。该值可以为0、1、2和4,每个值指定下列相应的审阅状态:
0 = NULL
1 = 接受
2 = 拒绝
3 = 取消
4 = 完成
返回值:
成功则返回0,反之则返回-1。
^GetMigrationState
获取注释的迁移状态
函数原型:
long GetMigrationState()
参数:

返回值:
下列不同的返回值表示注释不同的迁移状态:
0 = NULL
1 = 未确认
2 = 已确认
-1 = 其他
^SetMigrationState
设置注释的迁移状态(不支持图片、视频、音频和链接等注释)
函数原型:
long SetMigrationState(long state)
参数:
state: 输入值,用以指定注释的迁移状态。该值可以为0、1或2,分别指定下列状态:
0 = NULL
1 = 未确认
2 = 已确认
返回值:
成功则返回0,反之则返回-1。
^SetStartingPoint
对于线条和箭头注释,设置它们的起点。
函数原型:
long SetStartingPoint(float PointX, float PointY)
参数:
PointX: 输入值,用以设置起点的X坐标
PointY: 输入值,用以设置起点的Y坐标
返回值:
成功则返回0,反之则返回-1。
^GetStartingPoint
对于线条和箭头注释,获取这些注释的起点。
函数原型:
long GetStartingPoint(float* PointX, float* PointY)
参数:
PointX: 输出值,用以接收起点的X坐标
PointY: 输出值,用以接收起点的Y坐标
返回值:
成功则返回0,反之则返回-1。
^SetEndingPoint
设置注释的终点。仅适用于线条和箭头注释。
函数原型:
long SetEndingPoint(float PointX, float PointY)
参数:
PointX: 输入值,用以设置终点的X坐标
PointY: 输入值,用以设置终点的Y坐标
返回值:
成功则返回0,反之则返回-1。
^GetEndingPoint
获得注释的终点。仅适用于线条和箭头注释。
函数原型:
Long GetEndingPoint(float* PointX, float* PointY)
参数:
PointX: 输出值,用以设置终点的X坐标
PointY: 输出值,用以设置终点的Y坐标
返回值:
成功则返回0,反之则返回-1。
^SetMediaPoster
为含海报的注释(如影像注释和音像注释)设置海报(图片)。
函数原型:
long SetMediaPoster(LPCTSTR ImageFilePath)
参数:
ImageFilePath: 输入图片文件的路径
返回值:
成功则返回0,反之则返回-1。
^SetMultimedia
设置支持多媒体注释的多媒体内容
函数原型:
Long SetMultimedia (LPCTSTR FilePath, LPCTSTR ContentType, BOOL Embed, BOOL bShowCtrlBar)
参数:
FilePath: 媒体文件路径
ContentType: 媒体数据的MIME类型
Embed : 表明是否在PDF文件中嵌入媒体
bShowCtrlBar: 表明是否显示控制条
返回值:
成功则返回0,反之则返回-1。
^SetLinkQuadPoints
设置链接注释的外观
函数原型:
long SetLinkQuadPoints(long* PointsArray, long PointsCount)
参数:
PointsArray: 点阵
PointsCount: 点阵的大小应为4
返回值:
成功则返回0, 反之则返回-1。
^SetPolygonVertices
设置多边形注释的外观
函数原型:
long SetPolygonVertices(long* PointsArray, long PointsCount)
参数:
PointsArray 点阵
PointsCount 点阵的大小
返回值:
成功则返回0,反之则返回-1。
^SetPencilVertices
设置铅笔注释的外观
函数原型:
long SetPencilVertices(long* PointsArray, long PointsCount)
参数:
PointsArray 一组线条集,每条线代表一个点阵
PointCount 点阵的大小
返回值:
成功则返回0,反之则返回-1。
^AttachFile
为附件注释指定添加的文件
函数原型:
long AttachFile(LPCTSTR FileName)
参数:
FileName 输入文件的路径
返回值:
成功则返回0,反之则返回-1。
^GetReplyList
获取注释回复
函数原型:
IPDFAnnotReplyList* GetReplyList()
返回值:
成功则返回注释回复,若无注释回复,则返回NULL。
^UpdateAnnotReplies
更新注释回复
函数原型:
Void UpdateAnnotReplies(IPDFAnnotReplyList* pReplies)
参数:
pReplies – 待更新的注释回复
返回值:

备注:
更新注释的所有回复
^GetPrivateFlag
获取PDF注释的私有标记。
函数原型:
BSTR GetPrivateFlag()
参数:

返回值:
返回PDF注释的私有
^SetPrivateFlag
设置PDF注释的私有标记。
函数原型:
void SetPrivateFlag(BSTR flag)
参数:
flag – PDF注释的私有标记
返回值:

事件

^OnAnnotCreated

创建注释后触发该事件,该事件由第三方完成。
函数原型:
Void OnAnnotCreated(long pageIndex, long annotIndex)
参数:
pageIndex – 页面索引
annotIndex – 注释索引
^OnAnnotDeleted
删除注释后触发该事件,该事件由第三方完成。
函数原型:
Void OnAnnotDeleted(long pageIndex, long annotIndex)
参数:
pageIndex – 页面索引
annotIndex – 注释索引
^OnAnnotModified
编辑注释后触发该事件,该事件由第三方完成。
函数原型:
Void OnAnnotModified(long pageIndex, long annotIndex)
参数:
pageIndex – 页面索引
annotIndex – 注释索引
^OnAnnotReplyCreated
创建注释回复后触发该事件,该事件由第三方完成
函数原型:
Void OnAnnotReplyCreated(long pageIndex, long annotindex, BSTR replyNM)
参数:
pageIndex – 页面索引
annotIndex – 注释索引
pReply – reply标注的名称
^OnAnnotReplyDeleted
删除注释回复后触发该事件,该事件由第三方完成。
函数原型:
Void OnAnnotReplyDeleted(long pageIndex,
long annotindex, BSTR pReply)
参数:
pageIndex – 页面索引
annotIndex – 注释索引
pReply – reply标注的名称
^OnAnnotReplyModified
修改注释回复后触发该事件,该事件由第三方完成。
函数原型:
Void OnAnnotReplyModified(long pageIndex, long annotindex, BSTR pReply)
参数:
pageIndex – 页面索引
annotIndex – 注释索引
pReply – reply标注的名称
^OnAnnotRButtonDown
右击注释时触发该事件
函数原型:
Void OnAnnotRButtonDown(IPDFAnnot* Annot, float x, float y,
BOOL* bDefault);
参数:
Annot – 右击选中的注释
x – 注释的水平坐标(PDF坐标系)
y – 注释的垂直坐标(PDF坐标系)
bDefault – 值为True则启用按钮的默认动作,反之则禁用按钮的默认动作。
返回值:

^OnAnnotRButtonUp
释放右键按钮时触发该事件
函数原型:
Void OnAnnotRButtonUp(IPDFAnnot* Annot, float x, float y, BOOL* bDefault);
参数:
Annot – 右击选中的注释
x – 注释的水平坐标(PDF坐标系)
y – 被移动注释的垂直坐标(PDF坐标系)
bDefault – 值为True则启用按钮的默认动作,反之则禁用按钮的默认动作。
返回值:

^OnAnnotLButtonDbClick
双击注释时触发该事件
函数原型:
Void OnAnnotLButtonDbClick(IPDFAnnot* Annot, float x, float y,
BOOL* bDefault);
参数:
Annot – 双击选中的注释
x – 注释的水平坐标(PDF坐标系)
y – 被移动注释的垂直坐标(PDF坐标系)
bDefault – 值为True则启用按钮的默认动作,反之则禁用按钮的默认动作。
返回值:

^OnAnnotLButtonDown
左键点击注释时触发该事件。
函数原型:
void OnAnnotLButtonDown(IPDFAnnot* Annot, float x, float y, BOOL* bDefault)
参数:
Annot – 左键点击选中的注释
x – 注释的水平坐标(PDF坐标系)
y – 注释的垂直坐标(PDF坐标系)
bDefault – 值为True则启用按钮的默认动作,反之则禁用按钮的默认动作。
返回值:

^OnAnnotLButtonUp
释放左键按钮时触发该事件
函数原型:
void OnAnnotLButtonUp(IPDFAnnot* Annot, float x, float y, BOOL* bDefault)
参数:
Annot – 左键点击选中的注释
x – 注释的水平坐标(PDF坐标系)
y – 被移动注释的垂直坐标(PDF坐标系)
bDefault – 值为True则启用按钮的默认动作,反之则禁用按钮的默认动作。
返回值:

^OnAnnotPosChanged
当注释的位置被改变时触发该事件
函数原型:
void OnAnnotPosChanged(IPDFAnnot* Annot, float x, float y)
参数:
Annot – 左键点击选中的注释
x – 注释的水平坐标(PDF坐标系)
y – 被移动注释的垂直坐标(PDF坐标系)
返回值:

^OnAnnotMoving
移动注释时触发该事件
函数原型:
void OnAnnotMoving(IPDFAnnot* Annot, float x, float y, BOOL* bDefault);
参数:
Annot – 待移动的注释
x – 注释的水平坐标(PDF坐标系)
y – 被移动注释的垂直坐标(PDF坐标系)
bDefault – 值为True则启用按钮的默认动作,反之则禁用按钮的默认动作。
返回值:

^OnAnnotMouseEnter
鼠标移至注释时触发该事件
函数原型:
void OnAnnotMouseEnter(IPDFAnnot* Annot);
参数:
Annot – 输入的注释
返回值:

^OnAnnotMouseExit
鼠标移出注释时触发该事件
函数原型:
void OnAnnotMouseExit(IPDFAnnot* Annot);
参数:
Annot – 鼠标移出的注释
返回值:

^OnDrawLineAnnot
创建或者拖动Line类型注释时触发该事件
函数原型:
Void OnDrawLineAnnot(float pointStartX, float pointStartY, float pointEndX, float pointEndY, long borderType, float thickness, long color, float opacity);
参数:
pointStartX – 线型注释的起始点的水平坐标
pointStartY: – 线型注释的起始点的垂直坐标
pointEndX: – 线型注释的终点的水平坐标
pointEndY: – 线型注释的终点的垂直坐标
borderType: – 边框的样式类型
0: Unknown
1: Solid
2: Dashed
3: Beveled
4: Inset
5: Underline
thickness: – 边框的厚度
color: – 注释的颜色,COLORREF类型
opacity: – 注释的透明度,取值范围为0-100,其中0代表透明,100代表完全不透明。
返回值:

^GetRectTop
获取PDF注释对象的顶部坐标
函数原型:
float GetRectTop()
参数:

返回值:
返回PDF注释对象的顶部坐标。
^GetRectLeft
获取PDF注释对象的左侧坐标
函数原型:
float GetRectLeft()
参数:

返回值:
返回PDF注释对象的左侧坐标。
^GetRectRight
获取PDF注释对象的右侧坐标
函数原型:
float GetRectRight()
参数:

返回值:
返回PDF注释对象的右侧坐标。
^GetRectBottom
获取PDF注释对象的底部坐标
函数原型:
float GetRectBottom()
参数:

返回值:
返回PDF注释对象的底部坐标。
^OnAnnotResizing
当stamp注释改变大小时触发该事件
函数原型:
void OnAnnotResizing(IPDFAnnot* Annot, BOOL* bDefault);
参数:
Annot – PDF注释对象
bDefault – 值为True则启用注释改变大小时的默认动作,反之则禁用其默认动作。
返回值:

^ IPDFAnnotReplyList

方法

^ GetCount

获取回复的数量
函数原型:
long GetCount()
返回值:
返回回复的数量
^ GetItem
获取指定注释的回复
函数原型:
CPDFAnnotReply GetItem(long nIndex)
参数:
nIndex – 回复的索引
返回值:
成功则返回指定的回复,反之则返回NULL。
^ Remove
删除指定的回复
函数原型:
Void Remove(long nIndex)
参数:
nIndex – 待删除的回复的索引
^ RemoveAll
删除回复列表中所有的回复
函数原型:
Void RemoveAll()
^ Add
添加新的回复
函数原型:
Void Add(LPCTSTR Creator, LPCTSTR Content, DATE CreationDate, long nIndex)
参数:
Creator – 回复人
Content – 回复内容
CreationDate – 回复时间
nIndex – 添加回复的位置(从0开始),若为-1,则在回复列表末尾添加回复。
备注:
假设原回复列表中有N条回复,则nIndex的范围为[0,N-1]。

^IPDFAnnotReply

方法

^ SetCreator

设置注释回复的创建者
函数原型:
Void SetCreator(LPCTSTR Creator)
参数:
Creator – 注释回复的创建者
^ GetCreator
获取注释回复的创建者
函数原型:
BSTR GetCreator()
返回值:
返回注释回复的创建者
^ SetContent
设置注释回复内容
函数原型:
Void SetContent(LPCTSTR Content)
参数:
Content 注释回复内容
^ GetContent
获取注释回复内容
函数原型:
BSTR GetContent()
返回值:
返回注释回复的内容
^ GetChildren
获取子注释回复
函数原型:
IPDFAnnotReplyList* GetChildren()
返回值:
成功则返回子注释回复,若无子回复,则返回NULL。
^ GetParent
获取父类注释回复
函数原型:
CPDFAnnotReply GetParent()
返回:
成功则返回父类注释回复,若无子回复,则返回NULL。
^ GetCreationDate
获取注释回复的创建时间
函数原型:
DATE GetCreationDate()
返回值:
返回注释回复的创建时间
^ SetCreationDate
设置注释回复的创建时间
函数原型:
Void SetCreationDate(DATE CreationDate)
参数:
CreationDate – 注释回复的创建时间
^ SetReadonly
将注释回复设置为只读型
函数原型:
Void SetReadonly(BOOL bNewValue)
参数
bNewValue 值为TRUE则设置注释回复为只读型,值为FALSE则为读/写型。
^ GetReplyID
获取注释回复的唯一ID
函数原型:
long GetReplyID()
返回值:
返回注释回复的唯一ID。

^IPDFormatTool

IPDFormatTool类提供了相应的接口,允许用户在PDF应用程序中设置free text类型(FreeTextAnnot)批注的格式。该接口使用的格式化工具与福昕阅读器注释工具栏中的格式化工具相同。在ActiveX控件中free text 类型的批注分为三种,分别是Typewriter、Callout和TextBox。每一种都有与之对应的格式数据。需要注意的是,在你修改当前free text批注的时候,相对应的CPDFFormatTool中的的数据也会被修改。IPDFFormatTool类仅对free text类型的批注有效。

方法

^SetFontName

设置当前字体的名称
函数原型:
Void SetFontName(BSTR FontName)
参数:
FontName 字体名称
返回值:

^GetFontName
获取当前使用的字体的名称。
函数原型:
BSTR GetFontName()
参数:

返回值:
返回当前正在使用的字体的名称。
^SetFontSize
设置字体的大小。
函数原型:
Void SetFontSize(float FontSize)
参数:
FontSize 字体大小
返回值:

^GetFontSize
获取当前正在使用的字体的字号。
函数原型:
Float GetFontSize.
参数:

返回值:
返回当前正在使用的字体的字号。
^SetFontColor
设置当前字体的颜色。
函数原型:
Void SetFontColor(OLE_COLOR FontColor)
参数:
FontColor 字体颜色
返回值:

^GetFontColor
获取字体的颜色。
函数原型:
OLE_COLOR GetFontColor()
参数:

返回值:
返回当前字体的颜色。
^SetBorderColor
设置字体边框的颜色。
函数原型:
Void SetBorderColor(OLE_COLOR color)
参数:
Color 字体边框的颜色。
返回值:

^GetBorderColor
获取当前字体的边框颜色。
函数原型:
OLE_COLOR GetBorderColor()
参数:

返回值:
返回当前字体的边框颜色。
^SetFillColor
设置当前字体的填充颜色。
函数原型:
Void SetFillColor(OLE_COLOR FillColor)
参数:
FillColor: 字体的填充颜色。
返回值:

^GetFillColor
获取字体的填充颜色。
函数原型:
OLE_COLOR GetFillColor()
参数:

返回值:
返回字体的填充颜色。
^SetFontBold
设置文本是否显示为粗体。
函数原型:
Void SetFontBold(BOOL FontBold)
参数:
FontBold: 表示文本是否显示为粗体。
返回值:

备注:
只有在当前字体是Courier, Helvetica, Times Roman 时,bold属性和italic属性才允许被设置。
^GetFontBold
获取文本显示的状态是否为粗体。
函数原型:
BOOL GetFontBold()
参数:

返回值:
如果文本显示状态为粗体,则返回值等于TRUE,反之则等返回FALSE。
^GetFontBoldEnable
指明格式化工具中是否启用了加粗功能
函数原型:
BOOL GetFontBoldEnalbe()
参数:

返回值:
若已启用加粗功能,则返回TRUE,反之则返回FALSE。
^SetFontItalic
设置文本是否显示为斜体。
函数原型:
Void SetFontItalic(BOOL FontItalic)
参数:
FontItalic 表示文本是否显示为斜体。TRUE表示显示为斜体,FALSE表示不显示斜体。
返回值:

^GetFontItalic
获取文本显示的状态是否斜体。
函数原型:
BOOL GetFontItalic()
参数:

返回值:
文本显示为斜体,则返回TRUE,反之则返回FALSE。
^GetFontItalicEnable
指明是否可以将字体设置为斜体
函数原型:
BOOL GetFontItalicEnable()
参数:

返回值:
如果文本显示状态为斜体,则返回值等于TRUE,反之则等返回FALSE。
^SetAlign
设置文本对齐的方式。
函数原型:
Void SetAlign(AlignStyle Style)
参数:
Style: 文本对齐方式。包括如下选项
ASLEFT =0, 左对齐
ASMIDDLE =1, 居中对齐
ASRIGHT =2, 右对齐
返回值:

^GetAlign
获取文本对齐的方式。
函数原型:
AlignStyle GetAlign()
参数:

返回值:
返回文本对齐的方式。具体返回值可以是:
ASLEFT =0, 左对齐
ASMIDDLE =1, 居中对齐
ASRIGHT =2, 右对齐
^SetCharSpace
设置字符间距。
函数原型:
Void SetCharSpace(float CharSpace)
参数:
CharSpace: 字符间距
返回值:

^GetCharSpace
获取字符间距。
函数原型:
float GetCharSpace()
参数:

返回值:
返回字符间距。
^SetCharHorzScale
设置字符的水平缩放比率。
函数原型:
Void SetCharHorzScale(float CharHorzScale)
参数:
CharHorzScale: 水平拉伸比率
返回值:

^GetCharHorzScale
获取字符水平缩放比率。
函数原型:
float GetCharHorzScale()
参数:

返回值:
返回字符水平缩放比率。

&IPDFSignatureMgr

方法

&Add

添加未签名的签名域
函数原型:
IPDFSignatureField* Add(long pageIndex, float left, float top, float right, float bottom);
参数:
pageIndex – PDF中待添加签名域的页面索引
left – 签名矩形区域起始位置的水平坐标
top – 签名矩形区域起始位置的垂直坐标
right – 签名矩形区域结束位置的水平坐标
bottom – 签名矩形区域结束位置的垂直坐标
返回值:
新创建的 IPDFSignatureField对象。
备注:
左下方是PDF文件的原始点。
&SignDocument
对未签名的签名域进行签名,默认签名成功时会关闭源文档,并打开签名后的文档
函数原型:
boolean SignDocument(LPDISPATCH pSigField, BSTR signedFilePath, boolean bDefault);
参数:
pSigField – 待签名的IPDFSignatureField 对象
signedFilePath – 签名后PDF文件的保存路径
bDefault – 是否使用默认签名
返回值:
返回签名是否成功。
备注:
若您使用默认的算法添加签名,则调用该接口来完成签名;若不是使用默认的算法添加签名,则调用以下接口运行第三方签名工具来签署PDF文件:

首先,通过GetSourceBufferGetSourceBufferLen接口来获取待签署文件的内容流;然后,使用第三方工具添加签名;最后,调用CreateSignedDoc来完成签名。
运用标准算法成功添加签名后,PDF文件将会重新打开,同时IPDFSignatureField对象也会失效。如果您需要继续操作IPDFSignatureField对象,则需要再次获取该对象。
&Verify
验证签名域
函数原型:
boolean Verify(LPDISPATCH pSigField, boolean bShowStateDialog);
参数:
pSigField: 指定待验证的签名域
bDefaultVerified: 指明是否采用默认的算法来验证签名域。值为TRUE则表示采用默认的算法。
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
若您采用默认的算法来添加签名,则调用该接口来完成PDF文件验证。
若您采用第三方签名算法来添加签名,则在调用该接口后,调用以下接口来验证PDF文件:
首先,通过GetSourceBufferGetSignedBuffer接口验证所签署的文件;然后,调用SetVerifyResult接口将验证结果传至ActiveX;
最后,通过IPDFSignatureField的GetState接口获取验证结果。
&GetCounts
计算签名个数。
函数原型:
long GetCounts();
返回值:
签名域的总个数(包括已签名域与未签名域)
&Get
通过索引获取签名域
函数原型:
LPDISPATCH Get(long index);
参数:
index – 通过指定索引获取签名域对象
返回值:
返回IPDFSignatureField 对象的索引。
&Clear
清空签名域,即把签名的相关信息(包括外观)进行清除,在页面上留下一个未签名的签名域对象
函数原型:
boolean Clear(LPDISPATCH pSigField);
参数:
pSigField – 待清空的IPDFSignatureField 对象
返回值:
返回值指明签名域是否成功清空
&Remove
移除未签名的签名域,即删除一个为签名的签名域对象。
函数原型:
boolean Remove(LPDISPATCH pSigField);
参数:
pSigField: 需要移除的PDFSignatField对象
返回值:
返回值指明删除操作是否成功。
&VerifyAll
验证所有已签名的签名域
函数原型:
boolean VerifyAll();
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
一般在刚开发文档时要求验证所有签名域对象的情况下使用该接口,这时,在默认情况下,无需弹出状态对话框。
&InitStraddleValue
使用骑缝签章
函数原型:
BOOL InitStraddleValue(IPDFSignatureField* pSigField)
参数:
pSigField: 待签名的IPDFSignatureField 对象
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
调用该接口后,调用正常的签章流程(包括标准签名和第三方签名)来添加骑缝章。
&CreatePatternSigField
创建签章模板
函数原型:
IPDFSignatureField* CreatePatternSigField();
参数:
Null
返回值:
返回签章域
&SetCurPattenSigField
设置签章模块
函数原型:
boolean SetCurPattenSigField(short nIndex);
参数:
nIndex:要选择的模板编号,从0开始
返回值:
设置模板成功返回true,错误返回flase.
&CountPatternSigFiel
统计签名模板的个数
函数原型:
SHORT CountPatternSigField()
参数:

返回值:
返回签名模块的总个数

&IPDFSignatureField

属性

&Reason

类型:
String
描述:
签名原因
操作:
可读可写
&Location
类型:
String
描述:
签名物理位置
操作:
可读可写
&Signer
类型:
String
描述:
签名者
操作:
可读可写
&Filter
类型:
String
描述:
签名域对象的签名算法Filter名称,默认的Foxit签名算法Filter为Adobe.PPKLite。
操作:
可读可写
&SubFilter
类型:
String
描述:
签名域对象的签名算法subFilter名称,默认的Foxit签名算法的SubFilter为adbe.pkcs7.detached。
&State
类型:
Short
描述:
签章当前状态(如果是默认签名时,该状态由ActiveX内部定义,否则,该值由应用定义并用SetVerifyResult传给ActiveX)
0: 未知签名
1: 验证通过
2: 验证未通过
3: 未签名
操作:
只读

方法

&SetAPOptions

设置客户化外观的外观显示选项值
函数原型:
boolean SetAPOptions(long opts);
参数:
opts: 客户化外观显示选项设置(0-511)
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
客户化外观提供了下面的显示选项可供用户选择, 需在SignDocument之前调用。
全部不显示 – 0
显示全部 – 511
显示文本 – 0x100L
显示图片 – 0x080L
显示签名者 – 0x040L
显示位置 – 0x020L
显示 DN – 0x010L
显示时间 – 0x008L
显示原因 – 0x004L
显示标签 – 0x002L
显示FoxitFlag – 0x001L
&SetAPText
设置签名域AP显示的文本
函数原型:
boolean SetAPText(BSTR text);
参数:
text: 设置显示的文本
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
需要在调用SignDocument之前调用
&SetAPImage
设置签名域中显示的图片
函数原型:
boolean SetAPImage(BSTR imageFilePath, boolean bSetMask, OLE_COLOR clrMask);
参数:
imageFilePath: 指定签名域中图像的路径
bSetMask: 该参数数值指定是否给图片背景设置遮罩效果(注:图片背景必须纯色的)
clrMask: 设置Mask色值
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
需在 SignDocument之前调用
&IsSigned
判断签名域是否已经被签名
函数原型:
boolean IsSigned();
返回值:
已签署则返回TRUE,反之则返回FALSE。
&SetSignerDN
设置证书识别名称
函数原型:
boolean SetSignerDN(BSTR dn);
参数:
dn: 证书识别名称
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
需在 SignDocument之前调用
&SetStatusImage
设置签名状态图章样式
函数原型:
boolean SetStatusImage(BSTR imagePath, short sState, short sMode, boolean bRotate, boolean bSetMask, OLE_COLOR clrMask);
参数:
imagePath: 状态图片的路径
sState: 签章的状态,该值由属性Status决定。
sMode: 图片显示的模式:
0为默认的图片显示位置(即签章左上角);
1为图片覆盖整个章区域显示
bRotate: 图标是否随着签章对象旋转而旋转(默认为不旋转)。
bSetMask: 是否为图片背景色设置遮罩效果(注:图片背景必须是纯色的)
clrMask: 设置Mask色值。
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
设置的图片不会保存至PDF,只有在Signature状态改变前设置有效。
&GetPageIndex
获取签名的页面索引
函数原型:
long GetPageIndex();
返回值:
获取签名的页面索引
&GetSourceBuffer
获取待签名或待验证时源文档内容流
函数原型:
VARIANT GetSourceBuffer();
返回值:
源文档内容流
备注:
调用该接口前先调用SignDocumentVerify并返回True。
内容流存在VARIVANT的parray域中,vc中使用parray->pvData获得内容流的指针;js使用getArray()获取内容流数组。
&GetSourceBufferLen
获取待签名时或待验证时源文档内容流长度
函数原型:
long GetSourceBufferLen();
返回值:
内容流长度
备注:
调用该接口前先调用SignDocumentVerify并返回True。
&GetSignedBuffer
获取签名后的签名内容流
函数原型:
VARIANT GetSignedBuffer();
返回值:
签名内容流
备注:
调用该接口前先调用Verify并返回True。
内容流存在VARIVANT的parray域中,vc中使用parray->pvData获得内容流的指针;js使用getArray()获取内容流数组。
&GetSignedBufferLen
获取签名后签名内容流的长度
函数原型:
long GetSignedBufferLen();
返回值:
返回内容流的长度
备注:
调用该接口前先调用Verify并返回True。
&CreateSignedDoc
第三方签名生成所需的签名文档(路径设置在SignDocument接口中)
函数原型:
boolean CreateSignedDoc(VARIANT signedBuf, long length);
参数:
signedBuf: 签名后的内容流
length: 签名后内容流的长度
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
调用该接口前需先调用SignDocument设置签名文档保存路径和不使用默认签名。signedBuf在vc使用指针存在VARIANT的pbVal域中,js则使用数组对象作为参数。
签名成功后,PDF会重新打开,PDFSignatureField对象会失效,需要重新获取。
&SetVerifyResult
设置第三方验证结果
函数原型:
Boolean SetVerifyResult(short sResult);
参数:
sResult: 用户自定义验证结果
0 – 未知签名
1 – 验证通过
2 – 验证未通过
3 – 未签名
返回值:
成功则返回TRUE,反之则返回FALSE。
&SetCertPath
设置证书内容
函数原型:
boolean SetCertPath(BSTR certPath, BSTR pfxPsw);
参数:
certPath: 证书路径
pfxPsw: 证书密码
返回值:
成功则返回TRUE, 反之则返回FALSE。
备注:
pCertData在vc使用指针存在VARIANT的pbVal域中,js则使用数组对象作为参数。
&SetCertData
设置证书内容
函数原型:
boolean SetCertData(VARIANT pCertData, long length, BSTR pfxPsw);
参数:
pCertData: 证书内容流
length: 内容流字节数
pfxPsw: 证书密码
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
pCertData在vc使用指针存在VARIANT的pbVal域中,js则使用数组对象作为参数。
&SetCertContext
设置证书上下文
函数原型:
boolean SetCertContext(long pCertContext);
参数:
pCertContext: 证书上下文类型PCCERT_CONTEXT
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
&SetCertPath/&SetCertData/ &SetCertContext这三个接口只要设置其中一个,证书就可生效。
&SetAPImageData
设置签名域外观显示图像的字节流
函数原型:
boolean SetAPImageData(VARIANT imageDataBuffer, BSTR imageType,
long dataSize, boolean bSetMask, OLE_COLOR clrMask);
参数:
imageDataBuffer: 图片字节流
imageType: 图片类型
dataSize : 字节流长度
bSetMask: 是否遮罩
clrMask: 遮罩颜色
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
pCertData在vc使用指针存在VARIANT的pbVal域中,js则使用数组对象作为参数。
&SetStatusImageData
设置签名域外观图片的字节流
函数原型:
Boolean SetStatusImageData(VARIANT imageDataBuffer, BSTR imageType, long dataSize, short sState, short sMode, boolean bRotate, boolean bSetMask, OLE_COLOR clrMask);
参数:
imageDataBuffer: 图片字节流
imageType: 图片类型(可支持的类型包括:bmp、jpg、png和gif)
dataSize : 字节流长度
sState: 签章状态,该值由属性Status决定
sMode: 图片显示的模式;
0为默认的图片显示位置(即为签章左上角);
1为图片覆盖整个章区域显示
bRotate: 是否图标随着签章对象旋转而旋转(默认不旋转)
bSetMask: 是否需要对图片背景色做遮罩(图片背景必须是纯色)
clrMask : 设置Mask色值
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
imageDataBuffer在vc使用指针存在VARIANT的pbVal域中,js则使用数组对象作为参数。
&TurnGray
签章显示灰化
函数原型:
boolean TurnGray(boolean bGray,boolean bCanModify);
参数:
bGray: 是否灰化
bCanModify: 是否可以修改
返回值:
成功则返回TRUE,反之则返回FALSE。
&TurnBlur
签章显示雾化
函数原型:
boolean TurnBlur(boolean bBlur);
参数:
bBlur – 是否雾化
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
该接口只在控件中改变签章的显示,未改变PDF内容流。
&SetVisible
签章是否显示
函数原型:
boolean SetVisible(boolean bVisible);
参数:
bVisible – 是否显示
返回值:
成功则返回TRUE,反之则返回FALSE。
&GrayPrint
签章灰化打印
函数原型:
boolean GrayPrint(boolean bGrayPrint);
参数:
bGrayPrint – 是否灰化打印
返回值:
成功则返回TRUE,反之则返回FALSE。
备注:
该接口只在控件中改变签章的显示,未改变PDF内容流。
&SetStraddleType
设置骑缝章的类型
函数原型:
BOOL SetStraddleType(short nType)
参数:
nType: 数值必须为: 0, 1, 2, 3, 4;
0指的是中骑缝章;
1指的是左骑缝章;
2指的是右骑缝章;
3 指的是上骑缝章;
4指的是下骑缝章;
返回值:
成功则返回TRUE,反之则返回FALSE。
&SetStraddlePos
设置骑缝章的位置
函数原型:
BOOL SetStraddlePos(float fPos)
参数:
fPos: 若骑缝章位于顶端或底端,则该参数值为签名域的水平中间点;反之,则为签名域的垂直中间点。
返回值:
成功则返回TRUE,反之则返回FALSE。
&SetStraddleBitmap
根据签名状态设置骑缝章的外观图片
函数原型:
BOOL SetStraddleBitmap(short nState, BSTR sFilePath)
参数
nState: 数值必须为: 0, 1, 2, 3;
0 – 表示未知状态;
1 – 表示未签署;
2 – 表示有效;
3 – 表示无效;
sFilePath – 图片文件的路径
返回值:
成功则返回TRUE,反之则返回FALSE。
&SetStraddlePages
设置签名显示的页码范围
函数原型:
BOOL SetStraddlePages(BSTR sRange)
参数:
sRange -该参数值为跨骑缝章显示的页码范围,如: “0-10” 或“0-2,3-10”;
返回值:
成功则返回TRUE,反之则返回FALSE。
&SetStraddleFirstPagePercent
设置首个含有骑缝章的PDF页面中骑缝章外观的百分比
函数原型:
BOOL SetStraddleFirstPagePercent(float fPercent)
参数:
fPercent – 该参数值的范围为0-1
返回值:
成功则返回TRUE,反之则返回FALSE。
&SetSigFieldAlpha
设置签章图片的透明度。
函数原型:
boolean SetSigFieldAlpha(short alpha)
参数:
alpha: 设置通明度的值(0~255)
说明: 图片透明度设置是叠加模式,在原有的透明上叠加。
返回值:
设置成功返回true 错误返回false
&Refresh
刷新签章域。
函数原型:
void Refresh();
参数:
Null
返回值:
Null
备注:
此接口只有在签章未完成之前有效。
&SetDefaultContentsLength
设置在使用第三方加密算法时要加密的内容的长度。
函数原型:
BOOL SetDefaultContentsLength(long length);
参数:
length – 需要加密的内容的长度。该值最多是内容总长度的一半。
返回值:
成功则返回TRUE,反之则返回FALSE。

事件

&OnSetSignatureInfo

单击未签名的签名域或右击选择签名时触发该事件。在该事件中设置PDFSignatureField签名必要的属性完成签名。
函数原型:
void OnSetSignatureInfo(IPDFSignatureField* pSignature);
参数:
pSignature: 单击或右击的签名域对象
&OnSigning
若对象未签名会继续触发该事件,在该事件中进行默认或第三方签名。
函数原型:
void OnSigning(IPDFSignatureField* pSignature);
参数:
pSignature – 当前单击的签名域对象
&OnVerifying
单击已签名对象或右键选择验证时触发该事件,在该事件中进行默认或自定义验证。
函数原型:
void OnVerifying(IPDFSignatureField* pSignature);
参数:
pSignature – 当前单击的签名域对象
&OnShowSignaturePropertyDialog
右击签名域对象选择查看签名属性时触发该事件
函数原型:
Void OnShowSignaturePropertyDialog (IPDFSignatureField*pSignature, boolean* bShowProperty);
参数:
pSignature: 当前右击的签名域对象
bShowProperty: 是否弹出签名域的属性对话框

*IPDFTextDoc

方法

*ReleasePDFTextDoc

释放IPDFTextDoc占用的所有资源。
函数原型:
void ReleasePDFTextDoc();
*LoadPDFTextPage
初始化PDF页面所有文本字符的信息。
函数原型:
IPDFTextPage* LoadPDFTextPage(long pageIndex)
参数:
pageIndex: 从0开始,PDF页码。
返回值:
一个IPDFTextPage对象。

*IPDFTextPage

方法

*ReleasePDFTextPage

释放IPDFTextPage占用的所有资源。
原型:
void ReleasePDFTextPage();
*CountChars
获取PDF页面中的文本字符数量。
原型:
long CountChars();
返回值:
PDF页面中包含的文本字符个数。
*GetChars
获取PDF页面中指定范围内的文本内容。
原型:
BSTR GetChars(long start, long count);
参数:
start: 起始字符的位置。范围是0到CountChars-1。
count: 期望获取的字符数量。-1表示获取所有的字符;如果count>(CountChars-start),则表示获取start之后所有剩余的字符。
返回值:
一个文本字符串。
*GetCharInfo
获取指定字符的信息。
原型:
IPDFCharInfo* GetCharInfo(long charIndex);
参数:
charIndex: 字符索引。范围是0到(CountChars-1)。
返回值:
一个IPDFCharInfo对象。
*GetCharIndexAtPos
获取PDF页面中指定位置上或指定位置附近的字符的索引。
原型:
long GetCharIndexAtPos (float x, float y, float tolerance);
参数:
x: X值(用户空间)。
y: Y值(用户空间)。
tolerance: 与指定位置的容差。单位为像素,且必须是非负数。
返回值:
在指定位置上或指定位置附近的字符的索引。
*GetNextCharIndexByDirection
在指定的方向上,获取下一个字符的索引。
原型:
long GetNextCharIndexByDirection(long curIndex, short direction);
参数:
curIndex: 当前字符的索引。从0开始计算。
direction: 获取下一个字符的索引的方向。其值包括:-1、1、-2和2。
-1 – 当前字符的左侧。
1 – 当前字符的右侧。
-2 – 当前字符的上方。
2 – 当前字符的下方。
返回值:
下一个字符的索引。从0开始计算。以下三种情况表示错误:
-1 – 表示已到页面顶端。
-2 – 表示已到页面底部。
-3 – 表示存在其他未知的错误。
*SelectByRange
将指定范围的字符转换为一个IPDFTextSelection对象。
原型:
IPDFTextSelection* SelectByRange (long start, long count);
参数:
start: 起始字符的位置。从0开始计算。
count: 期望获取的字符数量。-1表示获取所有的字符。
返回值:
一个IPDFTextSelection对象。
*SelectByRectangle
将指定矩形区域内的字符转换为一个IPDFTextSelection对象。
原型:
IPDFTextSelection* SelectByRectangle (long left, long top, long right, long bottom);
参数:
left: 矩形区域的左侧。
top: 矩形区域的顶部。
right: 矩形区域的右侧。
bottom: 矩形区域的底部。
返回值:
一个IPDFTextSelection对象。
*StartSearch
准备开始一个PDF文本查询操作。
原型:
IPDFTextSearch* StartSearch(BSTR searchPattern, long flags, long startIndex );
参数:
searchPattern: 要查询的关键字。
flags: 查询设置。0表示没有限制。也可以是以下数值的一个或多个的组合。
1 – 区别大小写。
2 – 全字匹配。
4 – Consecutive
startIndex: 查询的起始位置。从0开始计算。-1表示从页面尾部开始查询。
返回值:
如果成功,则返回IPDFTextSearch。
*ExtractLinks
提取PDF页面中URL格式的内容。
原型:
IPDFTextLink* ExtractLinks ();
返回值:
一个IPDFTextLink对象。
*ExtractPageText
提取PDF页面中的文本内容。
原型:
BSTR ExtractPageText ();
返回值:
文本字符串。

*IPDFCharInfo

属性

*state

类型:
short。只读。
描述:
字符的状态。包括以下三种值:
1 – Normal character.
2 – Character is generated by Foxit, such as space character.
3 – Character doesn’t have its own unicode value.
*fontSize
类型:
float。只读。
描述:
字符的字号大小。单位为1/72英寸。
*originX
类型:
float。只读。
描述:
基于PDF页面坐标系,字符的X值。-1表示错误。
*originY
类型:
float。只读。
描述:
基于PDF页面坐标系,字符的Y值。
*fontName
类型:
BSTR。只读。
描述:
字体名称。
*fontAscent
类型:
long。只读。
描述:
从基线(baseline)到字符顶部的距离。
*fontDescent
类型:
long。只读。
描述:
从基线(baseline)到字符底部的距离。
*displayFontSize
类型:
float
描述:
在阅读器中文本显示的字体大小

方法

*GetBBox

获取字符的范围。
原型:
VARIANT GetBBox();
返回值:
一个包含四个浮点数的数组,表示一个矩形区域。
0 – 左侧
1 – 顶部
2 – 右侧
3 – 底部
*GetMatrix
获取字符的矩阵变换。
原型:
VARIANT GetMatrix();
返回值:
一个包含6个浮点数的数组,表示一个矩阵变换。
0 – a
1 – b
2 – c
3 – d
4 – e
5 – f

*IPDFTextSearch

方法

*ReleaseTextSearch

释放IPDFTextSearch占用的所有资源。
原型:
void ReleaseTextSearch();
*FindNext
从页头向后查找下一个与条件匹配的结果。
原型:
BOOL FindNext ();
返回值:
布尔值,表示是否找到与条件匹配的结果。
*FindPrev
从页尾向前查找上一个与条件匹配的结果。
原型:
BOOL FindPrev ();
返回值:
布尔值,表示是否找到与条件匹配的结果。
*GetSelection
从当前符合条件的搜索结果中获取IPDFTextSelection对象。
原型:
IPDFTextSelection* GetSelection ();
返回值:
一个IPDFTextSelection对象。

*IPDFTextSelection

方法

*ReleaseTextSelection

释放IPDFTextSelection占用的所有资源。
原型:
void ReleaseTextSelection();
*GetBBox
获取IPDFTextSelection所包含的范围(一个矩形区域)。
原型:
VARIANT GetBBox();
参数:

返回值:
一个包含四个浮点数的数组,表示一个矩形区域。
0 – 左侧
1 – 顶部
2 – 右侧
3 – 底部
*GetBBoxEX
获取IPDFTextSelection所包含的范围(一个矩形区域)。可以被JavaScript调用。
原型:
VARIANT GetBBoxEx();
参数:

返回值:
一个包含四个浮点数的数组,表示一个矩形区域。
0 – 左侧
1 – 顶部
2 – 右侧
3 – 底部
*GetChars
从IPDFTextSelection中提取所有的文本字符。
原型:
BSTR GetChars();
返回值:
一个文本字符串。
*CountPieces
获取IPDFTextSelection中包含的矩形区域的数量,一个矩形区域包含一段文本。(常用于跨行选择)
原型:
long CountPieces ();
返回值:
IPDFTextSelection中包含的矩形区域的数量。
*GetPieceRect
获取IPDFTextSelection中指定的矩形区域。
原型:
VARIANT GetPieceRect(long pieceIndex);
参数:
pieceIndex: 从0开始,范围由CountPieces返回值决定。
返回值:
一个包含四个浮点数的数组,表示一个矩形区域。
0 – 左侧
1 – 右侧
2 – 顶部
3 – 底部
*GetPieceCharStart
获取IPDFTextSelection中指定矩形区域范围内的第一个字符的位置。
原型:
long GetPieceCharStart(long pieceIndex);
参数:
pieceIndex: 从0开始,范围由CountPieces返回值决定。
返回值:
指定矩形区域范围内的第一个字符的位置。-1表示错误。
*GetPieceCharCount
获取IPDFTextSelection中指定矩形区域范围内的字符数量。
原型:
long GetPieceCharCount(long pieceIndex);
参数:
pieceIndex – 从0开始,范围由CountPieces返回值决定。
返回值:
指定矩形区域范围内的字符数量。-1表示错误。

*IPDFTextLink

方法

获取PDF页面中符合URL格式的数量。
原型:
long CountLinks();
返回值:
符合URL格式的个数。-1表示错误。
*GetLink
获取与指定的超链接相关联的URL地址。
原型:
BSTR GetLink (long linkIndex);
参数:
linkIndex: 从0开始,范围由CountLinks的返回值决定。
返回值:
一个URL地址。
*GetSelection
从指定的超链接中获取IPDFTextSelection对象。
原型:
IPDFTextSelection* GetSelection (long linkIndex);
参数:
linkIndex: 从0开始,范围由CountLinks的返回值决定。
返回值:
一个IPDFTextSelection对象。

联系我们

如果您需要了解更多信息或对我们的产品有任何疑问,请随时联系我们,我们将竭诚为您服务。
福建福昕软件开发股份有限公司
地址: 福州市鼓楼区软件园 G 区 5 号楼
总机: 0591-38509898
传真: 0591-38509708
邮编: 350003
福建福昕软件开发股份有限公司北京分公司
地址: 北京市海淀区知春路 56 号中海实业大厦 9 层
电话: 010-50951668
传真: 010-50951666
邮编: 100098
福建福昕软件开发股份有限公司南京分公司
地址: 江苏省南京市中山东路 532- 2 号金蝶科技园 D 栋 601 室
电话: 025-84866095 84866195
传真: 025-84866295
邮编: 210000
福建福昕软件开发股份有限公司台湾联络处
地址:新北市淡水區自強路 9 號 1 樓
电话: +886-2-2809-2969
传真: +886-2-2808-6566
邮编: 25162
电子邮件:
邮箱咨询 – sales@foxitsoftware.cn
商务合作 – BD@foxitsoftware.cn
市场服务 – marketing@foxitsoftware.cn
客服支持 -请点击在线支持系统提交您的需求或问题
媒体关系 – PR@foxitsoftware.cn
网站问题 – webmaster@foxitsoftware.com
网址: www.foxitsoftware.cn

更新于 2020年4月29日

这篇文章有用吗?

添加评论