Foxit PDFActive X5.4 Manual 副本

FoxitPDFActiveX5.4_Manual

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 206

DownloadFoxit PDFActive X5.4 Manual - 副本
Open PDF In BrowserView PDF
Programming Guide

1 / 206

Programming Guide

Contents
Contents ............................................................................................................................................................... 2
Overview ............................................................................................................................................................ 18
Tutorials .............................................................................................................................................................. 19
Setup .......................................................................................................................................................... 19
1)

Get trial verion............................................................................................................................ 19

2)

Download MSI pack to install. .................................................................................................... 19

3)

Run demo. .................................................................................................................................. 19

Create project with ActiveX ........................................................................................................................ 21
1)

Register ....................................................................................................................................... 21

2)

Create a Project .......................................................................................................................... 21

3)

Select Foxit ActiveX SDK ............................................................................................................. 22

4)

Open a PDF document................................................................................................................ 23

5)

How to call functions .................................................................................................................. 23

6)

How to create your own projects ............................................................................................... 24

Getting Started: Basic PDF Functions ......................................................................................................... 24
1)

Unlocking the SDK ...................................................................................................................... 24

2)

Opening a PDF File...................................................................................................................... 25

3)

Go to a specific page .................................................................................................................. 26

4)

Zoom in and out of a page.......................................................................................................... 27

5)

Rotate a Page .............................................................................................................................. 29

6)

Print a PDF document................................................................................................................. 29

7)

Hide/Show UI elements.............................................................................................................. 31

8)

Iterate the tree outline of the PDF document ............................................................................ 32

9)

Search ......................................................................................................................................... 33

IFoxitPDFSDK ...................................................................................................................................................... 35
Properties ................................................................................................................................................... 35
1)

FilePath ....................................................................................................................................... 35
2 / 206

Programming Guide

2)

Password..................................................................................................................................... 35

3)

PageCount .................................................................................................................................. 35

4)

CurPage....................................................................................................................................... 35

5)

Rotate ......................................................................................................................................... 36

6)

Zoomlevel ................................................................................................................................... 36

7)

CurrentTool ................................................................................................................................. 36

8)

Printer ......................................................................................................................................... 38

9)

DocumentInfo ............................................................................................................................. 38

10)

ActiveXVersion .................................................................................................................... 38

11)

*bHasFormFields ................................................................................................................ 38

12)

*bHighlightFormFields........................................................................................................ 39

13)

*FormFieldsHighlightAlpha ................................................................................................ 39

14)

*FormFieldsHighlightColor ................................................................................................. 39

Method ....................................................................................................................................................... 39
1.

Unlock ......................................................................................................................................... 39

2.

Global Settings ............................................................................................................................ 41

3.

Open and Close PDF ................................................................................................................... 44

4.

Save ............................................................................................................................................ 47

5.

Navigation................................................................................................................................... 48

6.

View ............................................................................................................................................ 51

7.

Hyperlink .................................................................................................................................... 57

8.

Text ............................................................................................................................................. 59

9.

Custom UI ................................................................................................................................... 62

10.

Print .................................................................................................................................... 68

11.

Search ................................................................................................................................. 69

12.

Security ............................................................................................................................... 74

13.

JavaScript ............................................................................................................................ 75

14.

Multi-Instances ................................................................................................................... 77

15.

Edit and Page Organize ....................................................................................................... 77

16.

Asynchronous feature......................................................................................................... 82
3 / 206

Programming Guide

17.

Bookmark ........................................................................................................................... 83

18.

Form ................................................................................................................................... 84

19.

Annotation .......................................................................................................................... 86

20.

Signature............................................................................................................................. 89

21.

Others ................................................................................................................................. 90

Event ........................................................................................................................................................... 94
1)

BeforeDraw................................................................................................................................. 94

2)

AfterDraw ................................................................................................................................... 94

3)

OnZoomChange .......................................................................................................................... 95

4)

OnPageChange ........................................................................................................................... 95

5)

OnOpenPassword ....................................................................................................................... 95

6)

OnSearchProgress ...................................................................................................................... 95

7)

OnOpenFile................................................................................................................................. 95

8)

OnOpenDocument ..................................................................................................................... 96

9)

OnFilePathInvalidate .................................................................................................................. 96

10)

OnShowSavePrompt ........................................................................................................... 96

11)

OnCloseDocument.............................................................................................................. 96

12)

OnDocumentChange .......................................................................................................... 96

13)

CustomFileGetSize .............................................................................................................. 97

14)

CustomFileGetBlock ........................................................................................................... 97

15)

OnClick ................................................................................................................................ 97

16)

OnDbClick ........................................................................................................................... 97

17)

OnRButtonClick................................................................................................................... 98

18)

OnDownLoadFinish............................................................................................................. 98

19)

OnErrorOccurred ................................................................................................................ 98

20)

OnUploadFinish .................................................................................................................. 98

21)

OnTextHyperLink ................................................................................................................ 99

22)

OnExcuteMenuItem ........................................................................................................... 99

23)

*OnAddMenuItemAction ................................................................................................... 99

24)

OnDoGoToRAction ............................................................................................................ 100
4 / 206

Programming Guide

25)

OnDoGoToEAction ............................................................................................................ 100

26)

*OnHyperLink ................................................................................................................... 100

27)

*OnContextMenuIndex .................................................................................................... 101

28)

*OnFetchAsyncFileData .................................................................................................... 101

29)

*OnCurPageIndexChanged ............................................................................................... 101

30)

*OnSigContextMenuIndex................................................................................................ 102

31)

OnPagesContextMenuIndex ............................................................................................. 102

32)

OnBookmarkContextMenuIndex ...................................................................................... 102

33)

*OnFormFieldClick............................................................................................................ 103

34)

*OnFormFieldKeyDown .................................................................................................... 103

35)

*OnFormFieldKeyUp......................................................................................................... 103

36)

*OnSetFocus ..................................................................................................................... 103

37)

*OnKillFocus ..................................................................................................................... 104

38)

*OnDbClickEx ................................................................................................................... 104

39)

*OnRButtonClickEx ........................................................................................................... 104

40)

#FormFieldError................................................................................................................ 105

IPDFPrinter ....................................................................................................................................................... 106
Properties ................................................................................................................................................. 106
1)

PrinterName ............................................................................................................................. 106

2)

PrinterRangeMode ................................................................................................................... 106

3)

PrinterRangeFrom .................................................................................................................... 106

4)

PrinterRangeTo ......................................................................................................................... 106

5)

NumOfCopies ........................................................................................................................... 106

6)

Scaling....................................................................................................................................... 107

7)

AutoRotate ............................................................................................................................... 107

8)

AutoCenter ............................................................................................................................... 107

9)

Collate....................................................................................................................................... 107

10)

Rotation ............................................................................................................................ 107

11)

RangeSubset ..................................................................................................................... 108

12)

ReversePage...................................................................................................................... 108
5 / 206

Programming Guide

13)

PageBorder ....................................................................................................................... 108

14)

PrintWhat ......................................................................................................................... 108

Methods ................................................................................................................................................... 108
1)

PrintWithDialog ........................................................................................................................ 108

2)

PrintQuiet ................................................................................................................................. 109

3)

SetPaperSize ............................................................................................................................. 109

4)

GetSystemPrinterCount ............................................................................................................ 109

5)

GetSystemPrinterNameByIndex ............................................................................................... 109

6)

SetPaperSizeByPage.................................................................................................................. 110

7)

SetDuplexMode ........................................................................................................................ 110

IPDFDocumentInfo ........................................................................................................................................... 111
Properties ................................................................................................................................................. 111
1)

Author ...................................................................................................................................... 111

2)

Subject ...................................................................................................................................... 111

3)

CreatedDate.............................................................................................................................. 111

4)

ModifiedDate............................................................................................................................ 111

5)

Keywords .................................................................................................................................. 111

6)

Creator ...................................................................................................................................... 111

7)

Producer ................................................................................................................................... 112

8)

Title ........................................................................................................................................... 112

IFindResult ........................................................................................................................................................ 113
Method ..................................................................................................................................................... 113
1)

GetFindRectsCount ................................................................................................................... 113

2)

GetFindRectByIndex ................................................................................................................. 113

3)

GetFindPageNum...................................................................................................................... 113

4)

GetFindFileName ...................................................................................................................... 113

5)

GetFindString ............................................................................................................................ 114

IPDFOutline ...................................................................................................................................................... 115
Method ..................................................................................................................................................... 115
1)

GetOutlineDest ......................................................................................................................... 115
6 / 206

Programming Guide

2)

GetOutlineAction...................................................................................................................... 115

3)

GetOutlineColor ....................................................................................................................... 115

4)

NavigateOutline ........................................................................................................................ 115

5)

GetOutlineTitle ......................................................................................................................... 115

6)

GetOutLineTitle2 ...................................................................................................................... 116

7)

GetOutlineExpandValue ........................................................................................................... 116

ILink_Dest ......................................................................................................................................................... 117
Method ..................................................................................................................................................... 117
1)

GetPageIndex ........................................................................................................................... 117

2)

GetZoomMode ......................................................................................................................... 117

3)

GetZoomParamCount ............................................................................................................... 117

4)

GetZoomParam......................................................................................................................... 117

5)

GetDestName ........................................................................................................................... 118

IPDFAction ........................................................................................................................................................ 119
Method ..................................................................................................................................................... 119
1)

GetURIPath ............................................................................................................................... 119

2)

GetFilePath ............................................................................................................................... 119

3)

GetType .................................................................................................................................... 119

4)

GetDest ..................................................................................................................................... 119

#IPDFForm ........................................................................................................................................................ 121
Method ..................................................................................................................................................... 121
1)

#ImportFromFDF ...................................................................................................................... 121

2)

#ExportToFDF ........................................................................................................................... 121

3)

#AddField.................................................................................................................................. 121

4)

#GetSelectedField..................................................................................................................... 122

5)

#RemoveField ........................................................................................................................... 122

6)

#RemoveFieldsByName ............................................................................................................ 123

7)

#GetFieldsCount ....................................................................................................................... 123

8)

#GetFieldByIndex...................................................................................................................... 123

9)

#GetSelectedField..................................................................................................................... 123
7 / 206

Programming Guide

#IPDFFormField ................................................................................................................................................ 125
Properties ................................................................................................................................................. 125
1)

#Alignment ............................................................................................................................... 125

2)

#BorderStyle ............................................................................................................................. 125

3)

#BorderWidth ........................................................................................................................... 125

4)

#ButtonLayout .......................................................................................................................... 125

5)

#CalcOrderIndex ....................................................................................................................... 126

6)

#CharLimit ................................................................................................................................ 126

7)

#DefaultValue ........................................................................................................................... 126

8)

#IsEditable ................................................................................................................................ 126

9)

#Behavior.................................................................................................................................. 127

10)

#IsHidden.......................................................................................................................... 127

11)

#IsMultiline ....................................................................................................................... 127

12)

#IsPassword ...................................................................................................................... 127

13)

#IsReadOnly ...................................................................................................................... 128

14)

#IsRequired ....................................................................................................................... 128

15)

#Name .............................................................................................................................. 128

16)

#NoViewFlag ..................................................................................................................... 128

17)

#PrintFlag.......................................................................................................................... 129

18)

#Style ................................................................................................................................ 129

19)

#TextFont .......................................................................................................................... 129

20)

#TextSize ........................................................................................................................... 130

21)

#Type ................................................................................................................................ 130

22)

#Value ............................................................................................................................... 130

23)

#Tooltip ............................................................................................................................. 131

24)

#Orientation ..................................................................................................................... 131

25)

#DirtyFlag ......................................................................................................................... 131

26)

#ID .................................................................................................................................... 131

Method ..................................................................................................................................................... 131
1)

#PopulateListOrComboBox....................................................................................................... 131
8 / 206

Programming Guide

2)

#SetBackgroundColor ............................................................................................................... 132

3)

#SetBorderColor ....................................................................................................................... 132

4)

#SetForegroundColor ............................................................................................................... 133

5)

#SetButtonCaption ................................................................................................................... 133

6)

#SetButtonIcon ......................................................................................................................... 134

7)

#SetExportValues...................................................................................................................... 134

8)

#SetJavaScriptAction ................................................................................................................ 134

9)

#SetResetFormAction ............................................................................................................... 135

10)

#SetSubmitFormAction .................................................................................................... 135

11)

#GetPageIndex.................................................................................................................. 135

12)

#GetRectTop ..................................................................................................................... 136

13)

#GetRectLeft ..................................................................................................................... 136

14)

#GetRectRight................................................................................................................... 136

15)

#GetRectBottom ............................................................................................................... 136

^IPDFPageAnnots ............................................................................................................................................. 138
Method ..................................................................................................................................................... 138
1)

^GetAnnot ................................................................................................................................ 138

2)

^GetLTAnnot ............................................................................................................................. 138

3)

^ReleaseLTAnnot ...................................................................................................................... 138

4)

^AddAnnot ............................................................................................................................... 138

5)

^AddLTAnnot ............................................................................................................................ 139

6)

^ SetStampParam ..................................................................................................................... 140

7)

^RemoveAnnot ......................................................................................................................... 140

8)

^GetAnnotIndex ....................................................................................................................... 140

9)

^GetAnnotsCount ..................................................................................................................... 141

^IPDFAnnot....................................................................................................................................................... 142
Properties ................................................................................................................................................. 142
1)

^Thickness ................................................................................................................................ 142

2)

^BorderStyle ............................................................................................................................. 142

3)

^Color ....................................................................................................................................... 143
9 / 206

Programming Guide

4)

^LineStartingStyle ..................................................................................................................... 143

5)

^LineEndingStyle ...................................................................................................................... 144

6)

^FillColor................................................................................................................................... 144

7)

^Opacity ................................................................................................................................... 144

8)

^Author..................................................................................................................................... 145

9)

^Subject .................................................................................................................................... 145

10)

^CreationDate................................................................................................................... 145

11)

^ModificationDate ............................................................................................................ 145

12)

^Locked............................................................................................................................. 145

13)

^Print ................................................................................................................................ 146

14)

^ReadOnly ........................................................................................................................ 146

15)

^Description ..................................................................................................................... 146

Methods ................................................................................................................................................... 147
1)

^GetType .................................................................................................................................. 147

2)

^GetSubType ............................................................................................................................ 147

3)

^GetContents............................................................................................................................ 147

4)

^SetContents ............................................................................................................................ 147

5)

^IsPopupOpen .......................................................................................................................... 148

6)

^SetPopupOpen........................................................................................................................ 148

7)

^HasPopup................................................................................................................................ 148

8)

^GetRect ................................................................................................................................... 148

9)

^SetRect.................................................................................................................................... 149

10)

^SetLinkGoToAction.......................................................................................................... 149

11)

^SetLinkURLAction ........................................................................................................... 149

12)

^DoAction ......................................................................................................................... 150

13)

^HasAction........................................................................................................................ 150

14)

^GetMarkedState ............................................................................................................. 150

15)

^SetMarkedState .............................................................................................................. 150

16)

^GetReviewState .............................................................................................................. 151

17)

^SetReviewState ............................................................................................................... 151
10 / 206

Programming Guide

18)

^GetMigrationState .......................................................................................................... 152

19)

^SetMigrationState ........................................................................................................... 152

20)

^GetStartingPoint ............................................................................................................. 152

21)

^SetStartingPoint .............................................................................................................. 153

22)

^GetEndingPoint ............................................................................................................... 153

23)

^SetEndingPoint ............................................................................................................... 153

24)

^SetMediaPoster .............................................................................................................. 154

25)

^SetMultimedia ................................................................................................................ 154

26)

^SetLinkQuadPoints.......................................................................................................... 154

27)

^SetPolygonVertices ......................................................................................................... 155

28)

^SetPencilVertices ............................................................................................................ 155

29)

^AttachFile ........................................................................................................................ 155

30)

^ GetReplyList ................................................................................................................... 155

31)

^ UpdateAnnotReplies...................................................................................................... 156

Events ....................................................................................................................................................... 156
1)

^OnAnnotCreated..................................................................................................................... 156

2)

^OnAnnotDeleted..................................................................................................................... 156

3)

^OnAnnotModified .................................................................................................................. 156

4)

^OnAnnotReplyCreated............................................................................................................ 157

5)

^OnAnnotReplyDeleted............................................................................................................ 157

6)

^OnAnnotReplyModified.......................................................................................................... 157

7)

^OnAnnotRButtonDown........................................................................................................... 157

8)

^OnAnnotRButtonUp ............................................................................................................... 158

9)

^OnAnnotLButtonDbClick......................................................................................................... 158

10)

^OnAnnotLButtonDown ................................................................................................... 158

11)

^OnAnnotLButtonUp ........................................................................................................ 159

12)

^OnAnnotPosChanged ..................................................................................................... 159

13)

^OnAnnotMoving ............................................................................................................. 159

14)

^OnAnnotMouseEnter ..................................................................................................... 160

15)

^OnAnnotMouseExit ........................................................................................................ 160
11 / 206

Programming Guide

16)

^GetRectTop ..................................................................................................................... 160

17)

^GetRectLeft ..................................................................................................................... 160

18)

^GetRectRight................................................................................................................... 161

19)

^GetRectBottom ............................................................................................................... 161

^ IPDFAnnotReplyList ....................................................................................................................................... 162
Methods ................................................................................................................................................... 162
1)

^ GetCount ............................................................................................................................... 162

2)

^ GetItem.................................................................................................................................. 162

3)

^ Remove .................................................................................................................................. 162

4)

^ RemoveAll .............................................................................................................................. 162

5)

^ Add ........................................................................................................................................ 163

^IPDFAnnotReply .............................................................................................................................................. 164
Methods ................................................................................................................................................... 164
1)

^ GetCreator ............................................................................................................................. 164

2)

^ SetCreator .............................................................................................................................. 164

3)

^ GetContent ............................................................................................................................ 164

4)

^ SetContent ............................................................................................................................. 164

5)

^ GetChildren............................................................................................................................ 165

6)

^ GetParent............................................................................................................................... 165

7)

^ GetCreationDate .................................................................................................................... 165

8)

^ SetCreationDate .................................................................................................................... 165

9)

^ SetReadonly ........................................................................................................................... 166

10)

^ GetReplyID ..................................................................................................................... 166

^IPDFormatTool ................................................................................................................................................ 167
Method ..................................................................................................................................................... 167
1)

^SetFontName .......................................................................................................................... 167

2)

^GetFontName ......................................................................................................................... 167

3)

^SetFontSize ............................................................................................................................. 167

4)

^GetFontSize............................................................................................................................. 167

5)

^SetFontColor ........................................................................................................................... 168
12 / 206

Programming Guide

6)

^GetFontColor .......................................................................................................................... 168

7)

^SetBorderColor ....................................................................................................................... 168

8)

^GetBorderColor ...................................................................................................................... 168

9)

^SetFillColor.............................................................................................................................. 169

10)

^GetFillColor ..................................................................................................................... 169

11)

^SetFontBold .................................................................................................................... 169

12)

^GetFontBold.................................................................................................................... 170

13)

^GetFontBoldEnable......................................................................................................... 170

14)

^SetFontItalic .................................................................................................................... 170

15)

^GetFontItalic ................................................................................................................... 170

16)

^GetFontItalicEnable ........................................................................................................ 171

17)

^SetAlign........................................................................................................................... 171

18)

^GetAlign .......................................................................................................................... 171

19)

^SetCharSpace .................................................................................................................. 172

20)

^GetCharSpace ................................................................................................................. 172

21)

^SetCharHorzScale ........................................................................................................... 172

22)

^GetCharHorzScale ........................................................................................................... 172

&IPDFSignatureMgr .......................................................................................................................................... 173
Method ..................................................................................................................................................... 173
1)

&Add......................................................................................................................................... 173

2)

&SignDocument........................................................................................................................ 173

3)

&Verify ...................................................................................................................................... 174

4)

&VerifyAll.................................................................................................................................. 174

5)

&GetCounts .............................................................................................................................. 174

6)

&Get ......................................................................................................................................... 175

7)

&Clear ....................................................................................................................................... 175

8)

&Remove .................................................................................................................................. 175

9)

&InitStraddleValue ................................................................................................................... 175

10)

&CreatePatternSigField .................................................................................................... 176

11)

&SetCurPattenSigField...................................................................................................... 176
13 / 206

Programming Guide

12)

&CountPatternSigFiel ....................................................................................................... 176

&IPDFSignatureField......................................................................................................................................... 178
Properties ................................................................................................................................................. 178
1)

&Reason ................................................................................................................................... 178

2)

&Location ................................................................................................................................. 178

3)

&Signer ..................................................................................................................................... 178

4)

&Filter ....................................................................................................................................... 178

5)

&SubFilter ................................................................................................................................. 179

6)

&State ....................................................................................................................................... 179

Methods ................................................................................................................................................... 179
1)

&SetAPOptions ......................................................................................................................... 179

2)

&SetAPText ............................................................................................................................... 180

3)

&SetAPImage ............................................................................................................................ 180

4)

&SetAPImageData .................................................................................................................... 181

5)

&IsSigned .................................................................................................................................. 181

6)

&SetSignerDN ........................................................................................................................... 181

7)

&SetStatusImage ...................................................................................................................... 181

8)

&SetStatusImageData............................................................................................................... 182

9)

&GetPageIndex ......................................................................................................................... 183

10)

&GetSourceBuffer ............................................................................................................ 183

11)

&GetSourceBufferLen....................................................................................................... 183

12)

&GetSignedBuffer............................................................................................................. 184

13)

&GetSignedBufferLen ....................................................................................................... 184

14)

&CreateSignedDoc............................................................................................................ 184

15)

&SetVerifyResult ............................................................................................................... 185

16)

&SetCertPath .................................................................................................................... 185

17)

&SetCertData .................................................................................................................... 185

18)

&SetCertContext............................................................................................................... 186

19)

&TurnGray ........................................................................................................................ 186

20)

&TurnBlur ......................................................................................................................... 186
14 / 206

Programming Guide

21)

&SetVisible ....................................................................................................................... 187

22)

&GrayPrint ........................................................................................................................ 187

23)

&SetStraddleType ............................................................................................................. 187

24)

&SetStraddlePos ............................................................................................................... 188

25)

&SetStraddleBitmap ......................................................................................................... 188

26)

&SetStraddlePages ........................................................................................................... 188

27)

&SetStraddleFirstPagePercent.......................................................................................... 189

28)

&SetSigFieldAlpha ............................................................................................................ 189

29)

&Refresh ........................................................................................................................... 189

30)

&SetDefaultContentsLength ............................................................................................. 189

Events ....................................................................................................................................................... 190
1)

&OnSetSignatureInfo................................................................................................................ 190

2)

&OnSigning ............................................................................................................................... 190

3)

&OnVerifying ............................................................................................................................ 190

4)

&OnShowSignaturePropertyDialog .......................................................................................... 190

*IPDFTextDoc.................................................................................................................................................... 192
Methods ................................................................................................................................................... 192
1)

*ReleasePDFTextDoc ................................................................................................................ 192

2)

*LoadPDFTextPage ................................................................................................................... 192

*IPDFTextPage .................................................................................................................................................. 193
Methods ................................................................................................................................................... 193
1)

*ReleasePDFTextPage ............................................................................................................... 193

2)

*CountChars ............................................................................................................................. 193

3)

*GetChars ................................................................................................................................. 193

4)

*GetCharInfo ............................................................................................................................ 193

5)

*GetCharIndexAtPos................................................................................................................. 194

6)

*GetNextCharIndexByDirection ............................................................................................... 194

7)

*SelectByRange ........................................................................................................................ 194

8)

*SelectByRectangle .................................................................................................................. 195

9)

*StartSearch ............................................................................................................................. 195
15 / 206

Programming Guide

10)

*ExtractLinks..................................................................................................................... 196

11)

*ExtractPageText .............................................................................................................. 196

*IPDFCharInfo................................................................................................................................................... 197
Properties ................................................................................................................................................. 197
1)

*state ........................................................................................................................................ 197

2)

*fontSize ................................................................................................................................... 197

3)

*originX .................................................................................................................................... 197

4)

*originY..................................................................................................................................... 197

5)

*fontName................................................................................................................................ 197

6)

*fontAscent .............................................................................................................................. 198

7)

*fontDescent ............................................................................................................................ 198

8)

*displayFontSize ....................................................................................................................... 198

Methods ................................................................................................................................................... 198
1)

*GetBBox .................................................................................................................................. 198

2)

*GetMatrix ............................................................................................................................... 198

*IPDFTextSearch ............................................................................................................................................... 200
Methods ................................................................................................................................................... 200
1)

*ReleaseTextSearch .................................................................................................................. 200

2)

*FindNext ................................................................................................................................. 200

3)

*FindPrev .................................................................................................................................. 200

4)

*GetSelection ........................................................................................................................... 200

*IPDFTextSelection ........................................................................................................................................... 202
Methods ................................................................................................................................................... 202
1)

*ReleaseTextSelection .............................................................................................................. 202

2)

*GetBBox .................................................................................................................................. 202

3)

*GetBBoxEx .............................................................................................................................. 202

4)

*GetChars ................................................................................................................................. 203

5)

*CountPieces ............................................................................................................................ 203

6)

*GetPieceRect .......................................................................................................................... 203

7)

*GetPieceCharStart .................................................................................................................. 203
16 / 206

Programming Guide

8)

*GetPieceCharCount ................................................................................................................ 204

*IPDFTextLink ................................................................................................................................................... 205
Methods ................................................................................................................................................... 205
1)

*CountLinks .............................................................................................................................. 205

2)

*GetLink.................................................................................................................................... 205

3)

*GetSelection ........................................................................................................................... 205

Contact Us ........................................................................................................................................................ 206

17 / 206

Programming Guide

Overview
Foxit PDF SDK ActiveX is a visual programming component that offers PDF displaying capability with lowest
resource demand and redistribution size. It can be easily integrated into a wide range of applications.
Foxit PDF SDK ActiveX uses the same parsing and rendering engine as Foxit Reader. Therefore it can display
PDF files with the same high quality and fast speed as Foxit Reader.
The ActiveX version is much easier to use and has much more features built inside. A programmer can simply
drag and drop the component into their application and instantly add PDF displaying functionality. In addition,
the ActiveX allows users to navigate, zoom, rotate, scroll and print out PDF documents.
From version 5.0, ActiveX incorporates Signature module and many advanced PDF features, such as
asynchronous feature. Signature module allows developers to enable their applications to digitally sign PDF
documents using third-party digital certificates located in the Windows system certificate store. It also
supports digital signature verification (which authenticates the source and verifies the integrity of content of
digitally signed PDF documents), signature print control and more.
From version 5.2, ActiveX provides native 64-bit support.
Foxit offers two versions of ActiveX – standard version and professional version, which are provided with
different GUID numbers that allows you to register both versions onto the same computer and access them
with their own GUID. Compared with the professional version, the standard version doesn’t include the
following features: page organization, setting password and permission, printing pop-up annotations,
importing/exporting annotation data, importing/exporting form data, running JavaScript, converting PDF to
text, etc.
Based on your requirements you are able to pick and choose which ActiveX version and which ActiveX
module would be best for your application. Please Scaling
that the three modules can only be added to Professional version as the add-ons. Please contact
sales@foxitsoftware.com for license details.
In this developer’s guide,
All the functions marked with an asterisk (*) are available only in the professional version
All the functions marked with a hash sign (#) are available only in the Form Module
All the functions marked with a caret (^) are available only in the Annotation Module
All the functions marked with an ampersand (&) are only available in Signature Module.
Foxit PDF SDK ActiveX runs on Windows XP or later. This is a standalone component and does not require any
extra PDF software installed. Please note a user might need to have administrator rights to register the
ActiveX under Windows successfully.
UNLOCK Code: If you have purchased Foxit PDF SDK ActiveX and received the full version of the ActiveX and
the unlock code, you should call UnLockActiveX functions once inside your program before you call ANY other
functions of the ActiveX. You don’t need to call this function if you just want to evaluate the ActiveX.
GUID for standard version:

0F6C092B-6E4C-4976-B386-27A9FD9E96A1

GUID for professional version:

F53B7748-643C-4A78-8DBC-01A4855D1A10
18 / 206

Programming Guide

Tutorials
This tutorials part is targeted towards C/C++ developers using the Foxit PDF ActiveX SDK. It assumes the
developer is familiar with C/C++ and Microsoft Foundation Classes (MFC).
This tutorials part covers how to use the Foxit PDF ActiveX SDK. It uses the demo provided by Foxit
Corporation as reference for explanation.

Setup
1) Get trial verion.
Get the trial version of ActiveX from Foxit website:
http://www.foxitsdk.com/products/pdf-sdk-activex/

2) Download MSI pack to install.
You will receive an email with two download links: FoxitPDFSDKActiveX_Std.msi and
FoxitPDFSDKActiveX_Pro.msi. Then download the MSI pack as you need and double click on it to
start the installation.
Please note that it will automatically register the OCX files, including the 32bit OCX and the 64bit
OCX, to Windows when installing with the MSI pack.

3) Run demo.
Here take ActiveX professional version.
1. The files are installed under C:\Program Files (x86)\Foxit Software\Foxit PDF SDK ActiveX Pro.
Go to the C:\Program Files (x86)\Foxit Software\Foxit PDF SDK ActiveX Pro\demo\vc folder and
open up the demo source code.
-

2.

If you are using Visual C++ 6.0, open up demo.dsw.
If you are using Visual Studio 2010, open up demo.sln. The instructions and
screenshots in this tutorial will reference Visual Studio 2010.

The demo.sln file contains 2 demos.
AX_Pro_Demo – A full featured PDF reader with a drop down list of annotation tools.

19 / 206

Programming Guide

AX_Ppo_Demo – A full featured PDF reader with a panel for page manipulation functions.

AX_Annot_Demo – A full featured PDF reader with a panel for annotation manipulation
functions.
AX_Form_Demo – A full featured PDF reader with a panel for form processing functions.
AX_Signature_Demo – A full featured PDF reader with a panel for signature manipulation
functions.
3.

The remainder of this demo will examine the basic functions developers will start with when
using the SDK. Make sure to set AX_Pro_Demo as the startup project.
In Visual Studio 2010, go to the Solution Explorer > right click on AX_Pro_Demo > Set as
Startup Project.

4.

Select to build a Debug version of the demo so you will be able to step through the code.
20 / 206

Programming Guide

5.
6.
7.

Build the demo: Go to Build > Build Solution.
Make sure there are no errors in the build output.
Run the demo by going to Debug > Start Debugging.

Create project with ActiveX
1) Register
To register an OCX file to Windows:
Run your command line > type: regsvr32 “Filepath\FoxitReader_AX.OCX” > hit enter to register >
get the prompt once it is successfully registered.

2) Create a Project
Go to visual studio > File > New > Project > Windows Forms Application

21 / 206

Programming Guide

3) Select Foxit ActiveX SDK
Click Tool > Choose Toolbox Items

Under “COM Components” tab, check “FoxitPDFSDK Pro Control”, then hit OK

Drag FoxitPDFSDK Pro Control into Form window

22 / 206

Programming Guide

4) Open a PDF document
Now you can run this basic program and open PDF documents by click the yellow folder

5) How to call functions
To call other functions, they should be used by following axFoxitPDFSDK1.

23 / 206

Programming Guide

In this example, these two lines are to open fw9.pdf on your desktop, and then rotate the first page
to right by 90 degree.

6) How to create your own projects
You can see more options in this list and create your own project from there.

Getting Started: Basic PDF Functions
The following part contains references to the AX_Pro_Demo. To get a full understanding of how the functions
works, the user should set breakpoints and step through the code. File names and line numbers for specific
function calls are provided.

1) Unlocking the SDK
The evaluation version of the ActiveX SDK will apply a watermark across any rendered PDF page.

24 / 206

Programming Guide

Customers who pay for the SDK will receive a license key to remove the watermark.

The license key will contain a license id and an unlock code that you will pass in as parameters to
the UnLockActiveX function. There is an example of this in AX_Pro_DemoDlg.cpp.

BOOL CAX_Pro_DemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// code

m_AX.UnLockActiveX(_T("Licence_ID"),_T("Unlock_code"));

// code
}

2) Opening a PDF File
Call the OpenFile function to open a PDF file for viewing. There is a working example in
AX_Pro_DemoDlg.cpp.

void CAX_Pro_DemoDlg::OnFileOpen()
{
//code

m_AX.OpenFile(fdg.GetPathName() ,NULL );
25 / 206

Programming Guide

// code
}

The user can trigger the OnFileOpen event by going to File > Open > browse to a PDF file > click on
Open or by using the file open folder icon.

3) Go to a specific page
Use the GoToPage function to navigate directly to the page number specified as the parameter.
Page indexing is zero based. So call GoToPage(0) to get to the first page.
The AX_Pro_Demo has arrows for navigating to the first, previous, next, and last page of a
multipage document. To see these functions in action, run the demo and open a multiple page PDF.

In AX_Pro_DemoDlg.cpp, you will see the corresponding events that are triggered when the arrow
buttons for navigating pages are pressed. You will see the GoToPage function is called with the
appropriate index value.

void CAX_Pro_DemoDlg::OnFirstPage()
{
m_AX.GoToPage(0);
}

void CAX_Pro_DemoDlg::OnLastPage()
{
int count = m_AX.GetPageCount();
m_AX.GoToPage(count-1);
}
26 / 206

Programming Guide

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);
}

4) Zoom in and out of a page
Call SetZoomLevel to zoom in and out of the PDF page. The AX_Pro_Demo has menu buttons for
zoom in, zoom out, actual size, fit page, and fit width. All of these buttons trigger events that call
SetZoomLevel.

void CAX_Pro_DemoDlg::OnZoomIn()
{

27 / 206

Programming Guide
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);
}

28 / 206

Programming Guide
void CAX_Pro_DemoDlg::OnFitWidth()
{
m_AX.SetZoomLevel(2);
}

5) Rotate a Page
Call SetRotate to rotate the PDF page. The AX_Pro_Demo has menu buttons for rotate right and
rotate left. These buttons trigger events that call SetRotate.

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 );
}

6) Print a PDF document
Call PrintWithDialog to bring up the print dialog page. On that page you can manually adjust printer
settings. Using the ActiveX SDK you can also programmatically set printer settings. Clicking on the
29 / 206

Programming Guide

printer icon.

or going to File > Print will trigger the OnFilePrint() event that calls the PrintWithDialog function to
bring up the print dialog settings.

void CAX_Pro_DemoDlg::OnFilePrint()
{
CPDFPrinter printer = m_AX.GetPrinter();
if (!printer)
{
return;
}

30 / 206

Programming Guide
//printer.SetPrinterName( "foxit PDF" );
printer.SetPrinterRangeMode( 3 );
printer.SetPrinterRangeFrom( 2 );
printer.SetPrinterRangeTo( 3 );
printer.SetPaperSize( 8 );
printer.SetNumOfCopies( 2 );
printer.PrintWithDialog();
}

7) Hide/Show UI elements
The ActiveX SDK provides functions for modifying the user interface. For example, the ShowToolBar()
function takes a boolean parameter. This is what the user interface looks like when
ShowToolBar(FALSE) is called by the application code.

ShowToolBar(TRUE) adds the toolbar to the user interface.

In AX_Pro_DemoDlg.cpp, the ShowToolBar function is called with FALSE as the default setting. As an
exercise, the user can change m_ToolState to be TRUE to enable the toolbar when the demo is run.

BOOL CAX_Pro_DemoDlg::OnInitDialog()
{
// code

m_ToolState = FALSE;

// code
31 / 206

Programming Guide

m_AX.ShowToolBar( m_ToolState );

// code
}

8) Iterate the tree outline of the PDF document
If the user wants to build a table of contents for a PDF document, they can use the
GetOutlineFirstChild() and GetOutlineNextSibling() functions to iterate through the outline tree of
the PDF. Here’s an example of a TOC using the AX_Pro_Demo.

In AX_Pro_DemoDlg.cpp in the CAX_Pro_DemoDlg::OnFileOpen() function there is code that shows
how the TOC is generated when the file is first open in the demo. To get a closer understanding, it is
recommended that the developer set a breakpoint at the beginning of this function and step
through. See where GetOutlineFirstChild and GetOutlineNextSibling are called.

void CAX_Pro_DemoDlg::OnFileOpen()
32 / 206

Programming Guide
{
// 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;
}
}

9) Search
The AX_Pro_Demo has a search icon in the toolbar that allows a user to search through a PDF for
specific words or phrases.

33 / 206

Programming Guide

This Find dialog box appears when the icon is clicked on,

The FindFirstEx() function finds the first occurrence of the string in the PDF document. The
parameters are the search string, a boolean to indicate if the user wants to match case, a Boolean
to indicate if the user wants to match the entire word. In FindDlg.cpp in the CFindDlg::OnOK()
function there is an working example of FindFirstEx() and FindNext().

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);
}

34 / 206

Programming Guide

IFoxitPDFSDK
This section describes all the properties, methods and events exposed by ActiveX. They can be used for the
basic PDF operations, such as viewing, printing, navigation, text search and so on.
Please note that this reference shows everythings in C syntax. If you use a programming language other than
C/C++, please follow the corresponding syntax.
Note:
The functions marked with an asterisk (*) only apply to the professional version.
The functions marked with a hash sign (#) are available only in the Form Module.
The functions marked with a caret (^) are available only in the Annotation Module.

Properties
1) FilePath
Type:
BSTR, read-only
Description:
File path of current PDF.
Note:
If no PDF file is opened or the file is opened from the buffer or stream, the value will be NULL.

2) Password
Type:
BSTR, read-only
Description:
Password for opening a PDF.

3) PageCount
Type:
long, read-only
Description:
Total page number of current PDF.

4) CurPage
Type:
long, read-only
Description:
35 / 206

Programming Guide

The index of current PDF page. It starts from 0.

5) Rotate
Type:
short, read and write
Description:
Page rotation for PDF viewing. It can be set to:
0

-

Normal

1

-

Rotated 90 degrees clockwise

2

-

Rotated 180 degrees

3

-

Rotated 90 degrees counter-clockwise

6) Zoomlevel
Type:
long, read and write
Description:
Page zoom level for PDF viewing. It can be between 10 and 1600. And can also be set to the
following special values.
0

-

Displaying PDF page in actual page size, which is the same as setting zoom level to

100%.
1

-

Displaying PDF page with proper zoom level so that the whole page can be fit into

the client window.
2

-

Displaying PDF page with proper zoom level so that the page width can be fit to the

client window.

7) CurrentTool
Type:
BSTR, read and write
Description:
The current tool of ActiveX. Possible values are:
“Hand Tool”
“ZoomOut Tool”
“ZoomIn Tool”
“Select Text Tool”
“Find Text Tool”
“Snapshot Tool”
36 / 206

Programming Guide

*“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”
37 / 206

Programming Guide

*”Textbox”
*“Image Tool”
*“Sound Tool”
*“Movie Tool”
*“FileAttachment Tool”
*“Attach a file”
* “ESignature Tool”
And so on.
Note:
You can call CountTools to learn how many tools are available in current ActiveX version, and then
call GetToolByIndex to get the tool name by index.

8) Printer
Type:
IPDFPrinter, read-only
Description:
Returns an IPDFPrinter object, which can be used to specify the printer and do settings for PDF
printing.

9) DocumentInfo
Type:
IPDFDocumentInfo*, read-only
Description:
Returns an IPDFDocumentInfo object with which you can use to retrieve PDF properties information,
including Author, Subject, Creator, CreatedDate, Keywords, ModifiedDate, Producer and Title.

10) ActiveXVersion
Type:
BSTR, read-only
Description:
The version information of current ActiveX control.

11) *bHasFormFields
Type:
BOOL, read-only
Description:
38 / 206

Programming Guide

A flag indicating whether current PDF contains form fields. It will be TRUE if the PDF contains form
fields, otherwise FALSE.

12) *bHighlightFormFields
Type:
BOOL, read and write
Description:
A flag indicating whether to highlight all the interactive forms in PDF. All the interactive form fields
will be highlighted when to set it to TRUE. The highlight could help the users to get better visual to
the interactive form fields.

13) *FormFieldsHighlightAlpha
Type:
short, read and write
Description:
Transparency of the highlight color when highlighting the form filed in PDF. The value could be from
0 to 255. 0 means transparent and 255 means opaque.

14) *FormFieldsHighlightColor
Type:
OLE_COLOR, read and write
Description:
The highlight color of the form fields.

Method
1. Unlock


UnLockActiveX
Unlock the ActiveX using license key received from Foxit.

Prototype:
Void UnLockActiveX(BSTR license_id, BSTR unlock_code)
Parameters:
license_id:

A string in the key file sent by Foxit after purchasing a license.

unlock_code:

A string in the key file sent by Foxit after purchasing a license.

Return Value:
39 / 206

Programming Guide

None
Note:
When evaluating ActiveX, you don’t need to call this function and the evaluation marks will be
shown on all rendered pages. After getting the license key, you could call this function to unlock
ActiveX so that you will not get the evaluation mark.



UnLockActiveXEx
Unlock the ActiveX using license key received from Foxit.

Prototype:
Void UnLockActiveXEx(BSTR strLicense)
Parameters:
strLicense:

A string received from Foxit to identify the SDK license key.

Return Value:
None
Note:
This function performs the same function as UnlockActiveX.



*IsUnLocked
Check if the ActiveX control is unlocked.

Prototype
boolean IsUnLocked()
Return Value:
Return TRUE if successful, otherwise FALSE.



*RemoveEvaluationMark
Remove the evaluation marks created by Foxit PDF ActiveX after your version has been unlocked by
a license key.

Prototype:
BOOL RemoveEvaluationMark()
Parameters:
None
Return Value:
Return TRUE if successful, otherwise FALSE.

40 / 206

Programming Guide

2. Global Settings


SetCurrentLanguage
Switch UI to the language you want by ID once if there is a corresponding XML file.

Prototype:
void SetCurrentLanguage(short LanguageID)
Parameters:
LanguageID:

The identifier of a language which can be supported by ActiveX. The value could

be from 1 to 34 and every value represents a language. Please refer to the following language list.
1

-

Arabic

2

-

Bulgarian

3

-

Hungarian

4

-

Catalan

5

-

Czech

6

-

Chinese-Simplified

7

-

Chinese-Traditional

8

-

Danish

9

-

Dutch

10 -

English

11 -

Estonian

12 -

Finnish

13 -

French

14 -

Galician

15 -

German

16 -

Greek

17 -

Italian

18 -

Korean

19 -

Latvian

20 -

Lithuanian

21 -

Norwegian

22 -

Polish

23 -

Portuguese

24 -

Portuguese_Brazilian

25 -

Romanian
41 / 206

Programming Guide

26 -

Russian

27 -

Slovenian

28 -

Spanish

29 -

Swedish

30 -

Turkish

31 -

Hebrew

32 -

Japanese

33 -

Thai

34 -

Valencian

Return Value:
None
Note:
The user interface of ActiveX can be switched to one of the 34 languages dynamically. This requires
a corresponding XML language file to be in the same folder of ActiveX. To get a specific language file,
please contact us at sales@foxitsoftware.com.



SetCurrentLanguageByString
Switch UI to the language by specifying the path of the language file (XML).

Prototype:
void SetCurrentLanguageByString(BSTR FileName)
Parameters:
FileName :

File path of a XML language file. Please refer to the following language file list.

"Arabic"

-

"lang_ar_ae.xml"

"Bulgarian"

-

"lang_bg_bg.xml"

"Hungarian"

-

"lang_hu_hu.xml"

"Catalan"

-

"lang_ca_es.xml"

"Czech"

-

"lang_cz_cz.xml"

"Chinese-Simplified"

-

"lang_zh_cn.xml"

"Chinese-Traditional"

-

"lang_tw_cn.xml"

"Danish"

-

"lang_da_dk.xml"

"Dutch"

-

"lang_nl_nl.xml"

"English"

-

"lang_en_us.xml"

"Estonian"

-

"lang_et_ee.xml"

"Finnish"

-

"lang_fi_fi.xml"

"French"

-

"lang_fr_fr.xml"
42 / 206

Programming Guide

"Galician"

-

"lang_gl_es.xml"

"German"

-

"lang_de_de.xml"

"Greek"

-

"lang_el_gr.xml"

"Italian"

-

"lang_it_it.xml"

"Korean"

-

"lang_ko_kr.xml"

"Latvian"

-

"lang_lv_lv.xml"

"Lithuanian"

-

"lang_lt_lt.xml"

"Norwegian"

-

"lang_nb_no.xml"

"Polish"

-

"lang_pl_pl.xml"

"Portuguese"

-

"lang_pt_pt.xml"

"Portuguese_Brazilian” -

"lang_pt_br.xml"

"Romanian"

-

"lang_ro_ro.xml"

"Russian”

-

"lang_ru_ru.xml"

"Slovenian"

-

"lang_sl_si.xml"

"Spanish"

-

"lang_es_es.xml"

"Swedish"

-

"lang_sv_se.xml"

"Turkish"

-

"lang_tr_tr.xml"

"Hebrew"

-

"lang_he_il.xml"

"Japanese"

-

"lang_jp_jp.xml"

"Thai"

-

"lang_th_th.xml"

"Valencian"

-

"lang_va_es.xml"

Return Value:
None
Note:
The user interface of ActiveX can be switched to one of the 34 languages dynamically. This requires
a corresponding XML language file in the same folder of ActiveX. If you want a specific language file,
please contact us at sales@foxitsoftware.com.



SetModulePath
Specify the path of CJK add-on (fpdfcjk.bin), which is used to help render the Chinese, Japanese and
Korean text in a PDF.

Prototype:
void SetModulePath(LPCTSTR lpFolderName)
Parameters:
lpFolderName :

File path of fpdfcjk.bin.
43 / 206

Programming Guide

Return Value:
None
Note:
The add-on fpdfcjk.bin is use to help display the Chinese, Japanese and Korean text of a PDF
document.



SetLogFile
Specify a log file to record all the functions called by your ActiveX.

Prototype:
BOOL SetLogFile(BSTR filepath)
Parameters:
Filepath:

File path of a log which is used to record all the functions called by your ActiveX.

If the specified log does not exist, a new one will be created in the specified folder automatically.
Return Value:
Return TRUE if successful, otherwise FALSE.



AboutBox
Pop up About window of ActiveX.

Prototype:
Void AboutBox()
Parameters:
None
Return Value:
None

3. Open and Close PDF


OpenFile
Open a PDF from a local disk or an HTTP server.

Prototype:
BOOL OpenFile (BSTR FilePath, BSTR Password)
Parameters:
FilePath:

File path of a local PDF file or URL of a PDF in HTTP server.

Password:

Password for opening the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.
44 / 206

Programming Guide

Note:
A PDF can still be operated by another application when it is opened by OpenFile. Because OpenFile
will not lock the PDF.



OpenMemFile
Open a PDF that is stored in memory.

Prototype:
BOOL OpenMemFile(long pBuffer, long Size, BSTR Password)
Parameters:
pBuffer:

A pointer to a buffer specifying the PDF data .

Size:

The size of the buffer.

Password:

Password for opening PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.



OpenBuffer
Open a PDF from the buffer.

Prototype:
BOOL OpenBuffer(VARIANT Buffer, long size, BSTR password)
Parameters:
Buffer:

A pointer to the buffer(byte array) specifying the PDF data.

Size:

The size of the buffer.

Password:

Password for opening the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.



OpenStream
Open a PDF from the IStream interface.

Prototype:
BOOL OpenStream (IStream* Stream, BSTR Password)
Parameters:
Stream:

An IStream interface to the PDF data.

Password:

Password for opening the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.

45 / 206

Programming Guide



SetFileStreamOption
Set the file stream option for the current PDF if it is frequently accessed.

Prototype:
Void SetFileStreamOption(BOOL bFileStream)
Parameter:
bFileStream:

A flag specifying whether to set the file stream option.

Return Value:
None
Note:
It will improve performance of loading the stream contents into memory if a PDF is frequently
accessed. However it will consume more memory.



OpenCustomFile
Open a PDF from a custom access descriptor.

Prototype:
BOOL OpenCustomFile(BSTR Password)
Parameter:
Password:

Password for opening the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
ActiveX will trigger CustomFileGetSize event and CustomFileGetBlock event when to call
OpenCustomFile. With the events, the program will open a PDF from a custom way, returning the
file size and a block of data. Please refer to CustomFileGetSize and CustomFileGetBlock for details.



OpenFtpFile
Open a PDF from a FTP server.

Prototype:
BOOL OpenFtpFile(BSTR ftpName, BSTR username, BSTR userPassword, long port, BSTR filePath,
BSTR filePassword, boolean Passive);
Parameter:
ftpName:

FTP server name.

username:

Username for connecting to FTP.

userPassword:

Password for connecting to FTP.

port:

Port on FTP server.
46 / 206

Programming Guide

filePath:

File path of a PDF in FTP.

filePassword:

Password for opening the PDF.

Passive:

A flag specifying whether it is passive or active connection.

Return Value:
Return TRUE if successful, otherwise FALSE.



CloseFile
Close a PDF.

Prototype:
Void CloseFile()
Parameter:
None
Return Value:
None

4. Save


SaveAs
Save the current PDF as a new local file.

Prototype:
Void SaveAs (BSTR FileName)
Parameters:
FileName:

The local path of a new PDF which the current PDF will be saved as. It requires

a local path.
Return Value:
None



Save
Save the current PDF.

Prototype:
Void Save ()
Parameters:
None
Return Value:
None
Note:
47 / 206

Programming Guide

Only the PDF stored in the local could be saved successfully. The ones opened from URL can’t be
saved.



SaveToStream
Save the current PDF into memory.

Prototype:
IStream* SaveToStream ()
Parameters:
None
Return Value:
Return a pointer to an IStream to which the PDF data will be saved.



*SetShowSavePrompt
Set to pop up the Save window when a PDF is to be closed.

Prototype:
void SetShowSavePrompt(boolean bShow, short Result)
Parameters:
bShow:

A value indicating whether to pop up the window for saving.

Result:

A value specifying to save PDF in background when bShow is set to FALSE. Valid

values are 1 and 6.
Return Value:
NULL

5. Navigation


ExistForwardStack
Check if the next view exists.

Prototype:
BOOL ExistForwardStack ()
Parameters:
None
Return Value:
Return TRUE if the next view exists, otherwise FALSE.
Note:
When navigating in a PDF, usually one may want to go back to the previous view. These methods
help users to jump among different views conveniently.
48 / 206

Programming Guide

View is a reading point or displaying status. The user actions will create new views. For example, if
one goes to a new page and then zooms in the page, the two actions create two new views.



GoForwardStack
Go to the next view.

Prototype:
Void GoForwardStack ()
Parameters:
None
Return Value:
None



ExistBackwardStack
Check if the previous view exists.

Prototype:
BOOL ExistBackwardStack ()
Parameters:
None
Return Value:
Return TRUE if the previous view exists, otherwise FALSE.



GoBackwardStack
Go to previous view.

Prototype:
Void GoBackwardStack ()
Parameters:
None
Return Value:
None



GetVisibleLeftTopPage
Get the index of a PDF page which is at the top left.

Prototype:
Long GetVisibleLeftTopPage ()
Parameter:
None
49 / 206

Programming Guide

Return Value:
Return the index of a PDF page which is displayed on the left top of ActiveX window. This can help
get a page when viewing PDF in facing mode.



GoToNextPage
Go to the next page of the current PDF.

Prototype:
Void GoToNextPage ()
Parameters:
None
Return Value:
None



GoToPrevPage
Go to the previous page of the current PDF.

Prototype:
Void GoToPrevPage ()
Parameters:
None
Return Value:
None



GoToPage
Go to a specific page of the current PDF.

Prototype:
Void GoToPage( long page_index )
Parameters:
page_index:

The index of a PDF page.

Return Value:
None



GoToPagePos
Go to a specified position in current PDF.

Prototype:
Void GoToPagePos (long nPageIndex, float PageX, float PageY)
Parameters:
50 / 206

Programming Guide

NPageIndex:

The index of a PDF page.

PageX:

X coordinate (of PDF coordinate) in the specified PDF page.

PageY:

Y coordinate (of PDF coordinate) in the specified PDF page.

Return Value:
None



GotoPageDest
Go to a specified location in a PDF document.

Prototype:
Void GotoPageDest (ILink_Dest * link_dest)
Parameters:
link_dest:

A pointer to an ILink_Dest object you get from event *OnHyperLink .

Return Value:
None

6. View


ShowDocumentInfoDialog
Pop up Document Properties window of current PDF.

Prototype:
Void ShowDocumentInfoDialog()
Parameter:
None
Return Value:
None



SetPDFMeasureUnit
Set the measurement unit for current PDF.

Prototype:
BOOL SetPDFMeasureUnit(short nType);
Parameters:
nType:

The measurement unit. It can be set to:

0

-

Point

1

-

Inch

2

-

Centimeter

3

-

Pixel
51 / 206

Programming Guide

Return Value:
Return TRUE if successful, otherwise FALSE.



GetPageWidth
Get the width of a specific page in current PDF.

Prototype:
Float GetPageWidth(short nPageIndex)
Parameters:
nPageIndex:

The index of a PDF page.

Return Value:
Return the page width.



GetPageHeight
Get the height of a specific page in current PDF.

Prototype:
Float GetPageHeight(short nPageIndex)
Parameters:
nPageIndex:

The index of a PDF page.

Return Value:
Return the page height.



CountTools
Count the tools that can be used in current ActiveX version.

Prototype:
Short CountTools()
Parameters:
None
Return Value:
Return total number of the tools in current ActiveX version.



GetToolByIndex
Get the tool name by index.

Prototype:
BSTR GetToolByIndex (short nIndex)
Parameters:
nIndex:

The index of a tool. It can be set to: 0 <= nIndex< CountTools().
52 / 206

Programming Guide

Return Value:
Return the name of an ActiveX tool specified by the index.



ScrollView
Scroll the current view by dx and dy, using the device coordinate.

Prototype:
Void ScrollView (long dx, long dy)
Parameters:
dx:
dy

The horizontal distance of scrolling.
:

The vertical distance of scrolling.

Return Value:
None



GetScrollLocation
Get the current scroll location in current page.

Prototype:
Void GetScrollLocation (long *dx, long *dy)
Parameters:
dx:

[out]X coordinate of the current scroll location.

dy:

[out]Y coordinate of the current scroll location.

Return Value:
None



GetScrollLocationEx
The extension of GetScrollLocation.

Prototype:
void GetScrollLocationEx (VARIANT * HPos, VARIANT * VPos);
Parameters:
HPos:

[out]X coordinate of the current scroll location.

VPos:

[out]Y coordinate of the current scroll location.

Return Value:
None



SetViewRect
Display a rectangle area of current PDF page.

Prototype:
53 / 206

Programming Guide

Void SetViewRect (float Left, float Top, float Width, float Height)
Parameters:
Left:

X coordinate of the top left corner.

Top:

Y coordinate of the top left corner.

Width:

The rectangle width.

Height:

The rectangle height.

Return Value:
None
Note:
This method help display a specific rectangle area of current PDF page. It uses PDF coordinate, not
device coordinate. And the unit is a PDF point. The function will not change the position and the
size of current ActiveX window. It will only adjust the position and zoom factor for viewing so that
the specified rectangle area of current PDF page can be fit to the ActiveX window.
Here is a typical use case. An end user uses the mouse to click and drag a rectangle area and then
releases the mouse. The program calls ConvertClientCoodToPageCood to convert the device
coordinates to PDF coordinates and then call SetViewRect to display the specified area of a PDF
page to fit the ActiveX window.



ConvertClientCoordToPageCoord
Converts device coordinate(inside client area of ActiveX window) to PDF coordinate.

Prototype:
BOOL ConvertClientCoordToPageCoord (long nClientX, long nClientY, long* pnPageIndex, float*
pPageX, float* pPageY)
Parameters:
nClientX:

X coordinate of device coordinate in the ActiveX window, in pixels.

nClientY:

Y coordinate of device coordinate in the ActiveX window, in pixels.

pnPageIndex:

[out]The index of PDF page where the point falls on.

pPageX:

[out]X coordinate of PDF coordinate.

pPageY:

[out]Y coordinate of PDF coordinate.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The specified area may contain some ActiveX background area. And then it will fail to convert.



ConvertClientCoordToPageCoordEx
54 / 206

Programming Guide

Converts device coordinate(inside client area of ActiveX window) to PDF coordinate. This is the
extension of ConvertClientCoordToPageCoord.
Prototype:
BOOL ConvertClientCoordToPageCoordEx (long nClientX, long nClientY, VARIANT* pnPageIndex,
VARIANT* pPageX, VARIANT* pPageY)
Parameters:
nClientX:

X coordinate of device coordinate in the ActiveX window, in pixels.

nClientY:

Y coordinate of device coordinate in the ActiveX window, in pixels.

pnPageIndex:

[out]The index of PDF page where the point falls on.

pPageX:

[out]X coordinate of PDF coordinate.

pPageY:

[out]Y coordinate of PDF coordinate.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The client area may contain some ActiveX background area. And then it will fail to convert.



ConvertPageCoordToClientCoord
Converts PDF coordinate to device coordinate(inside client area of ActiveX window).

Prototype:
BOOL ConvertPageCoordToClientCoord (long nPageIndex, float dPageX, float dPageY, long*
pnClientX, long* pnClientY)
Parameters:
nPageIndex:

The index of a PDF page.

dPageX:

X coordinate of PDF coordinate.

dPageY:

Y coordinate of PDF coordinate.

pnClientX:

[out]X coordinate of device coordinate in the ActiveX window. If the coordinate

is out of the ActiveX window, it fails to convert.
pnClientY:

[out]Y coordinate of device coordinate in the ActiveX window. If the coordinate

is out of the ActiveX window, it fails to convert.
Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
If no PDF is opened or the page index is incorrect, it will return FALSE.



ConvertCoordFromClientToPage
55 / 206

Programming Guide

Converts device coordinate (inside client area of ActiveX window) to PDF coordinate. This can be
called by Javascript.
Prototype:
VARIANT ConvertCoordFromClientToPage(long nClientX, long nClientY);
Parameters:
nClientX:

X coordinate of device coordinate in the ActiveX window, in pixels.

nClientY:

Y coordinate of device coordinate in the ActiveX window, in pixels.

Return Value:
Returns an array, which includes 3 values. The first is the index of current page. The second is X
coordinate of page coordinate and the third is Y coordinate of page coordinate.



ConvertCoordFromPageToClient
Converts PDF coordinate to device coordinate (inside client area of ActiveX window). This can be
called by Javascript.

Prototype:
VARIANT ConvertCoordFromPageToClient(long nPageIndex, float PageX, float PageY);
Parameters:
nPageIndex:

The index of a PDF page.

PageX:

X coordinate of PDF coordinate.

PageY:

Y coordinate of PDF coordinate.

Return Value:
Returns an array, which includes 2 values. The first is X coordinate of device coordinate and the
second is Y coordinate of device coordinate in the ActiveX window.



SetBackgroudColor
Set background color for PDF viewing.

Prototype
boolean SetBackgroudColor(OLE_COLOR color)
Parameters:
color:

The background color for viewing a PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.



ShowPageShadow
Show or hide page shadow for PDF viewing.

Prototype:
56 / 206

Programming Guide

void ShowPageShadow(bool bShow);
Parameters:
bShow:

A value to indicate whether to show page shadow for PDF viewing.

Return Value:
None



ShowPageBorder
Show or hide page border for PDF viewing.

Prototype:
void ShowPageBorder(bool bShow);
Parameters:
bShow:

A value to indicate whether to show page border for PDF viewing.

Return Value:
None



ShowPagesSpace
Show or hide page space for PDF viewing in Facing or Continuous Facing mode.

Prototype:
void ShowPagesSpace (bool bShow);
Parameters:
bShow:

A value to indicate whether to show page space for PDF viewing in Facing mode.

Return Value:
None

7. Hyperlink


CountHyperLinks
Count the hyperlink in a specific PDF page.

Prototype:
Short CountHyperLinks(short nPageIndex)
Parameters:
nPageIndex:

The index of a PDF page.

Return Value:
Return the hyperlink number if successful.
Return 0 if there is no hyperlink.
Return -1 if failing.
57 / 206

Programming Guide



HighlightHyperLink
Highlight a specific hyperlink.

Prototype:
Void HighlightHyperLink(short nPageIndex, short nLinkIndex)
Parameters:
nPageIndex:

The index of a PDF page.

nLinkIndex:

The index of a hyperlink.

Return Value:
None



GetHyperLinkRect
Get the position information of a specific hyperlink.

Prototype:
BOOL GetHyperLinkRect(short nPageIndex, short nIndex, float* top, float* left, float* bottom, float*
right)
Parameters:
nPageInde:

The index of a PDF page.

nLinkIndex:

The index of a hyperlink.

top:

[out]The top coordinate of the hyperlink rectangle.

left:

[out]The left coordinate of the hyperlink rectangle.

bottom:

[out]The bottom coordinate of the hyperlink rectangle.

right:

[out]The right coordinate of the hyperlink rectangle.

Return Value:
Return TRUE if successful, otherwise FALSE.



GetHyperLinkInfo
Get the information of a specific hyperlink.

Prototype:
BOOL GetHyperLinkInfo(short nPageIndex, short nIndex, BSTR* linktype, BSTR* linkdata,
LPDISPATCH* linkdest)
Parameters:
nPageIndex:

The index of a PDF page.

nLinkIndex:

The index of a hyperlink.

linktype:

[out]The hyperlink type.

linkdata:

[out]The string data of the hyperlink.
58 / 206

Programming Guide

linkdest:

[out]The hyperlink destination.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
Currently linktype parameter only supports GoTo, GoToR, Lanuch and URI.



EnableHyperLink
Enable the hyperlink.

Prototype:
EnableHyperLink(boolean bEnable)
Parameters:
bEnable:

A flag specifying whether to enable hyperlink. It can be set to:

TRUE

-

Enable the hyperlink.

FALSE

-

Disable the hyperlink.

Return Value:
None

8. Text


GetPageText
Extract the text from a specific PDF page.

Prototype:
BSTR GetPageText (long nPageIndex)
Parameters:
nPageIndex:

The index of a PDF page.

Return Value:
Return the text which is extracted.



*GetPageTextW
Extract the text from a specific PDF page.

Prototype:
long GetPageTextW(long nPageIndex, long* pBuffer, long* nBuflen)
Parameters:
nPageIndex:

The index of a PDF page.

pBuffer:

[out]A pointer to the buffer which receives the text data.

nBuflen:

[out]The length of the text data.
59 / 206

Programming Guide

Return Value:
Returns -1 if successful, otherwise 0.



GetSelectedRectsCount
Count the text selection rectangles.

Prototype:
Long GetSelectedRectsCount()
Returned Value:
Return the total number of text selection rectangles.



GetSelectedRectByIndex
Get a specific text selection rectangle.

Prototype:
Long GetSelectedRectByIndex(long nIndex, long* nPageIndex, float* left, float* bottom, float* right,
float* top)
Parameters:
nIndex:

The index of a text selection rectangle.

nPageIndex:

[out]The index of the page where the specified text selection rectangle is.

Left:

[out]The left coordinate of the text selection rectangle.

Bottom:

[out]The bottom coordinate of the text selection rectangle.

Right:

[out]The right coordinate of the text selection rectangle.

Top:

[out]The top coordinate of the text selection rectangle.

Returned Value:
Return TRUE if successful, otherwise FALSE.



GetSelectedText
Get the text which is currently selected.

Prototype:
BSTR GetSelectedText ();
Parameters:
None
Return Value:
Return the text which is currently selected.



GetSelectedTextEx
This is the extension of GetSelectedText.
60 / 206

Programming Guide

Prototype:
long GetSelectedTextEx(long* pBuffer, long nBuflen)
Parameters:
pBuffer:

[out]A pointer to the buffer which receives the selected text.

nBufLen:

The size of the buffer.

Return Value:
Return the buffer length of the selected text.



*SetSelectTextHighlightColor
Set the highlight color for the text selection.

Prototype
void SetSelectTextHighlightColor(OLE_COLOR HighLihgtColor, short Alpah)
Parameters:
HighLihgtColor:

The highlight color for the selected text.

Alpah:

The transparency for the selected text. The value could be from 0 to 255. 0

means transparent and 255 means opaque.
Return Value:
NULL



*LoadPDFTextDoc
Load a text document from a PDF.

Prototype:
IPDFTextDoc*LoadPDFTextDoc(BSTR filePath, BSTR filePass)
Parameters:
filePath:

The path of a PDF. It can be a URL.

filePass:

The password for opening PDF.

Return Value:
Return a pointer to an IPDFTextDoc object which contains the text document data.



*ExtractTextFromPDF
Convert a PDF to a TXT File.

Prototype:
BOOL ExtractTextFromPDF(BSTR sourcePath, BSTR sourcePass, BSTR destPath)
Parameters:
sourcePath:

File path of a source PDF.

sourcePass:

The password for accessing PDF.
61 / 206

Programming Guide

destPath:

The path of a TXT file to be converted. If the TXT file does not exist, a new one

will be created.
Return Value:
Return TRUE if successful, otherwise FALSE.

9. Custom UI


ShowTitleBar
Show or hide the title bar.

Prototype:
void ShowTitleBar(BOOL bShow)
Parameters:
bShow:

A flag specifying specify whether to show the title bar.
TRUE

-

Show the title bar.

FALSE

-

Hide the title bar.

Return Value:
None



ShowStatusBar
Show or hide the status bar.

Prototype:
void ShowStatusBar(BOOL bShow)
Parameters:
bShow:

A flag specifying whether to show the status bar.
TRUE

-

Show the status bar.

FALSE

-

Hide the status bar.

Return Value:
None



ShowToolBar
Show or hide the toolbar.

Prototype:
void ShowToolBar(BOOL bShow);
Parameters:
bShow:

A flag specifying whether to show the toolbar.
TRUE

-

Show the toolbar.
62 / 206

Programming Guide

FALSE

-

Hide the toolbar.

Return Value:
None



ShowToolbarButton
Show or hide a specific toolbar button.

Prototype:
void ShowToolbarButton(short nIndex, BOOL bShow)
Parameters:
nIndex:

The index of a toolbar button.

bShow:

A flag specifying whether to show the toolbar button.
TRUE

-

Show the toolbar button.

FALSE

-

Hide the toolbar button.

Return Value:
None



EnableToolTip
Show or hide the tooltips.

Prototype:
boolean EnableToolTip(BOOL bEnable)
Parameters:
bEnable:

A flag specifying whether to show the tooltips.
TRUE

-

Show the tooltips.

FALSE

-

Hide the tooltips.

Return Value:
Return TRUE if successful, otherwise FALSE.



GetPanelStatus
Get the status of navigation panel.

Prototype:
BOOL GetPanelStatus()
Parameters:
None
Return Value:
Returns TRUE if the panel is shown, otherwise FALSE.

63 / 206

Programming Guide



ShowNavigationPanels
Show or hide the navigation panel.

Prototype:
BOOL ShowNavigationPanels(BOOL bShow)
Parameters:
bShow: A flag specifying whether to show the navigation panel.
TRUE

-

Show the navigation panel.

FALSE

-

Hide the navigation panel.

Return Value:
Return TRUE if successful, otherwise FALSE.



ShowNavPanelByString
Show a navigation panel specified by the name.

Prototype:
BOOL ShowNavPanelByString(LPCTSTR lpszPanelName)
Parameters:
lpszPanelName:

The panel name. There are four panels, including:
“Bookmarks”
“Pages”
“Layer”
“Attachments”

Return Value:
Return TRUE if successful, otherwise FALSE.



SetLayoutShowMode
Set the page layout for PDF viewing.

Prototype:
Void SetLayoutShowMode (BrowseMode nShowMode, short nFacingCount);
Parameters:
nShowMode:

nFacingCount:

The displaying mode of the PDF pages. It can be set to:
0

-

MODE_SINGLE

1

-

MODE_CONTINUOUS

The number of pages that are displayed horizontally.

Return Value:
None
64 / 206

Programming Guide



GetLayoutShowMode
Get the current layout mode.

Prototype:
Void GetLayoutShowMode(short* pnShowMode, short* pnFacingCount)
Parameters:
pnShowMode:

[out]The current displaying mode.

PnFacingCount:

[out]The number of pages that are displayed horizontally.

Return Value:
None



SetFacingCoverLeft
Set cover page of a PDF to be displayed on the left when using the facing mode.

Prototype:
Void SetFacingCoverLeft (BOOL bLeft)
Parameters:
bLeft:

A flag specifying whether to render cover page to be on the left.

Return Value:
None



SetDisplayBackgroundColor
Set the background color of ActiveX control.

Prototype:
void SetDisplayBackgroundColor(long clrArgb)
Parameters:
clrArgb:

The background color of ActiveX control. It must be decimal ARGB format.

Return Value:
NULL



*ShowContextMenu
Show or hide the context menus.

Prototype:
Void ShowContextMenu(BOOL bShow)
Parameters :
bShow:

A flag specifying whether to show the context menus.

Return Value:

65 / 206

Programming Guide

None
Note:
If setting bShow to TRUE, it will show the context menus. Otherwise it will not.



ShowTextSelectionMenu
Show or hide the context menus for text selection tool.

Prototype:
Void ShowTextSelectionMenu(BOOL bShow);
Parameters:
bShow:

A flag specifying whether to show context menus for text selection tool.

Return Value:
None
Note:
ShowTextSelectionMenu is used by text selection tool and ShowContextMenu is used by hand tool.



*ShowFormFieldsMessageBar
Show or hide the message bar for form fields in PDF.

Prototype:
void ShowFormFieldsMessageBar(BOOL bShow)
Parameters:
bShow:

A flag specifying whether to show the message bar for form fields.

TRUE

-

Show the message bar.

FALSE

-

Hide the message bar.

Return Value:
None



*SetSigContextMenuString
Set context menus for a signature field.

Prototype:
void SetSigContextMenuString(BSTR string)
Parameters:
string:

The context menu(s). If there are multiple context menus, the two items could be

separated by a comma.
Return Value:
None

66 / 206

Programming Guide



*EnableBookmarkEdit
Enable bookmark editing.

Prototype:
void EnableBookmarkEdit(boolean bEdit)
Parameters:
bEdit:

A flag specifying whether the bookmark is editable.

Return Value:
NULL



SetPagesContextMenuString
Set context menu(s) for thumbnail in Page panel.

Prototype:
void SetPagesContextMenuString(BSTR string)
Parameters:
string:

The context menu(s) and two values could be separated by a comma.

Return Value:
NULL



SetBookmarkContextMenuString
Set context menu(s) for bookmark editing in Bookmark panel.

Prototype:
void SetBookmarkContextMenuString(BSTR string)
Parameters:
string:

The context menu(s) and two values could be separated by a comma.

Return Value:
NULL



ShowStdBookmarkContextMenu
Show or hide a default bookmark context menu.

Prototype:
void ShowStdBookmarkContextMenu(short nIndex, boolean bShow)
Parameters:
nIndex:

The index of a default bookmark context menu. The value is from 1.

bShow:

A flag specifying whether to show the context menu.

Return Value:

67 / 206

Programming Guide

NULL



ShowStdPagesContextMenu
Show or hide a default page context menu.

Prototype:
void ShowStdPagesContextMenu(short nIndex, boolean bShow)
Parameters:
nIndex:

The index of a default page context menu. The value is from 1.

bShow:

A flag specifying whether to show the context menu.

Return Value:
NULL

10. Print


PrintWithDialog
Pop up print dialog for PDF printing.

Prototype:
Void PrintWithDialog()
Parameters:
None
Return Value:
None



OpenMemFileForPrinter
Print a memory PDF file without displaying it.

Prototype:
IPDFPrinter* OpenMemFileForPrinter(long buffer, long size)
Parameters:
Buffer:

A pointer to the buffer specifying the PDF data.

Size:

The size of the buffer.

Return Value:
Return a pointer to an IPDFPrinter object that you can use to set for PDF printing.



OpenFileForPrinter
Print a PDF file without displaying it.

Prototype:
68 / 206

Programming Guide

IPDFPrinter* OpenFileForPrinter(BSTR file_path)
Parameters:
file_path:

File path of a PDF to be printed.

Return Value:
Return a pointer to an IPDFPrinter object that you can use to set for PDF printing.



*PrintPopupAnnot
Set whether to print out the content of pop-up annotations in a current PDF.

Prototype
void PrintPopupAnnot(boolean bPrint)
Parameters:
bPrint:

A flag specifying whether to print out the content of pop-up annotations.

Return Value:
NULL

11. Search


FindFirst
Get the first match for text search in current PDF.

Prototype:
BOOL FindFirst (BSTR search_string, BOOL bMatchCase, BOOL bMatchWholeWord)
Parameters:
SearchString:

The text keyword you want to search.

BMatchCase:

A flag specifying whether the search is case sensitive.

BMatchWholeWord:

A flag specifying whether to search whole word only.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
It will jump to the PDF page where the first match is found. And then update CurPage, highlight the
match and return TRUE. Otherwise FALSE.



FindFirstEx
Get the first match for text search in current PDF. This is the extension of FindFirst.

Prototype:
BOOL FindFirstEx(const VARIANT FAR& search_string, BOOL bMatchCase, BOOL
bMatchWholeWord)
69 / 206

Programming Guide

Parameters:
search_string:

The text keyword you want to search.

BMatchCase:

A flag specifying whether the search is case sensitive.

BMatchWholeWord:

A flag specifying whether to search whole word only.

Return Value:
Return TRUE if successful, otherwise FALSE.



FindNext
Get the next match for text search specified by Findfirst.

Prototype:
BOOL FindNext (BOOL bSearchDown);
Parameters:
bSearchDown:

A flag specifying to search down or search up.
TRUE

-

Search down.

FALSE

-

Search up.

Return Value:
Return TRUE if the next match is found, otherwise FALSE.
Note:
It will go to the PDF page where the next match is found. And then update CurPage, highlight the
match and return TRUE. Otherwise FALSE. Please note that FindNext uses the same search settings,
including bMatchCase and bMatchWholeWord, as FindFirst.



FindFileFirst
Get the first match for text search in a specific PDF.

Prototype:
IFindResult* FindFileFirst(BSTR file_path, BSTR search_string,BOOL bMatchCase, BOOL
bMatchWholeWord)
Parameters:
file_path:

File path of a PDF.

search_string:

The text keyword you want to search.

bmatchCase:

A flag specifying whether the search is case sensitive.

BMatchWholeWord:

A flag specifying whether to search whole word only.

Return Value:
Return a pointer to an IFindResult object if the first match is found, otherwise NULL.
Note:
70 / 206

Programming Guide

This method helps to search a text in a PDF without opening it. For example, to search for a
keyword in all the PDFs in a given folder, you may iterate all the PDFs in the folder and then search
for the keyword in them one by one. Once ActiveX find a match in a PDF, it returns IFindResult
which includes the detailed information of the match. Then one may call GoToSearchResult to open
the PDF, go to the destination page and highlight the match.



FindFileFirstEx
Get the first match for text search in a specific PDF. This is the extension of FindFileFirst.

Prototype:
IFindResult * FindFileFirstEx(BSTR file_path, BSTR password, VARIANT search_string, boolean
bMatchCase, boolean bMatchWholeWord);
Parameters:
file_path:

File path of a PDF.

Password:

Password for opening the PDF where the first match is.

search_string:

The text keyword you want to search.

bMatchCase:

A flag specifying whether the search is case sensitive.

BMatchWholeWord:

A flag specifying whether to search whole word only.

Return Value:
Return a pointer to an IFindResult object if the first match is found, otherwise NULL.



FindFileNext
Get the next match for text search in the PDF specified by FindFileFirst.

Prototype:
IFindResult *FindFileNext ();
Parameters:
None
Return Value:
Return a pointer to an IFindResult object if the next match is found, otherwise NULL.



GoToSearchResult
Display and highlight the search result.

Prototype:
Void GoToSearchResult (IFindResult* findresult);
Parameters:
Findresult:

[out]A pointer to an IFindResult object returned by FindFileFirst or FindFileNext.

Return Value:
71 / 206

Programming Guide

None



FindPageFirst
Get the first match for text search on a PDF page.

Prototype:
IFindResult* FindPageFirst(long nPageIndex, BSTR search_string, BOOL bMatchCase, BOOL
bMatchWholeWord)
Parameters:
nPageIndex:

The index of a page in current PDF.

Search_string:

The text keyword you want to search.

bMatchCase:

A flag specifying whether the search is case sensitive.

bMatchWholeWord:

A flag specifying whether to search whole word only.

Return Value:
Return a pointer to an IFindResult object, otherwise NULL.



FindPageNext
Get the next match for text search specified by FindPageFirst.

Prototype:
IFindResult* FindPageNext()
Parameters:
None
Return Value:
Return a pointer to an IFindResult object if successful, otherwise NULL.
Note:
Call FindPageFirst to initialize text search, and then call FindPageNext to get the next match.



FindMemFileFirst
Get the first match for text search in a PDF which is in memory.

Prototype:
IFindResult* FindMemFileFirst(VARIANT buffer, long fileSize, BSTR password, BSTR search_string,
BOOL bMatchCase, BOOL bMatchWholeWord)
Parameters:
Buffer:

A pointer to a buffer specifying the PDF data.

fileSize:

The size of PDF data.

Password:

Password for opening PDF.

Search_string:

The text keyword you want to search.
72 / 206

Programming Guide

bMatchCase:

A flag specifying whether the search is case sensitive.

bMatchWholeWord:

A flag specifying whether to search whole word only.

Return Value:
Return a pointer to an IFindResult object if successful, otherwise NULL.



FindClose
Release memory allocated by FindMemFileFirst.

Prototype:
Void FindClose()
Parameter:
None
Return:
None



*SetSearchHighlightFillColor
Set the highlight color for the search result.

Prototype
void SetSearchHighlightFillColor(OLE_COLOR FillColor, short Alpha)
Parameters:
FillColor:

The highlight color of a current search result.

Alpah:

The transparency of a current search result. The value could be from 0 to 255. 0

means transparent and 255 means opaque.
Return Value:
None



*SearchAndHighlightAllTextOnPage
Highlight all matches for a text search in a specific PDF page.

Prototype:
Void SearchAndHighlightAllTextOnPage(BSTR searchstring, BOOL bMatchCase, BOOL
bMatchWholeWord, long PageNo)
Parameters:
searchstring:

The text keyword you want to search.

bMatchCase:

A flag specifying whether the search is case sensitive.

bMatchWholeWord:

A flag specifying whether to search whole word only.

PageNo:

The index of a PDF page.

Return Value:
73 / 206

Programming Guide

None



ShowSearchNotFoundPrompt
Show or hide the message for text search.

Prototype:
Void ShowSearchNotFoundPrompt (boolean bShow)
Parameters:
bShow:

A value indicating whether to show the message for text search.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
This only shows or hides “No matches were found” for FindFirst.

12. Security


GetDocPermissions
Get file permission of current PDF.

Prototype:
Long GetDocPermissions ()
Parameter:
None
Return Value:
-

Return a 32bit integer which indicates the PDF permissions. Please refer to PDF Reference
document to get the detailed description about document permission.

-



Return 0xffffffff if the PDF is not protected.

* CheckOwnerPassword
Check the owner password of the PDF.

Prototype:
BOOL CheckOwnerPassword(BSTR lpszPermPsw)
Parameters:
lpszPermPsw:

The owner password.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetUserPassword
74 / 206

Programming Guide

Set user password for current PDF.
Prototype:
BOOL SetUserPassword(LPCTSTR lpszNewValue)
Parameters:
lpszNewValue:

A user password for the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetOwnerPassword
Set owner password for current PDF.

Prototype:
BOOL SetOwnerPassword(LPCTSTR lpszNewValue)
Parameters:
lpszNewValue:

An owner password for the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetUserPermission
Set user permission for current PDF.

Prototype:
BOOL SetUserPermission(long dwPermission)
Parameters:
dwPermission:

User permission flag.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
PDF document permissions could be 32bit integer. Please refer to PDF Reference document to get
the detailed description about document permission.

13. JavaScript


* RunJScript
Execute a JavaScript.

Prototype:
Void RunJScript(LPCTSTR csJS)
Parameters:
75 / 206

Programming Guide

scJS:

The JavaScript to be executed.

Return Value:
None



*ShowDocJsDialog
Pop up the document JavaScript dialog.

Prototype:
Void ShowDocJsDialog();
Parameters:
None
Return Value:
None



*ShowJsConsoleDialog
Pop up JavaScript Console Dialog.

Prototype:
Void ShowJsConsoleDialog();
Parameters:
None
Return Value:
None



DisableJavaScript
Disable JavaScript actions.

Prototype:
void DisableJavaScript(bool bDisable);
Parameters:
bDisable:

A value to indicate whether to disable JavaScript actions.

Return Value:
None



EnableSafeMode
Enable safe mode.

Prototype:
void EnableSafeMode(bool bEnable);
Parameters:
76 / 206

Programming Guide

bEnable:

A value to indicate whether to enable safe mode.

Return Value:
None

14. Multi-Instances


SetCurrentWnd
Set a current instance when ActiveX runs multi-instance.

Prototype:
Void SetCurrentWnd(long hWnd)
Parameters:
hWnd:

The handle of an ActiveX instance.

Return Value:
None



GetCurrentWnd
Get the handle of the current ActiveX window.

Prototype:
Long GetCurrentWnd()
Parameters:
None
Return Value:
Return the handle of the current ActiveX window if successful, otherwise Null.



GetCtrlInstance
Get the handle of the current ActiveX instance.

Prototype:
Long GetCtrlInstance ()
Parameters:
None
Return Value:
Return the handle of the current ActiveX instance if successful, otherwise NULL.

15. Edit and Page Organize


GetPageRotation
77 / 206

Programming Guide

Get the rotation of a specific PDF page.
Prototype:
long GetPageRotation(long page_index)
Parameters:
page_index:

The index of a PDF page.

Return Value:
Return a value indicating the page rotation. Possible values are:



0

-

0

1

-

90

2

-

180

3

-

270

*InsertNewPage
Insert a new blank page to current PDF.

Prototype:
Boolean InsertNewPage(long nPageIndex, long nPageWidth, long nPageHeight)
Parameters:
nPageIndex:

The index of a page before which a new blank page will be inserted.

nPageWidth:

Page width of the new blank page.

nPageHeight:

Page height of the new blank page.

Return Value:
Return TRUE if successful, otherwise FALSE.



*InsertPage
Insert one or more pages from a specific PDF to current PDF.

Prototype:
Boolean InsertPage(long nInsertAt, BSTR lpszPDFFileName, BSTR lpszPssword, BSTR
lpszPageRangeString)
Parameters:
nInsertAt:

The index of a page before which the new PDF page(s) will be inserted.

lpszPDFFileName:

Path of a source PDF where the new PDF pages are from.

lpszPssword:

Password for accessing the source PDF.

lpszPageRangeString:

The range of pages which are from the source PDF and will be inserted to

current PDF.
Return Value:
78 / 206

Programming Guide

Return TRUE if successful, otherwise FALSE.



*DeletePage
Delete one or more pages from current PDF.

Prototype:
Boolean DeletePage(long pageIndex, long count)
Parameters :
pageIndex:

The index of the first page to be deleted.

Count:

The total number of the pages to be deleted.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SwapPage
Swap two PDF pages.

Prototype:
boolean SwapPage(long pageIndex1, long pageIndex2)
Parameters:
pageIndex1:

The index of the first page to be swapped.

pageIndex2:

The index of the second page to be swapped.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetPageIndex
Set a new position for a specific PDF page.

Prototype:
Boolean SetPageIndex (long pageOldIndex, long pageNewIndex);
Parameters:
PageOldIndex:

The current index of a PDF page.

PageNewIndex:

A new index for the PDF page.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetPageCropBox
Crop a PDF page by specifying the crop area.

Prototype:
Boolean SetPageCropBox(long pageIndex, float left, float top, float right, float bottom);
79 / 206

Programming Guide

Parameters:
pageIndex:

The index of a page in current PDF.

left:

The horizontal coordinate of the top left corner.

top:

The vertical coordinate of the top left corner.

right:

The horizontal coordinate of the bottom right corner.

bottom :

The vertical coordinate of the bottom right corner.

Return Value:
Return TRUE if successful, otherwise FALSE.



* SetPageRotate
Rotate a PDF page.

Prototype:
Boolean SetPageRotate(long pageIndex, long rotate);
Parameters:
pageIndex:

The index of a PDF page.

rotate:

PDF page rotation.

Return Value:
Return TRUE if successful, otherwise FALSE.



*FlattenPage
Flatten a PDF page.

Prototype:
Boolean FlattenPage(long pageIndex);
Parameters:
pageIndex:

The index of a PDF page.

Return Value:
Return TRUE if successful, otherwise FALSE.



*ExportPagesToPDF
Export some pages from current PDF to get a new PDF.

Prototype:
BOOL ExportPagesToPDF(BSTR lpszPDFFileName, BSTR lpszPageRangeString);
Parameters:
lpszPDFFileName:

File path for a new PDF which will be created with the exported pages.

lpszPageRangeString:

The range of pages to be exported from current PDF. The value could

be in format of "0”, “2”, “3-5". Please note that "5-2" is invalid. To sum up, the number before the
80 / 206

Programming Guide

dash should be less than the one after the dash.
Return Value:
Return TRUE if successful, otherwise FALSE.



*ImportImageToPdf
Add an image to a PDF page.

Prototype:
BOOL ImportImageToPdf(LPCTSTR pdfFilePath, long index, LPCTSTR imageFilePath)
Parameters:
pdfFilePath:

The path of a PDF where the image will be added.

index:

The index of a PDF page where the image file will be added.

imageFilePath:

Path of an image which will be imported to the PDF.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
It supports six image types, including bmp, jpg, png, tif, gif and jpx.



*AddImageObject
Add an image to a PDF page.

Prototype:
BOOL AddImageObject (long nPageIndex, float left, float bottom, float width, float height, BSTR
BmpFileName, short alpha, short rotate)
Parameters:
nPageIndex:

The index of a PDF page where the image will be added.

Left:

X coordinate of the image to be added.

Bottom:

Y coordinate of the image to be added.

Width:

The width of the image to be rendered in the page.

height:

The height of the image to be rendered in the page.

BmpFileName:

File path of an image to be added.

Alpha:

Alpha value for the image. It can be from 0 to 255.

Rotate:

Rotation of the image.

Return Value:
Return TRUE if successful, otherwise FALSE.



* ConvertPDFPageToImage
Convert a PDF page to an image.
81 / 206

Programming Guide

Prototype:
BOOL ConvertPDFPageToImage(LPCTSTR pdfFile, long lnPageIndex, LPCTSTR imageFilePath, long
lnImageWidth, long lnImageHeight)
Parameters:
pdfFile

:

Path of a PDF whose page will be converted to image.

lnPageIndex:

The index of a page which will be converted to image.

imageFilePath:

File path for the image which will be generated from the specific PDF page. It

supports six image types, including bmp, jpg, png, tif, gif and jpx.
lnImageWidth:

The width of the image to be converted.

lnImageHeight:

The height of the image to be converted.

Return Value:
Return TRUE if successful, otherwise FALSE.

16. Asynchronous feature


OpenFileAsync
Mainly be used for opening linearized PDF documents. When in B/S architecture, it could help
quickly download the data of PDF and render it.

Prototype:
BOOL OpenFileAsync(LPCTSTR strURL, LPCTSTR strPDFPassword, LPCTSTR strUserName, LPCTSTR
strUserPassword)
Parameters:
strURL:

URL of a PDF from FTP or HTTP.

strPDFPassword:

Password for opening the PDF.

strUserName:

Username for connecting to FTP.

strUserPassword:

Password for connecting to FTP.

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetAsyncFileLen
Set HTTP file length which will be loaded by the asynchronous way.

Prototype:
Void SetAsyncFileLen(long lnSize)
Parameters:
lnSize:

The file size.
82 / 206

Programming Guide

Return Value:
None
Note:
*SetAsyncFileLen should be used together with *SetAsyncFileData, *OpenAsyncFile and
*OnFetchAsyncFileData.



*SetAsyncFileData
Set the asynchronous file data.

Prototype:
Void SetAsyncFileData(long lnFileBuffer, long offset, long size)
Parameters:
lnFileBuffer:

A pointer to the buffer specifying the request data.

offset:

Offset of the requested data.

Size:

Byte size of the requested data.

Return Value:
None
Note:
*SetAsyncFileData should be used together with *SetAsyncFileLen, *OpenAsyncFile and
*OnFetchAsyncFileData.



*OpenAsyncFile
Start to open the http file in asynchronous way.

Prototype:
Void OpenAsyncFile(LPCTSTR strPDFPassword)
Parameters:
strPDFPassword:

A password for opening a http PDF file.

Return Value:
None
Note:
*OpenAsyncFile should be used together with *SetAsyncFileData, *SetAsyncFileLen and
*OnFetchAsyncFileData.

17. Bookmark


GetOutlineFirstChild
Get the first child item of an outline.
83 / 206

Programming Guide

Prototype:
IPDFOutline*GetOutlineFirstChild(IPDFOutline* Outline)
Parameters:
Outline:

A pointer to an IPDFOutline object whose first child item will be returned. It will

return the root item when to set this to NULL.
Return Value:
Return a pointer to the first child item if the specified outline has child item, otherwise NULL.



GetOutlineNextSibling
Get next sibling item.

Prototype:
IPDFOutline*GetOutlineNextSibling(IPDFOutline* Outline)
Parameters:
Outline:

A pointer to an IPDFOutline object whose next sibling item will be returned.

Return Value:
Return a pointer to the next sibling item if it exists, otherwise NULL.

18. Form


*ExportFormToFDFFile
Export PDF form data to a Form Data Format (FDF) file.

Prototype:
BOOL ExportFormToFDFFile (BSTR FDFFileName)
Parameters:
FDFFileName:

Path of a FDF to which the form data will be exported.

Return Value:
Return TRUE if successful, otherwise FALSE.



*ImportFormFromFDFFile
Import data from a Form Data Format (FDF) file into PDF forms.

Prototype:
BOOL ImportFormFromFDFFile(BSTR FDFFileName)
Parameters:
FDFFileName:

Path of a FDF from which the form data will be imported.

Return Value:
Return TRUE if successful, otherwise FALSE.
84 / 206

Programming Guide



*FindFormFieldsTextFirst
Get the first match for text search in form fields.

Prototype:
BOOL FindFormFieldsTextFirst (BSTR searchstring, BOOL bMatchCase)
Parameters:
Searchstring:

The text keyword you want to search.

bMatchCase:

A flag specifying whether the search is case sensitive.

Return Value:
Return TRUE if successful, otherwise FALSE.



*FindFormFieldsTextNext
Get the next match for text search specified by FindFormFieldsTextFirst.

Prototype:
BOOL FindFormFieldsTextNext ()
Parameters:
None
Return Value:
Return TRUE if successful, otherwise FALSE.



* SubmitForm
Submit PDF form data to a specific destination.

Prototype:
BOOL SubmitForm(BSTR csDestination)
Parameters:
csDestination:

The destination for submitting the form data.

Return Value:
Return TRUE if successful, otherwise FALSE.



#GetCurrentForm
Get the current form field in PDF.

Prototype:
IPDFForm*GetCurrentForm ()
Parameters:
None
Return Value:

85 / 206

Programming Guide

Return a pointer to an IPDFForm object if successful, otherwise NULL.

19. Annotation


ForceRefresh
Refresh after adding highlights.

Prototype:
Void ForceRefresh()
Note:
This is used to increase the efficiency of adding highlights. In the old version, ActiveX refresh page
once a highlight is added. So it will refresh many times if several highlights are added. From version
5.0, ActiveX separate refresh from adding highlights. It requires to call ForceRefresh to refresh the
page after adding highlights.



*Highlight
Highlight a specific rectangle area on a PDF page.

Prototype:
Void Highlight(long nPageIndex, float left, float top, float right, float bottom)
Parameters:
nPageIndex:

The index of a PDF page.

left:

X coordinate of the top left corner in a rectangle area.

top:

Y coordinate of the top left corner in a rectangle area

right:

X coordinate of the bottom right corner in a rectangle area.

bottom:

Y coordinate of the bottom right corner in a rectangle area.

Return Value:
None



*RemoveAllHighlight
Remove all highlights in current PDF.

Prototype:
Void RemoveAllHighlight()
Parameters:
None
Return Value:
None

86 / 206

Programming Guide



*ImportAnnotsFromFDFFile
Import comments from a Form Data Format (FDF) file to current PDF.

Prototype:
BOOL ImportAnnotsFromFDFFile (BSTR FDFFileName)
Parameters:
FDFFileName:

File path of a FDF from which the comment will be imported.

Return Value:
Return TRUE if successful, otherwise FALSE.



*ImportAnnotsFromFDFFileEx
Import comments from a Form Data Format (FDF) file to a specific PDF page.

Prototype:
boolean ExportAnnotsToFDFFileEx(long PageIndex, BSTR FDFFileName)
Parameters:
PageIndex:

The index of a PDF page to which the comments will be imported.

FDFFileName:

File path of a FDF from which the comment will be imported.

Return Value:
Return TRUE if successful, otherwise FALSE.



*ExportAnnotsToFDFFile
Export comments from current PDF to a Form Data Format (FDF) file.

Prototype:
BOOL ExportAnnotsToFDFFile (BSTR FDFFileName)
Parameters:
FDFFileName:

File path of a FDF to which the comments will be exported.

Return Value:
Return TRUE if successful, otherwise FALSE.



*ExportAnnotsToFDFFileEx
Export comments from a specific PDF page to a Form Data Format (FDF) file.

Prototype:
boolean ExportAnnotsToFDFFileEx(long PageIndex, BSTR FDFFileName)
Parameters:
PageIndex:

The index of a PDF page whose comments will be exported.

FDFFileName:

File path of a FDF to which the comments will be exported.

87 / 206

Programming Guide

Return Value:
Return TRUE if successful, otherwise FALSE.



*SetBDrawAnnot
Set to show the PDF annotations or not.

Prototype:
Void SetBDrawAnnot(BOOL bDrawAnnot);
Parameters:
bDrawAnnot:

A flag specifying whether to show the PDF annotations.

TURE

-

Show the PDF annotations.

FALSE

-

Not to show the PDF annotations.

Return Value:
None



*ShowAllPopup
Show popup for all the markup annotations.

Prototype:
Void ShowAllPopup (BOOL bShow);
Parameters:
bShow:

A flag specifying whether to show the popup.
TRUE

-

Show the popup.

FALSE

-

Hide the popup.

Return Value:
None



*ReleasePageAnnots
Release the annotation object returned by GetPageAnnots.

Prototype
void ReleasePageAnnots(IPDFPageAnnots* pageAnnots)
Parameters:
pageAnnots:

A pointer to a page annotation object.

Return Value:
NULL



*SetAnnotDefaultProperties
Set default properties for adding Pencil annotation.
88 / 206

Programming Guide

Prototype:
void SetAnnotDefaultProperties(BSTR string);
Parameters:
string:

The properties information of a Pencil annotation object.

Return Value:
None



^GetPageAnnots
Get all the annotation objects from a PDF page.

Prototype:
IPDFPageAnnots*GetPageAnnots(long pageIndex)
Parameters:
pageIndex :

The index of a PDF page.

Return Value:
Return a pointer to an IPDFPageAnnots that can access and process the annotations in a specified
PDF page if succeed, otherwise NULL.



^GetFormatTool
Get the format tool for the PDF annotations.

Prototype:
IPDFormatTool*GetFormatTool()
Parameters:
None
Return Value:
Return a pointer to an IPDFormatTool object if successful, otherwise NULL.

20. Signature


&GetPDFSignatureMgr
Get all the signatures.

Prototype:
IPDFSignatureMgr* GetPDFSignatureMgr();
Parameters:
None
Return Value:
Return a pointer to an IPDFSignatureMgr object.
89 / 206

Programming Guide



&GetLastSigModuleError
Get the last error of the signature.

Prototype:
long GetLastSigModuleError()
Parameters:
None
Return Value:
Return a value indicating the last error of the signature.



0

-

Successful

1

-

Parameters error

2

-

Status error

3

-

Execution error

4

-

Certificate does not exist

&GetLastSigModuleErrMsg
Get the last error of the signature.

Prototype:
BSTR GetLastSigModuleErrMsg()
Parameters:
None
Return Value:
Return the error message of the signature.

21. Others


*AddPrintMark
Add text watermarks to a PDF for printing.

Prototype:
boolean AddPrintMark(BSTR string, float center_x, float center_y, BSTR fontname, short lfCharSet,
short fontsize, OLE_COLOR fontcolor, short textmode, short alpha, short rotate)
Parameters:
string:

The text of a watermark which will be printed in the PDF.

center_x:

X coordinate in PDF page coordinate system.

center_y:

Y coordinate in PDF page coordinate system.

fontname:

The font of the text watermark to be printed.
90 / 206

Programming Guide

lfCharSet:

The character encoding of the text watermark. Here is a list of pre-defined values.
ANSI_CHARSET,
BALTIC_CHARSET,
CHINESEBIG5_CHARSET,
DEFAULT_CHARSET(the one which is based on the OS),
EASTEUROPE_CHARSET,
GB2312_CHARSET,
GREEK_CHARSET,
HANGUL_CHARSET,
MAC_CHARSET,
OEM_CHARSET(the one which depends on the OS),
RUSSIAN_CHARSET,
SHIFTJIS_CHARSET,
SYMBOL_CHARSET,
TURKISH_CHARSET,

fontsize:

The font size of the text watermark to be printed.

fontcolor:

The font color of the text watermark to be printed.

textmode:

The mode of the text watermark. The value must be 0, 1 or 2.

0

-

fill the text

1

-

stroke the text

2

-

fill then stroke the text

alpha:

The transparency of the text watermark. The value could be from 0 to 255. 0 means

transparent and 255 means opaque.
rotate:

The rotation of the text watermark.

Return Value:
Return TRUE if successful, otherwise FALSE.



*UploadCurFileToFTP
Upload a PDF to a FTP server.

Prototype:
BOOL UploadCurFileToFTP(BSTR ftpName, BSTR userName, BSTR userPassword, long port, BSTR
FilePath)
Parameter:
ftpName:

FTP server name.

username:

Username for logging to FTP.
91 / 206

Programming Guide

userPassword:

Password for logging to FTP.

port:

Port on FTP server.

filePath:

Path of a PDF to be uploaded to FTP.

Return Value:
Return TRUE if successful, otherwise FALSE.



*IsDualPage
Check if a specific PDF page contains two layers.

Prototype:
BOOL IsDualPage(short pageIndex)
Parameters:
pageIndex:

The index of a PDF page.

Return Value:
Return TRUE if the specified PDF page contains two layers.
Note:
Two layers mean a page has an image with hidden text.



*AddWaterMark
Insert a text watermark of a specific PDF page.

Prototype:
BOOL AddWaterMark (short page, BSTR string, float left, float bottom, short fontsize, OLE_COLOR
fontcolor, short textmode, short alpha, short rotate)
Parameters:
Page:

The index of a page in current PDF where the watermark will be added.

String:

The text content of the watermark.

Left:

X coordinate for placing the text watermark.

Bottom:

Y coordinate for placing the text watermark.

Fontsize:

Font size of the watermark’s text.

Fontcolor:

Text color of the text watermark.

Textmode:

It can be set to 0, 1 or 2.
0

-

fill the text

1

-

stroke the text

2

-

fill then stroke the text

alpha:

Alpha value of the text watermark. It can be from 0 to 255.

rotate:

Rotation of the text watermark.
92 / 206

Programming Guide

Return Value:
Return TRUE if successful, otherwise FALSE.



*GetBitmap
Render contents in a page as a bitmap.

Prototype:
Long GetBitmap(short nPageIndex, long pixelWidth, long pixelHeight,
float rectLeft, float rectTop, loat rectRight, float rectBottom, long PixelFormat)
Parameters:
nPageIndex:

The index of a page to be rendered as a bitmap.

pixelWidth:

The width of the bitmap.

PixelHeight:

The height of the bitmap.

RectLeft:

The left coordinate of the display rectangle area in device coordinate.

RectTop:

The top coordinate of the display rectangle area in device coordinate.

rectRight:

The right coordinate of the display rectangle area in device coordinate.

RectBottom:

The bottom coordinate of of the display rectangle area in device coordinate.

PixelFormat:

The pixel format of the bitmap to be rendered.

Return Value:
Return a handle for the bitmap.



*GetBarcodeBitmap
Encode strings into barcode bitmap.

Prototype:
Long GetBarcodeBitmap(BSTR contents, short format, long moduleHSize, long moduleVSize, short
ecLevel)
Parameters:
Contents:
Format

Contents need to be encoded.
:

Coding format. It supports the following ones.

UNSPECIFY

=

-1,

CODE_39

=

1

CODE_128

=

3

EAN_8

=

6

UPC_A

=

7

EAN_13

=

8

ITF

=

9
93 / 206

Programming Guide

When choosing ITF, length of content must be one of the following values:8,10,12,16,20,24,44.
QR_CODE

=

15

moduleHSize:

The width of the barcode.

moduleVSize:

The height of the barcode.

ecLevel:

Merely effective to the QR Code type.

ECLEVEL_L

=

0

ECLEVEL_M

=

1

ECLEVEL_Q

=

2

ECLEVEL_H

=

3

Return Value:
Return a 2D image if successful, otherwise NULL.



*SetContextMenuString
Set the context menu.

Prototype:
Void SetContextMenuString(BSTR string);
Parameters:
string:

Context menus to be added.

Return Value:
None
Note:
This method could be used together with OnContextMenuIndex.

Event
1) BeforeDraw
Triggered before rendering the contents.
Prototype:
Void BeforeDraw (long dc)
Parameters:
dc:

Handle to a device context.

2) AfterDraw
Triggered after rendering the contents is completed.
Prototype:
Void AfterDraw (long dc)
94 / 206

Programming Guide

Parameters:
dc:

Handle to a device context.

3) OnZoomChange
Triggered once Zoomlevel has been changed.
Prototype:
Void OnZoomChange ()
Parameters:
None

4) OnPageChange
Triggered once the current page has been changed.
Prototype:
Void OnPageChange()
Parameters:
None

5) OnOpenPassword
Triggered when to open a PDF which is password protected.
Prototype:
Void OnOpenPassword (BSTR* password, BOOL* cancel)
Parameters:
Password:

Password for opening the PDF.

Cancel:

A flag specifying whether to cancel PDF opening if the input password is

incorrect.

6) OnSearchProgress
Triggered when to do text search.
Prototype:
Void OnSearchProgress (long pageNumber, long pageCount)
Parameters:
pageNumber:

The index of a page from which it starts to search.

pageCount:

Total number of PDF pages to be searched.

7) OnOpenFile
Triggered when failing to open a PDF.

95 / 206

Programming Guide

Prototype:
Void OnOpenFile(short Error)
Parameters:
Error:

Error code to be returned.

8) OnOpenDocument
Triggered when to open a PDF.
Prototype:
Void OnOpenDocument (BSTR filepath)
Parameters:
Filepath:

File path of a PDF to be opened.

9) OnFilePathInvalidate
Triggered when failing to open a PDF by file path.
Prototype:
Void OnFilePathInvalidate(BSTR WarnString);
Parameters:
WarnString:

Error message for PDF opening.

10) OnShowSavePrompt
Triggered when to close a PDF which has been modified.
Prototype:
void OnShowSavePrompt(BOOL* bShow, short * nResult);
Parameters:
bShow:

A flag specifying whether to show the default message box.

nResult:

A flag specifying whether to save the modified PDF. It will not save by default.

11) OnCloseDocument
Triggered when to close a PDF.
Prototype:
Void OnCloseDocument (BSTR filepath)
Parameters:
Filepath:

File path of a PDF to be closed.

12) OnDocumentChange
Triggered when the current PDF has been modified.

96 / 206

Programming Guide

Prototype:
Void OnDocumentChange ()
Parameters:
None

13) CustomFileGetSize
Triggered when to call OpenCustomFile to open PDF.
Prototype:
Void CustomFileGetSize (long* size)
Parameters:
Size:

A pointer to a value specifying the size of the PDF.

14) CustomFileGetBlock
Triggered when to call OpenCustomFile to open PDF.
Prototype:
Void CustomFileGetBlock (long pos, long pBuf, long size)
Parameters:
Pos:

Byte offset from beginning of the PDF.

pBuf:

A pointer to the buffer which will receive the pdf data.

Size:

The size of the buffer.

Note:
Get a block of data from the position specified by byte offset, which is from the beginning of a PDF.
The offset and buffer size must be in the PDF.

15) OnClick
Triggered when to click the left button.
Prototype:
Void OnClick (long hWnd, long ClientX, long ClientY);
Parameters:
hWnd:

The handle of a ActiveX window.

ClientX

:

X coordinate in the client area of ActiveX window.

ClientY

:

Y coordinate in the client area of ActiveX window.

16) OnDbClick
Triggered when to double click the left button.
Prototype:
97 / 206

Programming Guide

Void OnDbClick (long hWnd, long ClientX, long ClientY);
Parameters:
hWnd:
ClientX

The handle of a ActiveX window.
:

ClientY:

X coordinate in the client area of ActiveX window.
Y coordinate in the client area of ActiveX window.

17) OnRButtonClick
Triggered when to click the right mouse.
Prototype:
Void OnRButtonClick(long hWnd, long ClientX, long Client);
Parameters:
hWnd:

The handle of a ActiveX window.

ClientX

:

X coordinate in the client area of ActiveX window.

ClientY

:

Y coordinate in the client area of ActiveX window.

18) OnDownLoadFinish
Triggered once PDF downloading from Internet is completed.
Prototype:
Void OnDownLoadFinish();
Parameters:
None
Note:
It can work with OpenFile/OpenFileAsync/OpenAsyncFile when to access PDF from Internet.

19) OnErrorOccurred
Triggered once there is any error when to call the ActiveX interfaces. It only supports
GetToolByIndex and ShowToolbarButton.
Prototype:
Void OnErrorOccurred(BSTR lpszErrorMsg)
Parameters:
lpszErrorMsg:

Error message.

Return Value:
None

20) OnUploadFinish
Triggered once there exist errors when to call UploadCurFileToFTP.
98 / 206

Programming Guide

Prototype:
Void OnUploadFinish(short nRetCode)
Parameters:
nRetCode:

The error code.

Return Value:
None

21) OnTextHyperLink
Triggered when to click the text link.
Prototype:
Void OnTextHyperLink(BSTR csUrl, boolean* cancel)
Parameters:
csUrl:

The URL of the text link.

cancel:

A flag specifying whether to cancel executing the link’s action.

Return Value:
None

22) OnExcuteMenuItem
Triggered when to execute an action of the customized menu item that is added by
OnAddmenuItemAction.
Prototype:
Void OnExcuteMenuItem(BSTR sMenuItem, boolean* bResult)
Parameters:
sMenuItem:

The custom menu item.

bResult:

A flag specifying whether to get the result of the action.

Return Value:
None

23) *OnAddMenuItemAction
Triggered when to add an action of “add a menu item”.
Prototype:
void OnAddMenuItemAction(BSTR* pMenuItem)
Parameters:
pMenuItem:

A menu item.

Return Value:
None
99 / 206

Programming Guide

24) OnDoGoToRAction
Triggered when to execute the GoToR action.
Prototype:
void OnDoGoToRAction(BSTR sFilePath, Link_Dest* dest)
Parameters:
sFilePath:

File path of a PDF the GoToR action will go to.

dest:

The destination of the GoToR action.

Return Value:
None

25) OnDoGoToEAction
Triggered when to open an annotation link that points to the PDF that is attached current file.
Prototype:
Void OnDoGoToEAction(BSTR sFilePath, Link_Dest* dest) ;
Parameters:
sFilePath:

The temp path to place the attached PDF.

dest:

The destination of the annotation link.

Return Value:
None

26) *OnHyperLink
Triggered when to click on a text hyperlink.
Prototype:
Void OnHyperLink(BSTR linktype, BSTR linkdata, Link_Dest* dest, BOOL* cancel)
Parameters:
Linktype:
GoTo

The hyperlink type. It can be set to:
-

goes to a different page on the current PDF. For this, linkdata parameter must

be set to NULL and dest parameter must be set to the destination position where ActiveX
should go to.
GoToR

-

goes to a different local PDF. If it requires a new window to view the document,

linkdata parameter should contain the filename followed by 1. Otherwise, the filename should
be followed by 0. Dest parameter must be set to the destination position where ActiveX should
go to.
Launch

-

launches an external application. If it requires a new window to view the

document, linkdata parameter should contain the filename followed by 1. Otherwise, the
100 / 206

Programming Guide

filename should be followed by 0.
URI

-

opens an URI. For this, linkdata parameter must be set to include URI

information.
linkData:

The message for the hyperlink.

dest:

The destination position where ActiveX should go to.

Cancel:

A flag specifying whether to disable the hyperlink.

Return Value:
None

27) *OnContextMenuIndex
Triggered when to choose a context menu item by right-clicking.
Prototype:
Void OnContextMenuIndex(short nIndex);
Parameters:
nIndex:

The index of a context menu item.

Return Value:
None
Note:
This can be used together with SetContextMenuString.

28) *OnFetchAsyncFileData
Triggered when to open an asynchronous file. This will be used to request for the file data.
Prototype:
void OnFetchAsyncFileData(long offset, long size)
Parameters:
offset:

The offset of the requested PDF data.

size:

The size of the requested PDF data.

Return Value:
None
Note:
*OnFetchAsyncFileData should be used together with *SetAsyncFileData, *OpenAsyncFile and
*SetAsyncFileLen.

29) *OnCurPageIndexChanged
Triggered once the current PDF page has been changed.
Prototype:
101 / 206

Programming Guide

VoidOnCurPageIndexChanged (long curPageIdx, long newPageIdx)
Parameters:
curPageIdx:

The old index of current PDF page.

newPageIdx:

The new index of current PDF page.

Return Value:
None

30) *OnSigContextMenuIndex
Triggered when to click a context menu of a signature filed.
Prototype:
void OnSigContextMenuIndex(short nIndex, IDispatch* SignatureField)
Parameters:
nIndex:

The index of a context menu.

SignatureField:

A pointer to a signature filed.

Return Value:
None

31) OnPagesContextMenuIndex
Triggered when to click a context menu of a page thumbnail in Page panel.
Prototype:
void OnPagesContextMenuIndex(short nIndex,VARIANT* pageArray)
Parameters:
nIndex:

The index of a page context menu.

pageArray:

The page array.

Return Value:
NULL

32) OnBookmarkContextMenuIndex
Triggered when to click a context menu of a bookmark.
Prototype:
void OnBookmarkContextMenuIndex(short nIndex)
Parameters:
nIndex:

The index of a bookmark context menu to be clicked.

Return Value:
NULL

102 / 206

Programming Guide

33) *OnFormFieldClick
Triggered when to click a form field.
Prototype:
void OnFormFieldClick(PDFFormField* pClickedField)
Parameters:
nIndex:

A pointer to a PDF form field.

Return Value:
NULL

34) *OnFormFieldKeyDown
Triggered when to press key down to a form field.
Prototype:
void OnFormFieldKeyDown(IPDFFormField* pFormField, long* nKey)
Parameters:
pFormField:

A pointer to a PDF form field object.

nKey:

Virtual-key code.

Return Value:
NULL

35) *OnFormFieldKeyUp
Triggered when to release the key (key up) to a form field.
Prototype:
void OnFormFieldKeyUp(PDFFormField* pFormField, long* nKey)
Parameters:
pFormField:

A pointer to a PDF form field object.

nKey:

Virtual-key code.

Return Value:
NULL

36) *OnSetFocus
Triggered when to set focus to an ActiveX instance.
Prototype:
void OnSetFocus(long hwnd)
Parameters:
hwnd:

The handle of an ActiveX instance.

103 / 206

Programming Guide

Return Value:
NULL

37) *OnKillFocus
Triggered when to lose focus from a control instance.
Prototype:
void OnKillFocus(long hwnd)
Parameters:
hwnd:

The handle of an ActiveX instance.

Return Value:
NULL

38) *OnDbClickEx
Triggered when to double click the left mouse button.
Prototype:
void OnDbClickEx(long hWnd, long ClientX, long ClientY, boolean* bRet)
Parameters:
hWnd:

The handle of a current ActiveX instance.

ClientX:

X coordinate in the client area of ActiveX window.

ClinetY:

Y coordinate in the client area of ActiveX window.

bRet:

A value indicating whether to go with the default ActiveX workflow or a custom

workflow.
TRUE

-

Use a custom workflow.

FALSE

-

Use a default ActiveX workflow.

Return Value:
NULL

39) *OnRButtonClickEx
Event triggered when to click the right mouse button.
Prototype:
void OnRButtonClickEx(long hWnd, long ClientX, long ClientY, boolean* bRet)
Parameters:
hWnd:

The handle of the ActiveX control instance.

ClientX

:

X coordinate in the client area of ActiveX window.

ClientY

:

Y coordinate in the client area of ActiveX window.

bRet:

A value indicating whether to go with the default ActiveX workflow or a custom
104 / 206

Programming Guide

workflow.
TRUE

-

Use a custom workflow.

FALSE

-

Use a default ActiveX workflow.

Return Value:
NULL

40) #FormFieldError
Triggered when an error occurs for configuring a PDF form field.
Prototype:
Void FormFieldError(long nErrorCode);
Parameters:
nErrorCode:

The error code of configuring the PDF form field.

Return Value:
None

105 / 206

Programming Guide

IPDFPrinter
IPDFPrinter helps to choose the printer and do settings for PDF printing.

Properties
1) PrinterName
Type:
BSTR
Description:
The name of a printer for PDF printing.

2) PrinterRangeMode
Type:
PrinterRangeMode
Description:
Set the printing range. It can be set to:
PRINT_RANGE_ALL

= 0,

PRINT_RANGE_CURRENT_VIEW

= 1,

PRINT_RANGE_CURRENT_PAGE

= 2,

PRINT_RANGE_SELECTED

=3

3) PrinterRangeFrom
Type:
short
Description:
The first PDF page to be printed. You must first set PrinterRangeMode to PRINT_RANGE_SELECTED.

4) PrinterRangeTo
Type:
short
Description:
The last PDF page to be printed. You must first set PrinterRangeMode to PRINT_RANGE_SELECTED.

5) NumOfCopies
Type:

106 / 206

Programming Guide

short
Description:
Print copies.

6) Scaling
Type:
short
Description:
Scaling for printing.
Note:
ActiveX will print with “Fit to Paper” when setting Scaling to 0.

7) AutoRotate
Type:
boolean
Description:
A flag indicating whether to check Auto-Rotate option for printing or not.

8) AutoCenter
Type:
boolean
Description:
A flag indicating whether to check Auto-center option for printing or not.
1 = auto-center
0 = not auto-center

9) Collate
Type:
boolean
Description:
A flag indicating whether to check Collate option for printing or not.
1 = Collate
0 = not Collate

10) Rotation
Type:

107 / 206

Programming Guide

short
Description:
Page rotation for printing.

11) RangeSubset
Type:
short
Description:
A value indicating whether to include subset for printing or not.

12) ReversePage
Type:
boolean
Description:
A flag indicating whether to print the PDF in reverse order or not.

13) PageBorder
Type:
boolean
Description:
A flag indicating whether to print out page borders.

14) PrintWhat
Type:
Short
Description:
PDF contents to be printed out. It can be set to:
0

-

Document

1

-

Document and Annotations

2

-

Annotations

Methods
1) PrintWithDialog
Pop up print dialog when to print a PDF.
Prototype:

108 / 206

Programming Guide

void PrintWithDialog()
Parameters:
None
Return Value:
None

2) PrintQuiet
Print a PDF without setting in the print dialog.
Prototype:
Void PrintQuiet()
Parameters:
None
Return Value:
None

3) SetPaperSize
Set paper size of a selected printer for printing.
Prototype:
Void SetPaperSize (long paperSize)
Parameters:
paperSize:

Paper size for printing.

Return Value:
None
Note:
Please refer to Windows SDK documentation to get the information about the available paper sizes.

4) GetSystemPrinterCount
Count the system printers.
Prototype:
Long GetSystemPrinterCount()
Return Value:
Return the total number of the system printers.

5) GetSystemPrinterNameByIndex
Get the printer name in the system by index.
Prototype:
109 / 206

Programming Guide

BSTR GetSystemPrinterNameByIndex(long index)
Return Value:
Return the name of a system printer by index.

6) SetPaperSizeByPage
Set to check “Choose Paper Source by PDF Page Size” option for PDF printing.
Prototype:
void SetPaperSizeByPage(BOOL bPage);
Parameters:
bPage:

A flag specifying whether to check the option.

Return Value:
None

7) SetDuplexMode
Set duplex mode.
Prototype:
Boolean SetDuplexMode(short nDuplexMode)
Parameters:
short nDuplexMode:

A value specifying the duplex mode. Possible values are 1, 2 or 3.

1 =

DMDUP_SIMPLEX (Simplex (non duplex) mode.)

2 =

DMDUP_VERTICAL (Duplex mode that flips the page vertically.)

3 =

DMDUP_HORIZONTAL (Duplex mode that flips the page horizontally.)

Return Value:
Return TRUE if successful, otherwise FALSE.

110 / 206

Programming Guide

IPDFDocumentInfo
IPDFDocumentInfo helps to get the properties information of a PDF.

Properties
1) Author
Type:
BSTR
Description:
The author of a PDF.

2) Subject
Type:
BSTR
Description:
The subject of a PDF.

3) CreatedDate
Type:
BSTR
Description:
The date when the PDF was created.

4) ModifiedDate
Type:
BSTR
Description:
The last time when the PDF was modified.

5) Keywords
Type:
BSTR
Description:
The keywords of a PDF.

6) Creator
111 / 206

Programming Guide

Type:
BSTR
Description:
The creator of a PDF.

7) Producer
Type:
BSTR
Description:
The producer of a PDF.

8) Title
Type:
BSTR
Description:
The title of a PDF.

112 / 206

Programming Guide

IFindResult
IFindResult helps to get the information about a text search result.

Method
1) GetFindRectsCount
Count the search result rectangles.
Prototype:
long GetFindRectsCount()
Return Value:
Return the total number of the search result rectangles if successful, otherwise 0.

2) GetFindRectByIndex
Get a specific search result rectangle.
Prototype:
long GetFindRectByIndex(long nIndex,float* left, float* bottom, float* right, float* top)
Parameters:
nIndex:

The index of a search result rectangle.

left:

[out]Left coordinate of the search result rectangle.

bottom:

[out]Bottom coordinate of the search result rectangle.

right:

[out]Right coordinate of the search result rectangle.

top:

[out]Top coordinate of the search result rectangle.

Return Value:
Return TRUE if successful, otherwise FALSE.

3) GetFindPageNum
Get the index of the page where the search result is.
Prototype:
long GetFindPageNum();
Parameters:
None
Return Value:
Return the index of the page where the search result is.

4) GetFindFileName
113 / 206

Programming Guide

Get the name of the PDF where the search result is.
Prototype:
BSTR GetFindFileName();
Parameters:
None
Return Value:
Return the name of the PDF where the search result is.

5) GetFindString
Get the content of the search result.
Prototype:
BSTR GetFindString()
Parameters:
None
Return Value:
Return the content of the search result.

114 / 206

Programming Guide

IPDFOutline
IPDFOutline helps get the information of an outline.

Method
1) GetOutlineDest
Get outline link destination.
Prototype:
ILink_Dest* GetOutlineDest()
Return Value:
Return a pointer to an ILink_Dest .

2) GetOutlineAction
Get outline associated action.
Prototype:
IPDF_Action* GetOutlineAction()
Return Value:
Return a pointer to an IPDF_Action.

3) GetOutlineColor
Get outline text color (RGB).
Prototype:
DWORD GetOutlineColor()
Return Value:
Return the text color of the outline.

4) NavigateOutline
Navigate to the destination specified by the outline.
Prototype:
void NavigateOutline()
Parameters:
None
Return Value:
None

5) GetOutlineTitle
115 / 206

Programming Guide

Get the title of the outline.
Prototype:
BSTR GetOutlineTitle()
Parameters:
None
Return Value:
Return the title of the outline.

6) GetOutLineTitle2
Get the title of the outline object as a variant.
Prototype:
VARIANT GetOutLineTitle2()
Parameters:
None
Return Value:
Returns the title of the outline object as a variant.

7) GetOutlineExpandValue
Count the child items of an outline.
Prototype:
Long GetOutlineExpandValue()
Return Value:
Return the total number of the child items.

116 / 206

Programming Guide

ILink_Dest
ILink_Dest helps to get the information of a hyperlink.

Method
1) GetPageIndex
Prototype:
Long GetPageIndex()
Parameter:
None.
Return Value:
Return the index of the PDF page which the hyperlink connects to.

2) GetZoomMode
Get the zoom mode.
Prototype:
Long GetZoomMode();
Parameter:
None.
Return Value:
Return a value indicating the zoom mode. Possible values are:
2

-

Fit Page

3

-

Fit Width

4

-

Fit Height

3) GetZoomParamCount
Count Zoom parameters.
Prototype:
Long GetZoomParamCount()
Parameter:
None.
Return Value:
Return the total number of Zoom parameters.

4) GetZoomParam
117 / 206

Programming Guide

Get the information of a specific Zoom parameter.
Prototype:
double GetZoomParam(long nIndex)
Parameter:
nIndex:

The index of a Zoom parameter.

Return Value:
Return the information of the specified Zoom parameter.

5) GetDestName
Get the name of a Name Destination object.
Prototype:
BSTR GetDestName()
Parameter:
None.
Return Value:
Return the name of a Name Destination object.

118 / 206

Programming Guide

IPDFAction
IPDFAction helps to get the information of an action.

Method
1) GetURIPath
Get the path of URI related to the action.
Prototype:
BSTR GetURIPath();
Return Value:
Return the path of URI.

2) GetFilePath
Get the file path of the external files related to the action.
Prototype:
BSTR GetFilePath();
Return Value:
Return the file path of the external files related to the action.

3) GetType
Get the type of the action.
Prototype:
BSTR GetType()
Return Value:
Return a value indicating the action type. Possible values are:
1

- Go to Action

2

-

Remote Go-To Actions

4

-

Launch Actions

6

-

URI Actions

4) GetDest
Get the destination of the action.
Prototype:
Ilink_Dest* GetDest();
Return Value:
119 / 206

Programming Guide

Return a pointer to an Ilink_Dest object.

120 / 206

Programming Guide

#IPDFForm
IPDFForm helps to manage and operate the form fields.

Method
1) #ImportFromFDF
Import form data from an FDF.
Prototype:
void ImportFromFDF(BSTR bstrFullPath)
Parameters:
bstrFullPath:

File path of a FDF from which the form data will be imported.

Return Value:
None

2) #ExportToFDF
Export form data to a FDF.
Prototype:
void ExportToFDF(BSTR bstrFullPath, boolean bEmptyFields, VARIANT arrFields)
Parameters:
bstrFullPath:

Full path of a FDF to which the form fields will be exported.

bEmptyFields:

A value specifying whether to only export the specified form fields.

TRUE

-

Only export the form fields specified by arrFields.

FALSE

-

Export all the other form fields but the ones specified by arrFields.

ArrFields:

The array of form fields to be exported.

Return Value:
None

3) #AddField
Add a new form field.
Prototype:
IPDFFormField* AddField(BSTR bstrFieldName, BSTR bstrFieldType, long pageIndex, float left, float
top, float right, float bottom)
Parameters:
bstrFieldName:

The fully qualified name for the form field.

121 / 206

Programming Guide

bstrFieldType:

The type of the form field to be created. It can be set to:
text,
button,
combobox,
listbox,
checkbox,
radio button

pageIndex:

The index of a PDF page.

Left:

The left coordinate of the form field rectangle.

top:

The top coordinate of the form field rectangle.

Right:

The right coordinate of the form field rectangle.

bottom:

The bottom coordinate of the form field rectangle.

Return Value:
Return an IPDFFormField object for the newly created form field.
Note:
The coordinate of the field rectangle is based on rotated page space. So, [0,0] is always at the left
bottom corner regardless of page rotation.

4) #GetSelectedField
Get the selected form field.
Prototype:
IPDFFormField* GetSelectedField()
Parameters:
None
Return Value:
Return an IPDFFormField object for the selected form field.

5) #RemoveField
Remove a specific form field.
Prototype:
Void RemoveField(IPDFFormField pFormField)
Parameters:
pFormField:

A pointer to a form field object to be removed.

Return Value:
None
122 / 206

Programming Guide

6) #RemoveFieldsByName
Delete a specific form field.
Prototype:
Void RemoveFieldsByName(LPCTSTR bstrFieldName)
Parameters:
bstrFieldName:

The fully qualified name of a form field to be deleted.

Return Value:
None
Note:
If the specified form field has child fields or multiple fields share a same name, all of the form fields
will be deleted.

7) #GetFieldsCount
Count the form fields in PDF.
Prototype:
Long GetFieldsCount()
Parameters:
None
Return Value:
Return the total number of the form fields if successful, otherwise -1.

8) #GetFieldByIndex
Get a specific form field.
Prototype:
IPDFFormField* GetFieldByIndex(long index)
Parameters:
index:

The index of a form field.

Return Value:
Return an IPDFFormField object for the specified form field if successful, otherwise NULL.

9) #GetSelectedField
Select a form field.
Prototype:
IPDFFormField* GetSelectedField()
Parameters:

123 / 206

Programming Guide

None
Return Value:
Return an IPDFFormField object

124 / 206

Programming Guide

#IPDFFormField
IPDFFormField helps to access and operate a form field.

Properties
1) #Alignment
Type:
String
Description:
Horizontal alignment of the text in text field. Possible values are: left, center and right.
Note:
For Text Field only.

2) #BorderStyle
Type:
String
Description:
The border style of a form filed. Possible values are: solid, dashed, beveled, inset and underline.
Note:
For all form field types.

3) #BorderWidth
Type:
short
Description:
The border width of a form filed.
Note:
For all form field types.

4) #ButtonLayout
Type:
short
Description:
The layout of a Push Button. Possible values are:
0

-

Text only:

the button has a caption but no icon.
125 / 206

Programming Guide

1

-

Icon only:

the button has an icon but no caption.

2

-

Icon over text:

the icon should appear on top of the caption.

3

-

Text over icon:

the text should appear on top of the icon.

4

-

Icon then text:

the icon should appear to the left of the caption.

5

-

Text then icon:

the icon should appear to the right of the caption.

6

-

Text over icon:

the text should be overlaid on top of the icon.

Note:
For Push Button only.

5) #CalcOrderIndex
Type:
short
Description:
The index of a form field in CO array.
Note:
For all form types.

6) #CharLimit
Type:
short
Description:
The character number limit of a text field.
Note:
For Text Field Only

7) #DefaultValue
Type:
String
Description:
Default value of a form field.
Note:
For all form types.

8) #IsEditable
Type:
Boolean
126 / 206

Programming Guide

Description:
A flag specifying whether a combo box is editable.
Note:
For Combo Box Only.

9) #Behavior
Type:
String
Description:
Possible values are: None, Invert, Outline and Push.
N (None)

-

No highlighting.

I (Invert)

-

Invert the contents of the annotation rectangle.

O (Outline)

-

Invert the annotation’s border.

P (Push)

-

Display the annotation as if it were being pushed below the surface of the

page.

10) #IsHidden
Type:
Boolean
Description:
A flag specifying whether a form field is hidden.
Note:
For all form types.

11) #IsMultiline
Type:
Boolean
Description:
A flag specifying whether a text field is in multi-line or single-line.
Note:
For Text Field only.

12) #IsPassword
Type:
Boolean
Description:
127 / 206

Programming Guide

A flag specifying whether to show the input as password.
Note:
For Text Field only.

13) #IsReadOnly
Type:
Boolean
Description:
A flag specifying whether to set a form field as read only.
Note:
For all form types.

14) #IsRequired
Type:
Boolean
Description:
A flag specifying whether a form field is required.
Note:
For Combo Box, Radio Button and Text Field.

15) #Name
Type:
String
Description:
The name of a form field.
Note:
Read only. For all form types.

16) #NoViewFlag
Type:
Boolean
Description:
A flag specifying whether to hide a form field.
0

-

Show.

1

-

Hide.

Note:
128 / 206

Programming Guide

For all form types.

17) #PrintFlag
Type:
Boolean
Description:
A flag specifying whether to print the form field.
1

-

Print out.

0

-

Not to print out.

Note:
For all form types.

18) #Style
Type:
CString
Description:
A value indicating the shape of Check Box and Radio Button. Possible Values are:
check
cross
diamond
circle
star
square
Note:
For Check Box and Radio Button.

19) #TextFont
Type:
String
Description:
A font name to be used to display the text in a form field. Possible Values are:
Courier
Courier-Bold
Courier-Oblique
Courier-BoldOblique
Helvetica
129 / 206

Programming Guide

Helvetica-Bold
Helvetica-Oblique
Helvetica-BoldOblique
Symbol
Times-Roman
Times-Bold
Times-Italic
Times-BoldItalic
ZapfDingbats
Note:
For all form types except Check Box and Radio Box.

20) #TextSize
Type:
Short
Description:
The font size of the text in a form field.
Note:
For all form types except for Check box and Radio Box.

21) #Type
Type:
String
Description:
The form type. Possible values are:
Text
Button
Combobox
Listbox
Checkbox
radiobutton

22) #Value
Type:
String
Description:
130 / 206

Programming Guide

The value of a form field.
Note:
For Text Field, Combo Box, Radio Button, Check Box and List Box.

23) #Tooltip
Type:
String
Description:
A value indicating whether to display the tooltip.
Note:
For all form types.

24) #Orientation
Type:
Short
Description:
The text rotation of the form fields.
Note:
For all form types.

25) #DirtyFlag
Type:
boolean
Description:
A value indicating whether the form field has been changed.

26) #ID
Type:
BSTR
Description:
The ID of a form field.

Method
1) #PopulateListOrComboBox
Set values for List Box or Combo Box.

131 / 206

Programming Guide

Prototype:
void PopulateListOrComboBox(VARIANT arrItems, VARIANT arrExportVal)
Parameter:
arrItem:

An array of strings, each of which represents an item name.

arrExportVal:

An array of strings, each of which represents an item name. The size of

arrExportVal is the same as arrItem.
Return Value:
None

2) #SetBackgroundColor
Set the background color of a form field.
Prototype:
Void SetBackgroundColor(LPCTSTR bstrColorSpace, float redC, float greenM, float blueY, float
AlphaK)
Parameter:
bstrColorSpace:

The color space. Possible values are: Transparent, Gray, RGB, CMYK.

Transparent:

redC parameter is required.

Gray:

redC parameter is required.

RGB:

redC, greenM and blueY are required.

CMYK:

redC, greenM, blueY and AlphaK are required.

redC:

A value which should be from 0 to 1.

greenM:

A value which should be from 0 to 1.

blueY:

A value which should be from 0 to 1.

AlphaK:

This parameter is required by CMYK.

Return Value:
None

3) #SetBorderColor
Set the border color of a form field.
Prototype:
Void SetBorderColor (LPCTSTR bstrColorSpace, float redC, float greenM,float blueY, float AlphaK)
Parameter:
bstrColorSpace:

The color space. Possible values are: Transparent, Gray, RGB, CMYK.

Transparent:

redC parameter is required.

Gray:

redC parameter is required.
132 / 206

Programming Guide

RGB:

redC, greenM and blueY are required.

CMYK:

redC, greenM, blueY and AlphaK are required.

redC:

A value which should be from 0 to 1.

greenM:

A value which should be from 0 to 1.

blueY:

A value which should be from 0 to 1.

AlphaK:

This parameter is required by CMYK.

Return Value:
None

4) #SetForegroundColor
Set the foreground color.
Prototype:
Void SetForegroundColor (LPCTSTR bstrColorSpace, float redC, float greenM, float blueY, float
AlphaK)
Parameter:
bstrColorSpace:

The color space. Possible values are: Transparent, Gray, RGB, CMYK.

Transparent:

redC parameter is required.

Gray:

redC parameter is required.

RGB:

redC, greenM and blueY are required.

CMYK:

redC, greenM, blueY and AlphaK are required.

redC:

A value which should be from 0 to 1.

greenM:

A value which should be from 0 to 1.

blueY:

A value which should be from 0 to 1.

AlphaK:

This parameter is required by CMYK.

Return Value:
None

5) #SetButtonCaption
Set the text to be displayed.
Prototype:
Void SetButtonCaption (LPCTSTR bstrFace, LPCTSTR bstrCaption)
Parameter:
bstrFace:

A string specifying the appearance . Possible values are:

N

-

Normal appearance

D

-

Down appearance
133 / 206

Programming Guide

R

-

Appearance for rollover

bstrCaption:

The text information of a button.

Return Value:
None

6) #SetButtonIcon
Set the icon for a button field.
Prototype:
Void SetButtonIcon (LPCTSTR bstrFace, LPCTSTR bstrFilePath)
Parameters:
bstrFace:

A string specifying the caption of a button field. Possible values are:

N

-

Normal appearance

D

-

Down appearance

R

-

Appearance for rollover

BstrFilePath:

File path of an image to be used as the icon of a button field.

Return Value:
None

7) #SetExportValues
Set the export values for Radio Button or Check Box according to the requirements (Selected,
un-selected, checked, un-checked, etc)
Prototype:
Void SetExportValues (const VARIANT& arrExportVal)
Parameters:
arrExportVal:

An array of export values.

Return Value:
None

8) #SetJavaScriptAction
Set JavaScript action.
Ptototype:
Void SetJavaScriptAction (LPCTSTR bstrTrigger, LPCTSTRbstrJavaScript)
Parameters:
BstrTrigger:

A string specifying the trigger for the JavaScript. Possible values are: up,

down, enter, exit, calculate, validate, format and keystroke.
bstrJavaScript:

The JavaScript script to be executed.
134 / 206

Programming Guide

Return Value:
None

9) #SetResetFormAction
Set reset-form action for a form field.
Prototype:
Void SetResetFormAction(LPCTSTR bstrTrigger, long bFlags, const VARIANT& arrFields)
Parameters:
bstrTrigger :

A string specifying the trigger for the reset-form action. Possible values are:

Up

-

Mouse up

Down

-

Mouse down

Enter

-

Mouse enter

Exit

-

Mouse exit

bFlags :

A collection of flags that define various characteristics of the action.

arrFields :

An array of form elements to be exported.

Return Value:
None

10) #SetSubmitFormAction
Set submit-form action for a form field.
Prototype:
Void SetSubmitFormAction(LPCTSTR bstrTrigger, LPCTSTR bstrURL, long bFlags, const VARIANT&
arrFields)
Parameters:
bstrTrigger:

A string specifying the trigger for the submit-form action. Possible values are:

up

-

Mouse up

down

-

Mouse down

enter

-

Mouse enter

exit

-

Mouse exit

bstrURL :

A string containing the URL.

bFlags :

A collection of flags that define various characteristics of the action.

arrFields :

Form element array to be submitted

Return Value:
None

11) #GetPageIndex
135 / 206

Programming Guide

Get the index of the page where the form field is.
Prototype:
Long GetPageIndex()
Parameters:
None
Return Value:
Return the index of a PDF page.

12) #GetRectTop
Get the top coordinate of a form field.
Prototype:
Float GetRectTop(l)
Parameters:
None
Return Value:
Return a top coordinate.

13) #GetRectLeft
Get the left coordinate of a form field.
Prototype:
Float GetRectLeft()
Parameters:
None
Return Value:
Return a left coordinate.

14) #GetRectRight
Get the right coordinate of a form field.
Prototype:
Float GetRectRight()
Parameters:
None
Return Value:
Return a right coordinate.

15) #GetRectBottom
136 / 206

Programming Guide

Get the bottom coordinate of a form field.
Prototype:
Float GetRectBottom()
Parameters:
None
Return Value:
Return a bottom coordinate.

137 / 206

Programming Guide

^IPDFPageAnnots
IPDFPageAnnots helps to access and operate the annotations in a PDF page.

Method
1) ^GetAnnot
Get a specific annotation in PDF page.
Prototype:
CPDFAnnot GetAnnot(long AnnotIndex)
Parameters:
AnnotIndex :

The index of a PDF annotation.

Return Value:
Return a PDF annotation for the specified annotation if successful, otherwise NULL.

2) ^GetLTAnnot
Get a specific annotation in PDF page.
Prototype:
IPDFAnnot*GetLTAnnot(long AnnotIndex)
Parameters:
AnnotIndex :

The index of a PDF annotation.

Return Value:
Return a PDF annotation for the specified annotation if successful, otherwise NULL.
Note:
The PDF annotation object return by GetLTAnnot should be released by ReleaseLTAnnot.

3) ^ReleaseLTAnnot
Release an annotation object returned by GetLTAnnot.
Prototype:
Void ReleaseLTAnnot(IPDFAnnot* Annot)
Parameters:
AnnotIndex :

The index of a PDF annotation.

Return Value:
Return a PDF annotation for the specified annotation if successful, otherwise NULL.

4) ^AddAnnot
138 / 206

Programming Guide

Add a new PDF annotation.
Prototype:
CPDFAnnot AddAnnot (LPDISPATCH AnnotToAddAfter, LPCTSTR SubType, float left, float top, float
right, float bottom)
Parameters:
AnnotToAddAfter :

Reserved. The value must be NULL.

SubType :

Annotation type. It can be set to:

"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 :

The left coordinate of the annotation rectangle.

Top :

The top coordinate of the annotation rectangle.

Right :

The right coordinate of the annotation rectangle.

Bottom :

The bottom coordinate of the annotation rectangle.

Return Value:
Return an IPDFAnnot object for the new annotation if successful, otherwise NULL.
Note:
All coordinates are based on the PDF coordinate space. To add a stamp annotation, SetStampParam
must be called before using AddAnnot.

5) ^AddLTAnnot
Add a new PDF annotation.
Prototype:
IPDFAnnot*AddLTAnnot(IPDFAnnot*AnnotToAddAfter, BSTR SubType, float Left, float Top, float
Right, float Bottom)
Parameters:
AnnotToAddAfter:

Reserved. The value must be NULL.

SubType:

Annotation type. It can be set to:

"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:

The left coordinate of the annotation rectangle.

Top:

The top coordinate of the annotation rectangle.
139 / 206

Programming Guide

Right:

The right coordinate of the annotation rectangle.

Bottom:

The bottom coordinate of the annotation rectangle.

Return Value:
Return an IPDFAnnot object for the new annotation if successful, otherwise NULL.
Note:
AddLTAnnot will return a long-term annotation object, which should be released by ReleaseLTAnnot.
It helps developer better control an annotation object in some cases.

6) ^ SetStampParam
Set for a stamp object which will be added by AddAnnot.
Prototype:
Void SetStampParam(long source, long length, long nSourceType, LPCTSTR flag, short pageIndex)
Parameters:
source:

A pointer to a buffer specifying the source file for the stamp object.

length:

The buffer size.

nSourceType:

The type of the source file for the stamp object. 0 means using PDF source file

and non-zero means using image source file.
LPCTSTR flag:

The name of an icon to be used in displaying the stamp object.

short pageIndex:

The index of the page in the source file.

Return Value:
None
Note:
SetStampParam must be called before calling AddAnnot to create stamp.

7) ^RemoveAnnot
Delete a specific PDF annotation.
Prototype:
Long RemoveAnnot(LPDISPATCH AnnotToRemove)
Parameters:
AnnotToRemove :

A pointer to a PDF annotation.

Return Value:
Return 0 if successful, otherwise -1.

8) ^GetAnnotIndex
Get the index of a specific PDF annotation.
Prototype:
140 / 206

Programming Guide

Long GetAnnotIndex(LPDISPATCH Annot)
Parameters:
Annot :

A pointer to a PDF annotation.

Return Value:
Return the index of the specified PDF annotation if successful, otherwise -1.

9) ^GetAnnotsCount
Count the annotations.
Prototype:
long GetAnnotsCount()
Parameters:
None
Return Value:
Return the number of the annotations.

141 / 206

Programming Guide

^IPDFAnnot
IPDFAnnot helps to access and operate a specific PDF annotation object.

Properties
1) ^Thickness
Type:
short. Read and Write.
Description:
The border width of an annotation.
Note:
Thickness is for drawing annotations, measure tools and the annotations which have a border,
including Cloudy, Arrow, Line, Square, Rectangle, Circle, Ellipse, Polygon, Polyline, Pencil, Callout,
Textbox and Link.

2) ^BorderStyle
Type:
Short. Read and Write
Description:
The border style of an annotation.
Note:
An annotation may optionally be surrounded by a border when displayed or printed. If present, the
border is drawn completely inside the annotation rectangle.
Possible values are:
1

-

Solid

2

-

Dashed type 1

3

-

Dashed type 2

4

-

Dashed type 3

5

-

Dashed type 4

6

-

Dashed type 5

7

-

Dashed type 6

8

-

Cloudy type 1

9

-

Cloudy type 2

Solid type can be used by the following annotation types:
142 / 206

Programming Guide

"Rectangle", "Cloudy" , "Ellipse", "Circle", "Arrow" , "Polygon", "Line", "Square" , "PolyLine",
"Callout", "Textbox" ,"Image", "Movie", "Sound", "Rectangle Link", "Quadrilateral Link".
Dashed type can be used by the following annotation types:
"Rectangle", "Cloudy" , "Ellipse", "Circle", "Arrow" , "Polygon", "Line", "Square" , "PolyLine",
"Callout", "Textbox".
Cloudy type can be used by the following annotation types:
"Rectangle", "Cloudy", "Ellipse", "Circle", "Polygon", "Square" , "Callout", "Textbox"

3) ^Color
Type:
OLE_COLOR. Read and Write.
Description:
The background color of an annotation.
Note:
For all annotation types.
The following part is from PDF Reference document. For more details, please refer to the
document.

4) ^LineStartingStyle
Type:
Short. Read and Write.
Description:
The starting style of line.
Note:
For Line, Arrow, PolyLine and Callout.
There are 10 types:
0

-

None

1

-

Square

2

-

Round

3

-

Diamond
143 / 206

Programming Guide

4

-

Open

5

-

Close

6

-

Butt

7

-

Open(recersed)

8

-

Close(recersed)

9

-

Slash

5) ^LineEndingStyle
Type:
Short. Read and Write.
Description:
The end style of a line.
Note:
For Line, Arrow and PolyLine.
There are 10 types:
0

-

None

1

-

Square

2

-

Round

3

-

Diamond

4

-

Open

5

-

Close

6

-

Butt

7

-

Open(recersed)

8

-

Close(recersed)

9

-

Slash

6) ^FillColor
Type:
OLE_COLOR. Read and Write.
Description:
The fill color of a PDF annotation.
Note:
For the following annotation types: Cloudy, Arrow, Line, Square, Rectangle, Circle, Ellipse, Polygon
and Polyline.

7) ^Opacity
144 / 206

Programming Guide

Type:
Short. Read and Write.
Description:
The opacity of an annotation.
Note:
Can’t support the following annotation types: Link, Movie and Sound.

8) ^Author
Type:
BSTR. Read and Write.
Description:
The author of a PDF annotation.
Note:
Can’t support the following annotation types: Image, Movie, Sound and Link.

9) ^Subject
Type:
BSTR. Read and Write.
Description:
The subject of a PDF annotation.
Note:
Can’t support the following annotation types: Image, Movie, Sound and Link.

10) ^CreationDate
Type:
DATE. Read only.
Description
The date and time when the annotation was created.

11) ^ModificationDate
Type:
DATE. Read only.
Description:
The date and time when the annotation was most recently modified.

12) ^Locked

145 / 206

Programming Guide

Type:
Boolean. Read and Write.
Description:
A flag indicating whether an annotation is locked.
Note:
For all the annotation types.

13) ^Print
Type:
Boolean. Read and Write.
Description:
A flag indicating whether to print the annotation when the page is printed.
Note:
For all the annotation types.

14) ^ReadOnly
Type:
Boolean. Read and Write.
Description:
A flag indicating whether an annotation is read only.
Note:
Read Only means that the annotation is not allowed to interact with the user. Then the annotation
may be displayed or printed (depending on the settings of the NoView and Print flags) but should
not respond to mouse clicks or change its appearance in response to mouse motions.
Note:
For all the annotation types.

15) ^Description
Type:
BSTR. Read and Write.
Description:
The description of a PDF annotation.
Note:
For FileAttachment only.

146 / 206

Programming Guide

Methods
1) ^GetType
Get the type of a PDF annotation.
Prototype:
BSTR GetType()
Parameters:
None
Return Value:
Return the type of a PDF annotation.

2) ^GetSubType
Get the subtype of a PDF annotation.
Prototype:
BSTR GetSubType()
Parameters:
None
Return Value:
Return the Subtype of a PDF annotation.

3) ^GetContents
Get the content of a PDF annotation.
Prototype:
BSTR GetContents()
Parameters:
None
Return Value:
Return the contents of a PDF annotation.

4) ^SetContents
Set content for a PDF annotation.
Prototype:
long SetContents(LPCTSTR Contents)
Parameters:
Contents:

The content for a PDF annotation.

147 / 206

Programming Guide

Return Value:
Return 0 if successful, otherwise -1

5) ^IsPopupOpen
Check if the popup box is open.
Prototype:
BOOL IsPopupOpened()
Parameters:
None
Return Value:
Return TRUE if the popup box is open, otherwise FALSE.

6) ^SetPopupOpen
Set to open the popup box.
Prototype:
Long SetPopupOpened(BOOL Open)
Parameters:
Open:

A flag specifying whether to open the popup box.

Return Value:
Return 0 if successful, otherwise -1.

7) ^HasPopup
Check if the annotation has a popup box.
Prototype:
BOOL HasPopup()
Parameters:
None
Return Value:
Return TRUE if the annotation has a popup box, otherwise FALSE.

8) ^GetRect
Get the annotation rectangle, which defines the location of the annotation.
Prototype:
Long GetRect(float* pLeft, float* pTop, float* pRight, float* pBottom)
Parameters:
pLeft:

[out]The left coordinate of the annotation rectangle.
148 / 206

Programming Guide

pTop:

[out]The top coordinate of the annotation rectangle.

pRight:

[out]The right coordinate of the annotation rectangle.

pBottom:

[out]The bottom coordinate of the annotation rectangle.

Return Value:
Return 0 if successful, otherwise -1.

9) ^SetRect
Set the rectangle for a PDF annotation.
Prototype:
long SetRect(float Left, float Top, float Right, float Bottom)
Parameters:
Left:

The left coordinate of the annotation rectangle.

Top:

The top coordinate of the annotation rectangle.

Right:

The right coordinate of the annotation rectangle.

Bottom:

The bottom coordinate of the annotation rectangle.

Return Value:
Return 0 if successful, otherwise -1.

10) ^SetLinkGoToAction
Set a link annotation with GoTo action.
Prototype:
Void SetLinkGoToAction(long nPageIndex, float left, float top, float zoom)
Parameters
nPageIndex:

The index of a PDF page.

left:

The left coordinate.

top:

The top coordinate.

zoom:

The zoom factor for the page viewing.

Return Value:
None

11) ^SetLinkURLAction
Set a link annotation with URL action.
Prototype:
Void SetLinkURLAction(LPCTSTR sURL)
Parameters:
sURL:

The uniform resource identifier to go to when the action is executed.
149 / 206

Programming Guide

Return Value:
None

12) ^DoAction
Execute the action of a link annotation.
Prototype:
long DoAction()
Parameters:
None
Return Value:
Return 0 if successful, otherwise -1.

13) ^HasAction
Check if a link annotation contains an action.
Prototype:
BOOL HasAction()
Parameters:
None
Return Value:
Return TRUE if the link annotation contains an action, otherwise FALSE.

14) ^GetMarkedState
Get the mark state of a PDF annotation.
Prototype:
Long GetMarkedState()
Parameters
None
Return Value
Return a value specifying the mark state.
0

-

unmarked

1

-

marked

-1

-

error.

15) ^SetMarkedState
Set mark state of the annotation.
Prototype:
150 / 206

Programming Guide

long SetMarkedState(long state)
Parameters:
state:

Set the mark state of the annotation. It can be set to:
0

-

unmarked

1

-

marked

Return Value:
Return 0 if successful, otherwise -1.
Note:
Can’t support the following annotation types: Image, Movie, Sound and Link.

16) ^GetReviewState
Get the review state of a PDF annotation.
Prototype:
long GetReviewState()
Parameters:
None
Return Value:
Return a value indicating the review state, otherwise -1 indicating an error. Possible values are:
0

-

NULL

1

-

Accepted

2

-

Rejected

3

-

Canceled

4

-

Completed

17) ^SetReviewState
Set review state for a PDF annotation.
Prototype:
long SetReviewState(long state)
Parameters:
State:

A value specifying the review state of a PDF annotation. It can be set to:
0

-

NULL

1

-

Accepted

2

-

Rejected

3

-

Canceled

4

-

Completed
151 / 206

Programming Guide

Return Value:
Return 0 if successful, otherwise -1.
Note:
Can’t support the following annotation types: Image, Movie, Sound, and Link.

18) ^GetMigrationState
Get the migration state of a PDF annotation.
Prototype:
long GetMigrationState()
Parameters:
None
Return Value:
Return a value indicating the migration state of a PDF annotation. Possible values are:
0

-

NULL

1

-

Not Confirmed

2

-

Confirmed

-1

-

Others.

19) ^SetMigrationState
Set the migration state for a PDF annotation.
Prototype:
long SetMigrationState(long state)
Parameters:
state:

A value specifying the migration state of a PDF annotation. It can be set to:

0

-

NULL

1

-

Not Confirmed

2

-

Confirmed.

Return Value:
Return 0 if successful, otherwise -1.
Note:
Can’t support the following annotation types: Image, Movie, Sound and Link.

20) ^GetStartingPoint
Get the start point of the annotation.
Prototype:
long GetStartingPoint(float* PointX, float* PointY)
152 / 206

Programming Guide

Parameters:
PointX:

[out]X coordinate of the start point.

PointY:

[out]Y coordinate of the start point.

Return Value:
Return 0 if successful, otherwise -1.

21) ^SetStartingPoint
Set the start point for a PDF annotation.
Prototype:
long

SetStartingPoint(float PointX, float PointY)

Parameters:
PointX:

X coordinate of the start point.

PointY:

Y coordinate of the start point.

Return Value:
Return 0 if succeed, otherwise -1.
Note:
For Line and Arrow only.

22) ^GetEndingPoint
Get the end point for a PDF annotation.
Prototype:
Long GetEndingPoint(float* PointX, float* PointY)
Parameters:
PointX:

[out]X coordinate of the end point.

PointY:

[out]Y coordinate of the end point.

Return Value:
Return 0 if succeed, otherwise -1.
Note:
For Line and Arrow only.

23) ^SetEndingPoint
Set the end point for a PDF annotation.
Prototype:
long SetEndingPoint(float PointX, float PointY)
Parameters:
PointX:

X coordinate of the end point.
153 / 206

Programming Guide

PointY:

Y coordinate of the end point.

Return Value:
Return 0 if successful, otherwise -1.
Note:
For Line and Arrow only.

24) ^SetMediaPoster
Set a poster (image) for annotations that support posters, including Movie and Sound.
Prototype:
long SetMediaPoster(LPCTSTR ImageFilePath)
Parameters:
ImageFilePath:

File path of an image.

Return Value:
Return 0 if successful, otherwise -1.

25) ^SetMultimedia
Set the multimedia content for annotations that support multimedia.
Prototype:
Long SetMultimedia (LPCTSTR FilePath, LPCTSTR ContentType, BOOL Embed, BOOL bShowCtrlBar)
Parameters:
FilePath:

File path of a media.

ContentType:

The MIME type of the media data.

Embed

A value specifying whether to embed media to the PDF.

:

bShowCtrlBar:

A value specifying whether to show the control bar. .

Return Value:
Return 0 if successful, otherwise -1.

26) ^SetLinkQuadPoints
Set the appearance for Link annotation.
Prototype:
long SetLinkQuadPoints(long *PointsArray, long PointsCount)
Parameters:
PointsArray:

An array of points.

PointsCount:

The point number of the array. It must be 4.

Return Value:
Return 0 if successful, otherwise -1.
154 / 206

Programming Guide

27) ^SetPolygonVertices
Set the appearance for Polygon annotation.
Prototype:
long SetPolygonVertices(long* PointsArray, long PointsCount)
Parameters:
PointsArray:

An array of points.

PointsCount:

The point number of the array.

Return Value:
Return 0 if successful, otherwise -1.

28) ^SetPencilVertices
Set the appearance for Pencil annotation.
Prototype:
long SetPencilVertices(long* PointsArray, long PointsCount)
Parameters:
PointsArray:

An array of points.

PointCount:

The point number of the array.

Return Value:
Return 0 if successful, otherwise -1.

29) ^AttachFile
Set attachment for FileAttachment annotation.
Prototype:
Long AttachFile(LPCTSTR FileName)
Parameters:
FileName:

File path of an attachment for FileAttachment annotation.

Return Value:
Return 0 if successful, otherwise -1.

30) ^ GetReplyList
Get the replies of a PDF annotation.
Prototype:
IPDFAnnotReplyList* GetReplyList()
Return Value:
Return a pointer to an annotation’s reply list if successful, otherwise NULL.

155 / 206

Programming Guide

31) ^ UpdateAnnotReplies
Update annotation replies.
Prototype:
Void UpdateAnnotReplies(IPDFAnnotReplyList* pReplies)
Parameters:
pReplies:

The annotation’s replies to be updated.

Return Value:
None
Note:
Update all the replies for the annotation.

Events
1) ^OnAnnotCreated
Triggered once a PDF annotation has been created. This is completed by a third-party.
Prototype:
void OnAnnotCreated(long pageIndex, long annotIndex)
Parameters:
pageIndex:

The index of a PDF page.

annotIndex:

The index of a PDF annotation.

2) ^OnAnnotDeleted
Triggered once a PDF annotation has been deleted. It is completed by a third-party.
Prototype:
void OnAnnotDeleted(long pageIndex, long annotIndex)
Parameters:
pageIndex:

The index of a PDF page.

annotIndex:

The index of a PDF annotation.

3) ^OnAnnotModified
Triggered once a PDF annotation has been modified. It is completed by a third-party.
Prototype:
void OnAnnotModified(long pageIndex, long annotIndex)
Parameters:
pageIndex:

The index of a PDF page.

156 / 206

Programming Guide

annotIndex:

The index of a PDF annotation.

4) ^OnAnnotReplyCreated
Triggered once the reply of a PDF annotation has been created. This is completed by a third-party.
Prototype:
void OnAnnotReplyCreated(long pageIndex, long annotindex, lpctstr replyNM)
Parameters:
pageIndex:

The index of a PDF page.

annotIndex:

The index of a PDF annotation.

pReply

An annotation reply to be created.

:

5) ^OnAnnotReplyDeleted
Triggered once the reply of a PDF annotation has been deleted. This is completed by a third-party.
Prototype:
void OnAnnotReplyDeleted(long pageIndex, long annotindex, CPDFAnnotReply* pReply)
Parameters:
pageIndex:

The index of a PDF page.

annotIndex:

The index of a PDF annotation.

pReply:

A pointer to an annotation reply to be deleted.

6) ^OnAnnotReplyModified
Triggered once the reply of a PDF annotation has been modified. This is completed by a third-party.
Prototype:
Void OnAnnotReplyModified(long pageIndex, long annotindex, CPDFAnnotReply* pReply)
Parameters:
pageIndex:

The index of a PDF page.

annotIndex:

The index of a PDF annotation.

pReply

A pointer to an annotation reply to be modified.

:

7) ^OnAnnotRButtonDown
Triggered when to right click a PDF annotation.
Prototype:
voidOnAnnotRButtonDown(IPDFAnnot*Annot, float x, float y, BOOL* bDefault)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

Horizontal coordinate of the annotation (in PDF coordinate).
157 / 206

Programming Guide

y:

Vertical coordinate of the annotation (in PDF coordinate).

bDefault:

A flag specifying whether to use the default action for right-clicking.

Return Value:
None

8) ^OnAnnotRButtonUp
Triggered when to release right-clicking a PDF annotation.
Prototype:
void OnAnnotRButtonUp(IPDFAnnot* Annot, float x, float y, BOOL* bDefault)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

X coordinate of the annotation (in PDF coordinate).

y:

Y coordinate of the moved annotation (in PDF coordinate).

bDefault:

A flag specifying whether to use the default action for releasing right-clicking.

Return Value:
None

9) ^OnAnnotLButtonDbClick
Triggered when to double click a PDF annotation.
Prototype:
voidOnAnnotLButtonDbClick(IPDFAnnot* Annot, float x, float y, BOOL* bDefault)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

X coordinate of the annotation (in PDF coordinate).

y:

y coordinate of the moved annotation (in PDF coordinate).

bDefault:

A flag specifying whether to use the default action for double clicking.

Return Value:
None

10) ^OnAnnotLButtonDown
Triggered when to left click a PDF annotation.
Prototype:
void OnAnnotLButtonDown(IPDFAnnot* Annot, float x, float y, boolean* bDefault)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

Horizontal coordinate of the annotation (in PDF coordinate).
158 / 206

Programming Guide

y:

Vertical coordinate of the annotation (in PDF coordinate).

bDefault:

A flag specifying whether to use the default action for left-clicking.

Return Value:
None

11) ^OnAnnotLButtonUp
Triggered when to release left-clicking a PDF annotation.
Prototype:
void OnAnnotLButtonUp(IPDFAnnot* Annot, float x, float y, boolean* bDefault)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

X coordinate of the annotation (in PDF coordinate).

y:

Y coordinate of the moved annotation (in PDF coordinate).

bDefault:

A flag specifying whether to use the default action for releasing left-clicking.

Return Value:
None

12) ^OnAnnotPosChanged
Triggered once the annotation’s position has been changed.
Prototype:
void OnAnnotPosChanged(IPDFAnnot* Annot, float x, float y)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

X coordinate of the annotation (in PDF coordinate).

y:

Y coordinate of the moved annotation (in PDF coordinate).

Return Value:
None

13) ^OnAnnotMoving
Triggered when to move a PDF annotation.
Prototype:
Void OnAnnotMoving(IPDFAnnot* Annot, float x, float y, BOOL* bDefault)
Parameters:
Annot:

A pointer to a PDF annotation.

x:

Horizontal coordinate of the annotation (in PDF coordinate).

y:

Vertical coordinate of the moved annotation (in PDF coordinate).
159 / 206

Programming Guide

bDefault:

A flag specifying whether to use the default action for moving.

Return Value:
None

14) ^OnAnnotMouseEnter
Triggered when to move the mouse to a PDF annotation.
Prototype:
void OnAnnotMouseEnter(IPDFAnnot* Annot);
Parameters:
Annot:

A pointer to a PDF annotation.

Return Value:
None

15) ^OnAnnotMouseExit
Triggered when to move the mouse away from a PDF annotation.
Prototype:
Void OnAnnotMouseExit(IPDFAnnot* Annot);
Parameters:
Annot:

A pointer to a PDF annotation.

Return Value:
None

16) ^GetRectTop
Get the top coordinate of a PDF annotation object.
Prototype:
Float GetRectTop()
Parameters:
NULL
Return Value:
Return the top coordinate of a PDF annotation object.

17) ^GetRectLeft
Get the left coordinate of a PDF annotation object.
Prototype:
Float GetRectLeft()
Parameters:
160 / 206

Programming Guide

[None]
Return Value:
Returns the left coordinate of a PDF annotation object.

18) ^GetRectRight
Get the right coordinate of a PDF annotation object.
Prototype:
Float GetRectRight()
Parameters:
NULL
Return Value:
Return the right coordinate of a PDF annotation object.

19) ^GetRectBottom
Get the bottom coordinate of a PDF annotation object.
Prototype:
Float GetRectBottom()
Parameters:
[None]
Return Value:
Returns the bottom coordinate of a PDF annotation object.

161 / 206

Programming Guide

^ IPDFAnnotReplyList
IPDFAnnotReplyList helps to access and operate the reply list of a PDF annotation.

Methods
1) ^ GetCount
Count the replies of a PDF annotation.
Prototype:
long GetCount()
Return Value:
Return the total number of the annotation’s replies.

2) ^ GetItem
Get a specific reply for a PDF annotation.
Prototype:
CPDFAnnotReply GetItem(long nIndex)
Parameters:
nIndex:

The index of a annotation reply.

Return Value:
Return a pointer to a specified annotation reply if successful, otherwise NULL.

3) ^ Remove
Remove a specific reply for a PDF annotation.
Prototype:
void Remove(long nIndex)
Parameters:
nIndex:

The index of a annotation reply.

Return Value:
None

4) ^ RemoveAll
Remove all the replies of a PDF annotation.
Prototype:
void RemoveAll()
Parameters:
162 / 206

Programming Guide

None
Return Value:
None

5) ^ Add
Add a new reply for a PDF annotation.
Prototype:
Void Add(LPCTSTR Creator, LPCTSTR Content, DATE CreationDate, long nIndex)
Parameters:
Creator:

The creator of the new reply.

Content:

The contents of the new reply.

CreationDate:

The date and time when the new reply was created.

nIndex:

The index for the new reply. If it is -1, the new reply will be added at the end of

reply list. The value must be between -1 and [GetCount-1].
Return Value:
None

163 / 206

Programming Guide

^IPDFAnnotReply
IPDFAnnotReply helps to access and operate an annotation reply.

Methods
1) ^ GetCreator
Get the creator of an annotation reply.
Prototype:
BSTR GetCreator()
Parameters:
None
Return Value:
Return the creator of an annotation reply.

2) ^ SetCreator
Set the creator for an annotation reply.
Prototype:
Void SetCreator(LPCTSTR Creator)
Parameters:
Creator:

The creator for an annotation reply.

Return Value:
None

3) ^ GetContent
Get the contents of an annotation reply.
Prototype:
BSTR GetContent()
Parameters:
None
Return Value:
Return the contents of an annotation reply.

4) ^ SetContent
Set the content for the annotation reply.
Prototype:
164 / 206

Programming Guide

Void SetContent(LPCTSTR Content)
Parameters:
Content:

The contents for an annotation reply.

Return Value:
None

5) ^ GetChildren
Get a child reply of a PDF annotation.
Prototype:
IPDFAnnotReplyList* GetChildren()
Parameters:
None
Return Value:
Return a pointer to the child reply of a PDF annotation if successful, otherwise NULL.

6) ^ GetParent
Get a parent reply of a PDF annotation.
Prototype:
CPDFAnnotReply GetParent()
Parameters:
None
Return Value:
Return a pointer to the parent reply of a PDF annotation if successful, otherwise NULL.

7) ^ GetCreationDate
Get the date and time when the reply was created.
Prototype:
DATE GetCreationDate()
Parameters:
None
Return Value:
Return the date and time when the reply was created.

8) ^ SetCreationDate
Set the date and time when the reply was created.
Prototype:
165 / 206

Programming Guide

void SetCreationDate(DATE CreationDate)
Parameters:
CreationDate:

The date and time when the reply was created.

Return Value:
None

9) ^ SetReadonly
Set an annotation reply to Read Only.
Prototype:
void SetReadonly(BOOL bNewValue)
Parameters:
bNewValue:

A flag indicating whether to set it to Read Only.

TRUE

-

Set the annotation reply to Read Only.

FALSE

-

Set the annotation reply to Read&Write.

Return Value:
None

10) ^ GetReplyID
Get the ID of an annotation reply.
Prototype:
long GetReplyID()
Parameters:
None
Return Value:
Return an ID of the annotation reply.

166 / 206

Programming Guide

^IPDFormatTool
IPDFFormatTool helps format the text annotations in PDF.
ActiveX supports three types of free text annotations, including Typewriter, Callout and TextBox. And each
free text annotation maintains independent format data. Please note that the data of IPDFormatTool will be
updated once the free text annotation has been changed.

Method
1) ^SetFontName
Set font for the free text annotation.
Prototype:
Void SetFontName(BSTR FontName)
Parameters:
FontName:

A font name to be used to display the text of the free text annotation.

Return Value:
None

2) ^GetFontName
Get font name of the free text annotation.
Prototype:
BSTR GetFontName()
Parameters:
None
Return Value:
Return a font name.

3) ^SetFontSize
Set font size for the free text annotation.
Prototype:
Void SetFontSize(float FontSize)
Parameters:
FontSize:

Font size of the text in the free text annotation.

Return Value:
None

4) ^GetFontSize
167 / 206

Programming Guide

Get font size of the free text annotation.
Prototype:
float GetFontSize()
Parameters:
None
Return Value:
Return font size.

5) ^SetFontColor
Set text color for the free text annotation.
Prototype:
Void SetFontColor(OLE_COLOR FontColor)
Parameters:
FontColor:

The color to be used for the text of the free text annotation.

Return Value:
None

6) ^GetFontColor
Get the text color of the free text annotation.
Prototype:
OLE_COLOR GetFontColor()
Parameters:
None
Return Value:
Return the text color information.

7) ^SetBorderColor
Set the border color for the free text annotation.
Prototype:
Void SetBorderColor(OLE_COLOR color)
Parameters:
Color:

The color to be used for the border of the free text annotation.

Return Value:
None

8) ^GetBorderColor
168 / 206

Programming Guide

Get the border color of the free text annotation.
Prototype:
OLE_COLOR GetBorderColor()
Parameters:
None
Return Value:
Return the border color information.

9) ^SetFillColor
Set fill color for the free text annotation.
Prototype:
Void SetFillColor(OLE_COLOR FillColor)
Parameters:
FillColor:

The color to be used for filling the free text annotation.

Return Value:
None

10) ^GetFillColor
Get fill color of the free text annotation.
Prototype:
OLE_COLOR GetFillColor()
Parameters:
None
Return Value:
Return the fill color of the free text annotation.

11) ^SetFontBold
Set the font to use the bold style.
Prototype:
Void SetFontBold(BOOL FontBold)
Parameters:
FontBold:

A value specifying whether to use bold style.

Return Value:
None
Note:
The bold style can be used for the three fonts, including Courier, Helvetica and Times Roman.
169 / 206

Programming Guide

12) ^GetFontBold
Check if the font uses the bold style.
Prototype:
boolean GetFontBold()
Parameters:
None
Return Value:
Return TRUE if the bold style is used, otherwise FALSE.

13) ^GetFontBoldEnable
Check if the bold style can be used by the font of the free text annotation.
Prototype:
boolean GetFontBoldEnable()
Parameters:
None
Return Value:
Return TRUE if the bold style can be used, otherwise FALSE.

14) ^SetFontItalic
Set the font to use italic style.
Prototype:
void SetFontItalic(boolean FontItalic)
Parameters:
FontItalic:

A value specifying whether to set the font to use italic style.

TRUE

-

Use italic style.

FALSE

-

Not to use italic style.

Return Value:
None

15) ^GetFontItalic
Check if the font uses italic style.
Prototype:
boolean GetFontItalic()
Parameters:
None

170 / 206

Programming Guide

Return Value:
Return TRUE if the font uses italic style, otherwise FALSE.

16) ^GetFontItalicEnable
Check if the italic style can be used by the font of the free text annotation.
Prototype:
BOOL GetFontItalicEnable()
Parameters:
None
Return Value:
Return TRUE if the italic style can be used, otherwise FALSE.

17) ^SetAlign
Set text alignment for the free text annotation.
Prototype:
Void SetAlign(AlignStyle Style)
Parameters:
Style:

The text alignment. It can be set to:
ASLEFT

-

0,

ASMIDDLE

-

1,

ASRIGHT

-

2

Return Value:
None

18) ^GetAlign
Get the text alignment.
Prototype:
AlignStyle GetAlign()
Parameters:
None
Return Value:
Return the text alignment of the free text annotation. Possible values are:
ASLEFT

=

0,

ASMIDDLE

=

1,

ASRIGHT

=

2

171 / 206

Programming Guide

19) ^SetCharSpace
Set character spacing for the text of the free text annotation.
Prototype:
Void SetCharSpace(float CharSpace)
Parameters:
CharSpace:

Character spacing to be used for the text of the free text annotation

Return Value:
None

20) ^GetCharSpace
Get character space information of the free text annotation.
Prototype:
float GetCharSpace()
Parameters:
None
Return Value:
Return character space information of the free text annotation.

21) ^SetCharHorzScale
Set the horizontal scale of the characters of the free text annotation.
Prototype:
Void SetCharHorzScale(float CharHorzScale)
Parameters:
CharHorzScale:

The horizontal scale of the characters.

Return Value:
None

22) ^GetCharHorzScale
Get the horizontal scale of the characters of the free text annotation.
Prototype:
float GetCharHorzScale()
Parameters:
None
Return Value:
Return the horizontal scale of the characters of the free text annotation.

172 / 206

Programming Guide

&IPDFSignatureMgr
IPDFSignatureMgr help to operate and manage the signature fields in PDF.
A digital signature can be used to authenticate the identity of a user and the document’s contents.

Method
1) &Add
Add a new unsigned signature field.
Prototype:
IPDFSignatureField* Add(long pageIndex, float left, float top, float right, float bottom);
Parameters:
pageIndex:

The index of a PDF page where a new signature field will be added.

left:

X coordinate of start position in a signature field rectangle.

top:

Y coordinate of start position in a signature field rectangle.

right:

X coordinate of end position in a signature field rectangle.

bottom:

Y coordinate of end position in a signature field rectangle.

Return Value:
Return an IPDFSignatureField object which was newly created.
Note:
The origin of coordinate of the PDF is the left bottom corner.

2) &SignDocument
Sign the unsigned signature fields. It will close and reopen the PDF once the PDF has been signed
successfully.
Prototype:
boolean SignDocument(IPDFSignatureField* pSigField, BSTR signedFilePath, boolean bDefault)
Parameters:
pSigField:

An IPDFSignatureField object to be signed.

signedFilePath:

File path of a signed PDF which will be generated after signing.

bDefault:

A flag specifying whether to use the default signing method.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
To sign a PDF with the default signature handler, call SignDocument to complete signing PDF. Or
173 / 206

Programming Guide

please do as follows to sign a PDF with third-party handler.
1.

Get content stream of unsigned PDF by GetSourceBuffer and GetSourceBufferLen, then sign it

with a third-party handler. At last, call CreateSignedDoc to complete signing.
2.

The IPDFSignatureField object becomes invalid once signing successfully with a standard

signature handler. To continue to operate the object, you should reload it.

3) &Verify
Verify a signed signature field.
Prototype:
boolean Verify(IPDFSignatureField* pSigField, boolean bDefaultVerified)
Parameters:
pSigField:

A signature field object to be verified.

bDefaultVerified:

A flag specifying whether to verify the signature field with the default

algorithm. It uses the default algorithm when setting this to TRUE.
Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
1.

Call Verify to complete verifying when the signature uses the default handler.

2.

For the signature which uses a third-party signature handler, please do as follows.
Call GetSourceBuffer and GetSignedBuffer to get the signed PDF, and call SetVerifyResult to
deliver the verify result to ActiveX. At last get verify result by GetState(State) of
IPDFSignatureField.

4) &VerifyAll
Verify all signed signature fields.
Prototype:
boolean VerifyAll();
Parameters:
None
Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
Generally, it asks to verify all the signature fields when to open a PDF. It will not pop up the status
dialog by default then.

5) &GetCounts
174 / 206

Programming Guide

Count the signature fields in PDF.
Prototype:
long GetCounts();
Parameters:
None
Return Value:
Return the total number of the signature fields, including the signed fields and unsigned fields.

6) &Get
Get a signature field by index.
Prototype:
IPDFSignatureField* Get(long index)
Parameters:
index:

The index of a signature field.

Return Value:
Return an IPDFSignatureField object to the specified signature field.

7) &Clear
Clear the information of a signature field to get an unsigned signature field.
Prototype:
boolean Clear(IPDFSignatureField* pSigField)
Parameters:
pSigField:

An IPDFSignatureField object to be cleared.

Return Value:
Return TRUE if successful, otherwise FALSE.

8) &Remove
Remove an unsigned signature field (object).
Prototype:
boolean Remove(IPDFSignatureField* pSigField)
Parameters:
pSigField:

An IPDFSignatureField object to be removed.

Return Value:
Return TRUE if successful, otherwise FALSE.

9) &InitStraddleValue
175 / 206

Programming Guide

Add straddle sign.
Prototype:
BOOL InitStraddleValue(IPDFSignatureField* pSigField)
Parameters:
pSigField:

An IPDFSignatureField object.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
It requires the signing procedure, including a standard signature and a third-party signature, to
complete the straddle sign.

10) &CreatePatternSigField
Create signature template, which can be used for adding signature objects.
Prototype:
VARIANT_BOOL CreatePatternSigField(BSTR imageFilePath, VARIANT_BOOL bSetMask, OLE_COLOR
clrMask, FLOAT Height, FLOAT Width)
Parameters:
imageFilePath:

File path of an image for the signature template.

bSetMask:

A flag specifying whether to set mask.

clrMask:

The mask color.

Height:

The height.

Width:

The width.

Return Value:
Return an IPDFSignatureField object.

11) &SetCurPattenSigField
Set a signature template.
Prototype:
boolean SetCurPatternSigField(SHORT nIndex)
Parameters:
nIndex:

The index of a signature template.

Return Value:
Return TRUE if successful, otherwise FALSE.

12) &CountPatternSigFiel
Count the signature templates.
176 / 206

Programming Guide

Prototype:
SHORT CountPatternSigField(void)
Parameters:
None.
Return Value:
Return the total number of the signature templates.

177 / 206

Programming Guide

&IPDFSignatureField
IPDFSignatureField help access and operate a signature field.

Properties
1) &Reason
Type:
String
Description:
The reason for the signing.
Operation:
Read and Write

2) &Location
Type:
String
Description:
The location of a signature field.
Operation:
Read and Write

3) &Signer
Type:
String
Description:
The signer of the signature field.
Operation:
Read and Write

4) &Filter
Type:
String
Description:
The name of the preferred signature handler to use when validating this signature. The default is
Adobe.PPKLite.
178 / 206

Programming Guide

Operation:
Read and Write

5) &SubFilter
Type:
String
Description:
A name that describes the encoding of the signature value and key information in the signature
dictionary. An application may use any handler that supports this format to validate the signature.
The default is adbe.pkcs7.detached.

6) &State
Type:
Short
Description:
The state of a signature. If a signature field is signed by default, the state is decided by ActiveX. Or it
is defined and will be sent to ActiveX by SetVerifyResult.
0

-

Unknown signature

1

-

Not signed

2

-

Pass verification

3

-

Did not pass verification

Operation:
Read only

Methods
1) &SetAPOptions
Customize signature appearance.
Prototype:
boolean SetAPOptions(long opts);
Parameters:
Opts:

A value indicating the custom signature appearance. It can be set to:

Show All

-

511

Show Text

-

0x100L

Show Image

-

0x080L

Show Signer

-

0x040L
179 / 206

Programming Guide

Show Location

-

0x020L

Show DN

-

0x010L

Show Time

-

0x008L

Show Reason

-

0x004L

Show Tag

-

0x002L

Show FoxitFlag

-

0x001L

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
This should be done before calling SignDocument.

2) &SetAPText
Set text for the signature appearance.
Prototype:
boolean SetAPText(BSTR text);
Parameters:
text:

The text to be displayed.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
This should be done before calling SignDocument.

3) &SetAPImage
Set image for the signature appearance.
Prototype:
boolean SetAPImage(BSTR imageFilePath, boolean bSetMask, OLE_COLOR clrMask);
Parameters:
imageFilePath:

File path of an image to be displayed.

bSetMask:

A value specifying whether to set mask for background image. Please note

that the background image must be pure.
clrMask:

The mask color.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
This should be done before calling SignDocument.
180 / 206

Programming Guide

4) &SetAPImageData
Set image for the signature appearance.
Prototype:
boolean SetAPImageData(VARIANT imageDataBuffer, BSTR imageType, long dataSize, boolean
bSetMask, OLE_COLOR clrMask)
Parameters:
imageDataBuffer:

Pointer to a buffer specifying the image data.

imageType:

The image type.

dataSize:

The size of the image data.

bSetMask:

A flag specifying whether to set mask.

clrMask:

The mask color.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The pCertData pointer is inpbVal field of VARIANT in VC, and use array as parameters in JS.

5) &IsSigned
Check if the signature field is signed.
Prototype:
boolean IsSigned();
Return Value:
Return TRUE if the signature field is signed, otherwise FALSE.

6) &SetSignerDN
Set a distinguished name for the certificate.
Prototype:
Boolean SetSignerDN(BSTR dn);
Parameters:
dn :

A distinguished name for the certificate.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
This should be done before calling SignDocument.

7) &SetStatusImage

181 / 206

Programming Guide

Set status image.
Prototype:
boolean SetStatusImage(BSTR imagePath, short sState, short sMode, boolean bRotate, boolean
bSetMask, OLE_COLOR clrMask);
Parameters:
imagePath:

File path of an image to be used as the state icon.

sState:

The state of the signature. It decided by State.

sMode:

A value specifying the image display mode. It can be set to:

bRotate:

0

-

Displaying the image in top left corner. (Default)

1

-

The image covers the whole signature field.

A value specifying whether to rotate image when to the signature. It does not

rotate the image by default.
bSetMask:

A value specifying whether to set mask for the background image. Please note

that the background image must be pure.
clrMask:

The mask color.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The image can’t be saved into PDF. You can only set the image before the status of Signature is
changed.

8) &SetStatusImageData
Prototype:
boolean SetStatusImageData(VARIANT imageDataBuffer, BSTR imageType, long dataSize, short
sState, short sMode, boolean bRotate, boolean bSetMask, OLE_COLOR clrMask)
Parameters:
imageDataBuffer: Pointer to a buffer specifying the image data to be used as the state icon.
imageType:

The state of the signature. It supports bmp, jpg, png and gif.

dataSize:

The size of the image data.

sState:

The state of a signature. It decided by State.

sMode

bRotate:

:

A value specifying the image display mode. It can be set to:
0

-

Displaying the image in top left corner. (Default)

1

-

The image covers the whole signature field.

A value specifying whether to rotate image when to rotate the signature. It does

not rotate the image by default.
182 / 206

Programming Guide

bSetMask:

A value specifying whether to set mask for the background image. Please note

that the background image must be pure.
clrMask:

The mask color.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The imageDataBuffer pointer is inpbVal field of VARIANT in VC, and use array as parameters in JS.

9) &GetPageIndex
Get the index of the page where the signature field is.
Prototype:
Long GetPageIndex();
Parameters:
None
Parameters:
None
Return Value:
Return the index of the page.

10) &GetSourceBuffer
Get the source PDF to be signed or verified.
Prototype:
VARIANT GetSourceBuffer();
Parameters:
None
Return Value:
Return a buffer specifying the source content stream.
Note:
1.

Call SignDocument or Verify to get TRUE first, and then call this interface.

2.

The content stream is saved in parray field of VARIVANT. Please get the content stream pointer
with parray->pvData in VC. And get content stream array with getArray in JS.

11) &GetSourceBufferLen
Get the length of the source PDF to be signed or verified.
Prototype:
long GetSourceBufferLen();
183 / 206

Programming Guide

Return Value:
Return the length of the source PDF to be signed or verified.
Note:
Call SignDocument or Verify and get TRUE first, and then call this interface.

12) &GetSignedBuffer
Get the signed PDF content.
Prototype:
VARIANT GetSignedBuffer();
Return Value:
Return a buffer specifying the signed PDF content stream.
Note:
1.

Call SignDocument or Verify to get TRUE first, and then call this interface.

2.

The content stream is saved in parray field of VARIVANT. Please get the content stream pointer
with parray->pvData in VC. And get content stream array with getArray in JS.

13) &GetSignedBufferLen
Get the length of the signed PDF content.
Prototype:
long GetSignedBufferLen();
Return Value:
Return the length of the signed PDF content.
Note:
Call SignDocument or Verify to get TRUE first, and then call this interface.

14) &CreateSignedDoc
Create a signed PDF which is signed by a third-party handler. The path is in SignDocument.
Prototype:
boolean CreateSignedDoc(VARIANT signedBuf, long length);
Parameters:
signedBuf:

Pointer to the buffer specifying the signed PDF data.

length:

The length of the signed PDF data.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
Call SignDocument to set file path for the signed PDF, without using the default signature handler.
184 / 206

Programming Guide

And then call this function.
The signedBuf pointer is inpbVal field of VARIANT in VC, and use array as parameters in JS.
After signing successfully, the PDF document will be opened again. The IPDFSignatureField object
will become invalid and then it needs to be reloaded.

15) &SetVerifyResult
Customize the result for verifying a signature by a third-party signature handler.
Prototype:
boolean SetVerifyResult(short sResult)
Parameters:
sResult:

A value indicating the verifying result.

0

-

Unknown signature

1

-

Not signed

2

-

Pass verification

3

-

Did not pass verification

Return Value:
Return TRUE if successful, otherwise FALSE.

16) &SetCertPath
Set certificate.
Prototype:
boolean SetCertPath(BSTR certPath, BSTR pfxPsw);
Parameters:
certPath:

File path of a certificate.

pfxPsw:

Password for accessing the certificate.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The pCertData pointer is inpbVal field of VARIANT in VC, and use array as parameters in JS.

17) &SetCertData
Set certification Data.
Prototype:
boolean SetCertData(VARIANT pCertData, long length, BSTR pfxPsw);
Parameters:
pCertData:

The certificate data
185 / 206

Programming Guide

length:
pfxPsw

The length of the certificate data.
:

Password for accessing the certificate.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The pCertData pointer is inpbVal field of VARIANT in VC, and use array as parameters in JS.

18) &SetCertContext
Set certificate context.
Prototype:
boolean SetCertContext(long pCertContext)
Parameters:
pCertContext:

The type of certificate context.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
The certificate will take effect when to call any of the three functions, including &SetCertPath,
&SetCertData and &SetCertContext.

19) &TurnGray
Turn the signature appearance to gray.
Prototype:
boolean TurnGray(boolean bGray,boolean bCanModify);
Parameters:
bGray:

A value specifying whether to turn the appearance to gray.

bCanModify:

A value specifying whether the signature can be modified

Return Value:
Return TRUE if successful, otherwise FALSE.

20) &TurnBlur
Blur the signature field.
Prototype:
boolean TurnBlur(boolean bBlur);
Parameters:
bBlur:

A value specifying whether to blur the signature field.

Return Value:
186 / 206

Programming Guide

Return TRUE if successful, otherwise FALSE.
Note:
This only changes the signature displaying instead of the PDF content.

21) &SetVisible
Set signature to be visible.
Prototype:
boolean SetVisible(boolean bVisible)
Parameters:
bVisible:

A value specifying whether the signature is visible.

Return Value:
Return TRUE if successful, otherwise FALSE.

22) &GrayPrint
Turn the signature appearance to gray for PDF printing.
Prototype:
boolean GrayPrint(boolean bGrayPrint);
Parameters:
bGrayPrint:

A value specifying whether to turn the appearance to gray for PDF printing.

Return Value:
Return TRUE if successful, otherwise FALSE.
Note:
This only changes the signature displaying instead of the PDF content.

23) &SetStraddleType
Set the type of the straddle sign.
Prototype:
BOOL SetStraddleType(short nType)
Parameters:
nType:

The type of the straddle sign. It can be set to:

0

-

Middle Straddle Sign

1

-

Left Straddle Sign

2

-

Right Straddle Sign

3

-

Top Straddle Sign

4

-

Bottom Straddle Sign

Return Value:
187 / 206

Programming Guide

Return TRUE if successful, otherwise FALSE.

24) &SetStraddlePos
Set the position of straddle sign.
Prototype:
BOOL SetStraddlePos(float fPos)
Parameters:
fPos:

The position of the straddle sign.
For Top Straddle Sign and Bottom Straddle Sign, the value will be the horizontal middle point of
the signature field.
For Right Straddle Sign and Left Straddle Sign, the value will be the vertical middle point of the
signature field.

Return Value:
Return TRUE if successful, otherwise FALSE.

25) &SetStraddleBitmap
Set image for straddle sign appearance.
Prototype:
boolean SetStraddleBitmap(short nState, BSTR sFilePath)
Parameters:
nState:

The state of straddle sign. It can be set to:

0

-

Unknown

1

-

Unsigned

2

-

Valid

3

-

Invalid

sFilePath:

File path of an image for straddle sign appearance.

Return Value:
Return TRUE if successful, otherwise FALSE.

26) &SetStraddlePages
Set the page range where the straddle sign will be placed.
Prototype:
BOOL

SetStraddlePages(BSTR sRange)

Parameters:
sRange:

The page range where the straddle sign will be placed. The value must be in format

as “0-10”, “0-2,3-10”.
188 / 206

Programming Guide

Return Value:
Return TRUE if successful, otherwise FALSE.

27) &SetStraddleFirstPagePercent
Set the percent of the straddle sign to be divided and displayed in the first signed PDF page.
Prototype:
BOOL

SetStraddleFirstPagePercent(float fPercent)

Parameters:
fPercent:

The percent of a straddle sign for the first signed page. It can be from 0 to 1.

Return Value:
Return TRUE if successful, otherwise FALSE.

28) &SetSigFieldAlpha
Set the transparency of the signature image.
Prototype:
SetSigFieldAlpha(short alpha)
Parameters:
alpha:

A value specifying the image transparency. It can be from 0 to 255.

Return Value:
Return TRUE if successful, otherwise FALSE.

29) &Refresh
Refresh the signature field.
Prototype:
void Refresh()
Parameters:
NULL
Return Value:
NULL
Note:
This could be used only when a signature object is uncompleted.

30) &SetDefaultContentsLength
Set length of the content to be encrypted when using a third-party encryption algorithm.
Prototype:
Bool SetDefaultContentsLength(long length);
189 / 206

Programming Guide

Parameters:
length:

The length of the content to be encrypted. The value can be half of the content

length at most.
Return Value:
Return TRUE if successful, otherwise FALSE.

Events
1) &OnSetSignatureInfo
Triggered when to click or right click an unsigned signature. It asks to set the properties for
IPDFSignatureField object to complete the signing.
Prototype:
void OnSetSignatureInfo(IPDFSignatureField* pSignature)
Parameters:
pSignature:

The signature field object which is clicked or right clicked.

2) &OnSigning
Triggered when a signature field is unsigned. The signature field will be signed by the default or a
third-party method.
Prototype:
void OnSigning(IPDFSignatureField* pSignature)
Parameters:
pSignature:

A signature field to be signed.

3) &OnVerifying
Triggered when to click a signed signature field or right click to select Verify option. It will be
verified by default or by third-party handler.
Prototype:
void OnVerifying(IPDFSignatureField* pSignature);
Parameters:
pSignature:

A signature field to be verified.

4) &OnShowSignaturePropertyDialog
Triggered when to right click a signature field and then choose Properties option to check the
properties information.
Prototype:
190 / 206

Programming Guide

Void OnShowSignaturePropertyDialog (IPDFSignatureField*pSignature, boolean* bShowProperty)
Parameters:
pSignature:

The signature field to be right-clicked.

bShowProperty:

A value specifying whether to pop up Properties dialog for the signature

field.

191 / 206

Programming Guide

*IPDFTextDoc
Methods
1) *ReleasePDFTextDoc
Release all resources allocated for a PDF text document.
Prototype:
void ReleasePDFTextDoc()
Return Value:
None

2) *LoadPDFTextPage
Prepare information about all the characters in a PDF page.
Prototype:
IPDFTextPage*LoadPDFTextPage(long pageIndex)
Parameters:
pageIndex:

A zero-based index of a PDF page.

Return Value:
Return an IPDFTextPage object.

192 / 206

Programming Guide

*IPDFTextPage
Methods
1) *ReleasePDFTextPage
Release all resources allocated for a PDF text page.
Prototype:
void ReleasePDFTextPage()
Return Value:
None

2) *CountChars
Count the characters in a page.
Prototype:
long CountChars()
Return Value:
Return the total number of the characters in the page.

3) *GetChars
Get text content from a PDF page by specifying the character range.
Prototype:
BSTR GetChars(long start, long count);
Parameters:
start:

The index of the first character in text content to be got. The value is from 0 to

(CountChars - 1).
count:

The total number of characters to be got. If -1, it will get all the characters in the

PDF page. And if count > (CountChars - start), all the rest characters will be got.
Return Value:
Return a text string.

4) *GetCharInfo
Get information of a specified character.
Prototype:
IPDFCharInfo*

GetCharInfo(long charIndex);

Parameters:
193 / 206

Programming Guide

charIndex:

The index of a character. The value is from 0 to (CountChars – 1).

Return Value:
Return an IPDFCharInfo object.

5) *GetCharIndexAtPos
Get index of a character at or nearby a specified position on the page.
Prototype:
long

GetCharIndexAtPos (float x, float y, float tolerance);

Parameters:
x:

X coordinate in device coordinate.

y:

Y coordinate in device coordinate.

tolerance:

Tolerance value for character hit detection and it is measured in Point. This

should not be a negative.
Return Value:
Return the index of a character.

6) *GetNextCharIndexByDirection
Get the index of next character in specified direction.
Prototype:
long GetNextCharIndexByDirection(long curIndex, short direction);
Parameters:
curIndex:

The index of current character.

direction:

A value indicates the direction to get next character. It can be se to: -1, 1,

-2 and 2.
-1

-

Text direction: left.

1

-

Text direction: right.

-2

-

Text direction: up.

2

-

Text direction: down.

Return Value:
Return an index of the next character. The three special values, including -1, -2 and -3, point out the
errors.
-1

-

Reach the beginning of the page.

-2

-

Reach the end of the page.

-3

-

Other errors.

7) *SelectByRange
194 / 206

Programming Guide

Get a text selection object by specifying character range.
Prototype:
IPDFTextSelection* SelectByRange (long start, long count);
Parameters:
start:

The index of the first character to be selected.

count:

The count of characters to be selected. If -1, it will select all the characters in

the PDF page.
Return Value:
Return an IPDFTextSelection object.

8) *SelectByRectangle
Get a text selection object in a specified rectangle.
Prototype:
IPDFTextSelection* SelectByRectangle (long left, long top, long right, long bottom);
Parameters:
left:

The left coordinate of a rectangle.

top:

The top coordinate of a rectangle.

right:

The right coordinate of a rectangle.

bottom :

The bottom coordinate of a rectangle.

Return Value:
Return an IPDFTextSelection object.

9) *StartSearch
Start a PDF text search.
Prototype:
IPDFTextSearch* StartSearch(BSTR searchPattern, long flags, long startIndex );
Parameters:
searchPattern:

A keyword for the text search.

flags:

The settings for the search. It can be set to 0, one or combination of 1, 2

and 4.

startIndex:

0

-

Not any settings.

1

-

Match case

2

-

Match whole word

4

-

Consecutive

The index of the first character to be searched and the value is from 0. If -1,
195 / 206

Programming Guide

the search will be from the end of the page.
Return Value:
Return an IPDFTextSearch object if successful.

10) *ExtractLinks
Get a URL formatted link object from the PDF text page.
Prototype:
IPDFTextLink* ExtractLinks ();
Return Value:
Return an IPDFTextLink object

11) *ExtractPageText
Get the text content from a PDF text page.
Prototype:
BSTR ExtractPageText ();
Return Value:
Return the text content of a PDF text page.

196 / 206

Programming Guide

*IPDFCharInfo
Properties
1) *state
Type:
short. Read only.
Description:
State of the character. Possible values are:
1

-

Normal character.

2

-

Character is generated by Foxit, such as space character.

3

-

Character doesn't have its own unicode value.

2) *fontSize
Type:
float. Read only.
Description:
The original font size of the character and it is measured in Point (1/72 Inch).

3) *originX
Type:
float. Read only.
Description:
X position of the character and it is based on PDF Page Coordinate. -1 means error.

4) *originY
Type:
float. Read only.
Description:
Y position of the character and and it is based on PDF Page Coordinate.

5) *fontName
Type:
BSTR. Read only.
Description:
The font name.
197 / 206

Programming Guide

6) *fontAscent
Type:
long. Read only.
Description:
An ascent value of the font.

7) *fontDescent
Type:
long. Read only.
Description:
A descent value of the font.

8) *displayFontSize
Type:
float
Description:
Fontsize for text displaying in viewer.

Methods
1) *GetBBox
Get 4 positions (left, bottom, right, top) of character's bounding box.
Prototype:
VARIANT GetBBox();
Parameters:
None
Return Value:
Return an array including 4 float members, which represent a rectangle.
0

-

left

1

-

top

2

-

right

3

-

bottom

2) *GetMatrix
Get the matrix of a character.
Prototype:
198 / 206

Programming Guide

VARIANT GetMatrix();
Parameters:
None
Return Value:
Return an array including 6 float members, which represent a matrix.
0

-

a

1

-

b

2

-

c

3

-

d

4

-

e

5

-

f

199 / 206

Programming Guide

*IPDFTextSearch
Methods
1) *ReleaseTextSearch
Release all resources allocated for a PDF text search module.
Prototype:
void ReleaseTextSearch()
Parameters:
None
Return Value:
None

2) *FindNext
Search the text from start to end of the page.
Prototype:
BOOL FindNext ()
Parameters:
None
Return Value:
Return a value indicating whether a match is found.

3) *FindPrev
Search the text from end to start of the page.
Prototype:
BOOL FindPrev()
Parameters:
None
Return Value:
Return a value indicating whether a match is found.

4) *GetSelection
Get a text selection from a text search when a match is found.
Prototype:
IPDFTextSelection* GetSelection();
200 / 206

Programming Guide

Parameters:
None
Return Value:
Return a text selection object.

201 / 206

Programming Guide

*IPDFTextSelection
Methods
1) *ReleaseTextSelection
Release all resources allocated for a PDF text selection object.
Prototype:
void ReleaseTextSelection()
Parameters:
None
Return Value:
None

2) *GetBBox
Get bounding box (a rectangle area) of a PDF text selection.
Prototype:
VARIANT GetBBox()
Parameters:
None
Return Value:
An array contains four float members, which represent a rectangle.
0

-

left

1

-

top

2

-

right

3

-

bottom

3) *GetBBoxEx
Get bounding box (a rectangle area) of a PDF text selection. This can be called by Javascript.
Prototype:
VARIANT GetBBoxEx();
Parameters:
None
Return Value:
Return an array including 4 float members, which represent a rectangle.
0

-

left
202 / 206

Programming Guide

1

-

top

2

-

right

3

-

bottom

4) *GetChars
Extract all the text from a PDF text selection.
Prototype:
BSTR GetChars()
Return Value:
Return the text string.

5) *CountPieces
Count the rectangular areas of segments in a PDF text selected area.
Prototype:
long CountPieces ()
Return Value:
Return the total number of segments in a PDF text selected area.

6) *GetPieceRect
Get rectangular area of a specific segment, based on the result returned by function CountPieces.
Prototype:
VARIANT GetPieceRect(long pieceIndex);
Parameters:
pieceIndex

-

The index of a segment to be got.

Return Value:
Return an array including 4 float members, which represent a rectangle.
0

-

left

1

-

top

2

-

right

3

-

bottom

7) *GetPieceCharStart
Get the index of the first character in a specified segment.
Prototype:
long GetPieceCharStart(long pieceIndex);
Parameters:
203 / 206

Programming Guide

pieceIndex

-

The index of a segment to be got.

Return Value:
Return the index of the first character in a segment. -1 means error.

8) *GetPieceCharCount
Count the characters of a specified segment.
Prototype:
long GetPieceCharCount(long pieceIndex);
Parameters:
pieceIndex

-

The index of a segment to be got.

Return Value:
Return the total number of characters in the specified segment. -1 means error.

204 / 206

Programming Guide

*IPDFTextLink
Methods
1) *CountLinks
Get count of the URL formatted texts in a PDF page.
Prototype:
long CountLinks()
Parameters:
None
Return Value:
Return the total number of the URL formatted texts. -1 means error.

2) *GetLink
Get the URL associated with a specified hyperlink.
Prototype:
BSTR GetLink (long linkIndex);
Parameters:
linkIndex:

The index of a hyperlink.

Return Value:
Return an URL.

3) *GetSelection
Get a PDF text selection object from a specified hyperlink.
Prototype:
IPDFTextSelection* GetSelection (long linkIndex);
Parameters:
linkIndex:

The index of a hyperlink.

Return Value:
Return a PDF text selection object.

205 / 206

Programming Guide

Contact Us
Feel free to contact us should you need any information or have any problems with our products. We
are always here, ready to serve you better.

•

Office Address:
Foxit Software Incorporated
41841 Albrae Street
Fremont CA 94538
USA

•

Sales:
1-866-680-3668 (24/7)

•

Support:
1-866-MYFOXIT or 1-866-693-6948 (24/7)

•

Fax:
1-510-405-9288

•

Website:
www.foxitsoftware.com

•

E-mail:
Sales and Information - sales@foxitsoftware.com
Technical Support - Input a trouble ticket online
Marketing Service - marketing@foxitsoftware.com

206 / 206



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.7
Linearized                      : No
Page Count                      : 206
Language                        : zh-CN
Tagged PDF                      : Yes
Creator                         : Foxit Software Inc.
Title                           : 
Description                     : 
Subject                         : 
Creator Tool                    : Foxit Software Inc.
Producer                        : Foxit PDF Creator Version 8.3.0.0331
Keywords                        : 
Company                         : Microsoft
Create Date                     : 2017:11:08 14:28:44+08:00
Modify Date                     : 2017:11:08 14:28:44+08:00
Schemas Namespace URI           : http://www.foxitsoftware.com/connectedPDF/1.0/
Schemas Prefix                  : cPDF
Schemas Schema                  : ConnectedPDF Schema
Schemas Property Name           : cDocID
Schemas Property Value Type     : Text
Schemas Property Category       : external
Schemas Property Description    : The cDocID
C Doc ID                        : https://cws.connectedpdf.com/cDocID/DDEB78E2722274FA8E1C77F6377B5B7D~127A308C3C6E11E7AC88C0862AB5ECD24230D856BE4C43C9-5045614A78F27DB5-790E215E14ABF3EEDAC28600
C Version ID                    : https://cws.connectedpdf.com/cVersionID/6698E2CD49CEAD69CED7E0F4F21B6664~1227C960C44E11E7ACC3375D492A7783D8C9445A74A74F37-62DC208102FAB8E2-AFF06B0669EFAABF6F318600
Author                          : Foxit Software Inc.
EXIF Metadata provided by EXIF.tools

Navigation menu