Class: PDFDoc

PDFNet. PDFDoc


new PDFDoc()

PDFDoc is a high-level class describing a single PDF (Portable Document Format) document. Most applications using PDFNet will use this class to open existing PDF documents, or to create new PDF documents from scratch.

The class offers a number of entry points into the document. For example,

  • To access pages use pdfdoc.GetPageIterator() or pdfdoc.PageFind(page_num).
  • To access form fields use pdfdoc.GetFieldIterator() or pdfdoc.FieldFind(name).
  • To access document's meta-data use pdfdoc.GetDocInfo().
  • To access the outline tree use pdfdoc.GetFirstBookmark().
  • To access low-level Document Catalog use pdfdoc.GetRoot(). ...

The class also offers utility methods to slit and merge PDF pages, to create new pages, to flatten forms, to change security settings, etc.

Methods


<static> create()

Default constructor. Creates an empty new document.

Returns:

A promise that resolves to an object of type: "PDFDoc"

Type
PDFNet.PDFDoc

<static> createFromBuffer(buf)

Open a SDF/Cos document from a memory buffer.

Parameters:
Name Type Description
buf Array

a memory buffer containing the serialized document

Returns:

A promise that resolves to an object of type: "PDFDoc"

Type
PDFNet.PDFDoc

<static> createFromFilter(stream)

Parameters:
Name Type Description
stream PDFNet.Filter
Returns:

A promise that resolves to an object of type: "PDFDoc"

Type
PDFNet.PDFDoc

<static> createFromLayoutEls(buf)

Parameters:
Name Type Description
buf Array
Returns:

A promise that resolves to an object of type: "PDFDoc"

Type
PDFNet.PDFDoc

<static> createFromURL(url, options)

Open a SDF/Cos document from a url. This function will fully download the file as a memory buffer and create a PDFDoc object.

Parameters:
Name Type Description
url

The url from which to download the file

options object

Additional options

Properties
Name Type Description
withCredentials boolean

Whether to set the withCredentials property on the XMLHttpRequest


addFileAttachment(file_key, embedded_file)

Associates a file attachment with the document.

The file attachment will be displayed in the user interface of a viewer application (in Acrobat this is File Attachment tab). The function differs from
Annot.CreateFileAttachment() because it associates the attachment with the whole document instead of an annotation on a specific page.

Parameters:
Name Type Description
file_key string

A key/name under which the attachment will be stored.

embedded_file PDFNet.FileSpec

Embedded file stream


addHighlights(hilite)

addHighlights is used to highlight text in a document using 'Adobe's Highlight File Format' (Technical Note #5172 ). The method will parse the character offset data and modify the current document by adding new highlight annotations.

Parameters:
Name Type Description
hilite string

a string representing the filename for the highlight file or or a data buffer containing XML data.


addRootBookmark(root_bookmark)

Adds/links the specified Bookmark to the root level of document's outline tree.

Parameters:
Name Type Description
root_bookmark PDFNet.Bookmark

Bookmark to Add/link


addSignatureHandler(signature_handler)

Adds a signature handler to the signature manager.

Parameters:
Name Type Description
signature_handler PDFNet.SignatureHandler

The signature handler instance to add to the signature manager.

Returns:

A promise that resolves to a unique ID representing the SignatureHandler within the SignatureManager.

Type
number

addStdSignatureHandlerFromBuffer(pkcs12_buffer, pkcs12_pass)

Parameters:
Name Type Description
pkcs12_buffer Array
pkcs12_pass number
Returns:

A promise that resolves to an unknown type


addStdSignatureHandlerFromURL(pkcs12_file, pkcs12_pass)

Adds a standard (built-in) signature handler to the signature manager. This method will use cryptographic algorithm based on Adobe.PPKLite/adbe.pkcs7.detached filter to sign a PDF.

Parameters:
Name Type Description
pkcs12_file string

The private key certificate store to use.

pkcs12_pass string

The passphrase for the provided private key.

Returns:

A promise that resolves to a unique ID representing the SignatureHandler within the SignatureManager.

Type
number

appendVisualDiff(p1, p2, opts)

Add a page representing the difference between two pdf pages to this document.

Parameters:
Name Type Description
p1 PDFNet.Page

one of the two pages for comparing

p2 PDFNet.Page

the other page for comparing

opts PDFNet.optionbase

options for comparison results. This parameter is supposed to be an object, which can be generated by 'PDFNet.createDiffOptions()'. If this parameter is set to null, default settings will be used.


createIndirectArray()

This method creates an SDF/Cos indirect array object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Returns:

A promise that resolves to returns a new indirect array object.

Type
PDFNet.Obj

createIndirectBool(value)

This method creates an SDF/Cos indirect boolean object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Parameters:
Name Type Description
value boolean

the value with which to create the boolean object.

Returns:

A promise that resolves to returns a new indirect boolean object.

Type
PDFNet.Obj

createIndirectDict()

This method creates an SDF/Cos indirect dict object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Returns:

A promise that resolves to returns a new indirect dict object.

Type
PDFNet.Obj

createIndirectName(name)

Parameters:
Name Type Description
name string
Returns:

A promise that resolves to an object of type: "Obj"

Type
PDFNet.Obj

createIndirectNull()

This method creates an SDF/Cos indirect null object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Returns:

A promise that resolves to returns a new indirect null object.

Type
PDFNet.Obj

createIndirectNumber(value)

This method creates an SDF/Cos indirect number object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Parameters:
Name Type Description
value number

the value with which to create the number object.

Returns:

A promise that resolves to returns a new indirect number object.

Type
PDFNet.Obj

createIndirectStream(data, data_size, filter_chain)

Parameters:
Name Type Description
data string
data_size number
filter_chain PDFNet.Filter
Returns:

A promise that resolves to an object of type: "Obj"

Type
PDFNet.Obj

createIndirectStreamFromFilter(data, filter_chain)

Parameters:
Name Type Description
data PDFNet.FilterReader
filter_chain PDFNet.Filter
Returns:

A promise that resolves to an object of type: "Obj"

Type
PDFNet.Obj

createIndirectString(value, buf_size)

This method creates an SDF/Cos indirect string object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Parameters:
Name Type Description
value number

Unsigned char pointer with which to create the string object.

buf_size number

length of string.

Returns:

A promise that resolves to returns a new indirect string object.

Type
PDFNet.Obj

createIndirectStringFromUString(str)

This method creates an SDF/Cos indirect string object

Unlike direct objects, indirect objects can be referenced by more than one object (i.e. indirect objects can be shared).

Parameters:
Name Type Description
str string

reference to string with which to create the string object.

Returns:

A promise that resolves to returns a new indirect string object.

Type
PDFNet.Obj

createShallowCopy()

Copy Constructor

Returns:

A promise that resolves to an object of type: "PDFDoc"

Type
PDFNet.PDFDoc

destroy()

Destructor


fdfExtract(flag)

Extract form data and/or annotations to FDF

Parameters:
Name Type Description
flag number/enum
PDFNet.PDFDoc.ExtractFlag = {
	e_forms_only : 0
	e_annots_only : 1
	e_both : 2
}

specifies extract options

Returns:

A promise that resolves to a pointer to the newly created FDF file with an interactive data.

Type
PDFNet.FDFDoc

fdfExtractAnnots(annot_buf)

Parameters:
Name Type Description
annot_buf Array
Returns:

A promise that resolves to an object of type: "FDFDoc"

Type
PDFNet.FDFDoc

fdfExtractCommand(annot_added_buf, annot_modified_buf, annot_deleted_buf)

Parameters:
Name Type Description
annot_added_buf Array
annot_modified_buf Array
annot_deleted_buf Array
Returns:

A promise that resolves to an object of type: "FDFDoc"

Type
PDFNet.FDFDoc

fdfExtractPageSet(pages_to_extract, flag)

Extract form data and/or annotations to FDF

Parameters:
Name Type Description
pages_to_extract PDFNet.PageSet

The set of pages for which to extract interactive data.

flag number/enum
PDFNet.PDFDoc.ExtractFlag = {
	e_forms_only : 0
	e_annots_only : 1
	e_both : 2
}

specifies extract options

Returns:

A promise that resolves to a pointer to the newly created FDF file with an interactive data.

Type
PDFNet.FDFDoc

fdfMerge(fdf_doc)

Import form data from FDF file to PDF interactive form.

Parameters:
Name Type Description
fdf_doc PDFNet.FDFDoc

a reference to the FDF file


fdfUpdate(fdf_doc)

Replace existing form and annotation data with those imported from the FDF file. Since this method avoids updating annotations unnecessarily it is ideal for incremental save.

Parameters:
Name Type Description
fdf_doc PDFNet.FDFDoc

a reference to the FDF file


fieldCreate(field_name, type, field_value, def_field_value)

Parameters:
Name Type Description
field_name string
type number/enum
PDFNet.Field.Type = {
	e_button : 0
	e_check : 1
	e_radio : 2
	e_text : 3
	e_choice : 4
	e_signature : 5
	e_null : 6
}
field_value PDFNet.Obj
def_field_value PDFNet.Obj
Returns:

A promise that resolves to an object of type: "field"

Type
PDFNet.Field

fieldCreateFromStrings(field_name, type, field_value, def_field_value)

Parameters:
Name Type Description
field_name string
type number/enum
PDFNet.Field.Type = {
	e_button : 0
	e_check : 1
	e_radio : 2
	e_text : 3
	e_choice : 4
	e_signature : 5
	e_null : 6
}
field_value string
def_field_value string
Returns:

A promise that resolves to an object of type: "field"

Type
PDFNet.Field

flattenAnnotations(forms_only)

Flatten all annotations in the document.

Parameters:
Name Type Description
forms_only boolean

if false flatten all annotations, otherwise flatten only form fields.


flattenAnnotationsAdvanced(flags)

Parameters:
Name Type Description
flags number

generateThumbnails(size)

Generates thumbnail images for all the pages in this PDF document.

Parameters:
Name Type Description
size number

The maximum dimension (width or height) that thumbnails will have.


getAcroForm()

Returns:

A promise that resolves to the AcroForm dictionary located in "/Root" or NULL if dictionary is not present.

Type
PDFNet.Obj

getDocInfo()

Returns:

A promise that resolves to the class representing document information metadata. (i.e. entries in the document information dictionary).

Type
PDFNet.PDFDocInfo

getField(field_name)

Parameters:
Name Type Description
field_name string

a string representing the fully qualified name of the field (e.g. "employee.name.first").

Returns:

A promise that resolves to a FieldIterator referring to an interactive Field or to invalid field if the field name was not found. If a given field name was not found itr.HasNext() will return false. For example:

FieldIterator itr = pdfdoc.FieldFind("name");
if (itr.HasNext()) {
  Console.WriteLine("Field name: {0}", itr.Current().GetName());
}
else { ...field was not found... }
Type
PDFNet.field

getFieldIterator(field_name)

An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user. A PDF document may contain any number of fields appearing on any combination of pages, all of which make up a single, global interactive form spanning the entire document.

The following methods are used to access and manipulate Interactive form fields (sometimes referred to as AcroForms).

Parameters:
Name Type Description
field_name string

String representing the name of the field to get.

Returns:

A promise that resolves to an iterator to the first Field in the document.

The list of all Fields present in the document can be traversed as follows:

var itr = yield doc.GetFieldIterator();
for(itr; yield itr.hasNext(); itr.next()) {
  var field = itr.current();
  console.log("Field name: " + yield field.getName());
 }

For a full sample, please refer to 'InteractiveForms' sample project.

Type
PDFNet.Iterator

getFieldIteratorBegin()

An interactive form (sometimes referred to as an AcroForm) is a collection of fields for gathering information interactively from the user. A PDF document may contain any number of fields appearing on any combination of pages, all of which make up a single, global interactive form spanning the entire document.

The following methods are used to access and manipulate Interactive form fields (sometimes referred to as AcroForms).

Returns:

A promise that resolves to an iterator to the first Field in the document.

The list of all Fields present in the document can be traversed as follows:

FieldIterator itr = pdfdoc.GetFieldIterator();
for(; itr.HasNext(); itr.Next()) {
  Field field = itr.Current();
  Console.WriteLine("Field name: {0}", field.GetName());
 }

For a full sample, please refer to 'InteractiveForms' sample project.

Type
PDFNet.Iterator

getFirstBookmark()

Returns:

A promise that resolves to the first Bookmark from the document's outline tree. If the Bookmark tree is empty the underlying SDF/Cos Object is null and returned Bookmark is not valid (i.e. Bookmark::IsValid() returns false).

Type
PDFNet.Bookmark

getGeometryCollectionForPage(page_num)

Parameters:
Name Type Description
page_num number
Returns:

A promise that resolves to an object of type: "GeometryCollection"

Type
PDFNet.GeometryCollection

getOCGConfig()

Returns:

A promise that resolves to the default optional-content configuration for the document from the OCProperties D entry.

Type
PDFNet.OCGConfig

getOCGs()

Returns:

A promise that resolves to the Obj array that contains optional-content groups (OCGs) for the document, or NULL if the document does not contain any OCGs. The order of the groups is not guaranteed to be the creation order, and is not the same as the display order.

Type
PDFNet.Obj

getOpenAction()

Returns:

A promise that resolves to action that is triggered when the document is opened. The returned action can be either a destination or some other kind of Action (see Section 8.5, 'Actions' in PDF Reference Manual).

Type
PDFNet.Action

getPage(page_number)

Parameters:
Name Type Description
page_number number

the page number in document's page sequence. Page numbers in document's page sequence are indexed from 1.

Returns:

A promise that resolves to a Page corresponding to a given page number, or null (invalid page) if the document does not contain the given page number.

For example:

 
  Page page = pdfdoc.GetPage(page_num);
  if (page == null) return; //  Page not found
Type
PDFNet.Page

getPageCount()

Returns:

A promise that resolves to the number of pages in the document.

Type
number

getPageIterator(page_number)

Use the Next() method on the returned iterator to traverse all pages in the document. For example:

 
  PageIterator itr = pdfdoc.GetPageIterator();
  while (itr.HasNext()) { //  Read every page
     Page page = itr.Current();
     // ...
     itr.Next()
  }

For full sample code, please take a look at ElementReader, PDFPageTest and PDFDraw sample projects.

Parameters:
Name Type Description
page_number number

page to set the iterator on. 1 corresponds to the first page.

Returns:

A promise that resolves to an iterator to the first page in the document.

Type
PDFNet.Iterator

getPageLabel(page_num)

Parameters:
Name Type Description
page_num number

The page number. Because PDFNet indexes pages starting from 1, page_num must be larger than 0.

Returns:

A promise that resolves to the PageLabel that is in effect for the given page. If there is no label object in effect, this method returns an invalid page label object.

Type
PDFNet.pagelabel

getPages()

Returns:

A promise that resolves to A dictionary representing the root of the low level page-tree

Type
PDFNet.Obj

getRoot()

Returns:

A promise that resolves to A dictionary representing the Cos root of the document (/Root entry within the trailer dictionary)

Type
PDFNet.Obj

getSDFDoc()

Returns:

A promise that resolves to document's SDF/Cos document

Type
PDFNet.SDFDoc

getSecurityHandler()

Returns:

A promise that resolves to currently selected SecurityHandler.

Type
PDFNet.SecurityHandler

getSignatureHandler(signature_handler_id)

Gets the associated signature handler instance from the signature manager by looking it up with the handler name.

Parameters:
Name Type Description
signature_handler_id number

The unique id of the signature handler to get.

Returns:

A promise that resolves to the signature handler instance if found, otherwise NULL.

Type
PDFNet.SignatureHandler

getStructTree()

Returns:

A promise that resolves to the document's logical structure tree root.

Type
PDFNet.STree

getTrailer()

Returns:

A promise that resolves to A dictionary representing the Cos root of the document (document's trailer)

Type
PDFNet.Obj

getTriggerAction(trigger)

Get the Action associated with the selected Doc Trigger event.

Parameters:
Name Type Description
trigger number/enum
PDFNet.PDFDoc.EventType = {
	e_action_trigger_doc_will_close : 17
	e_action_trigger_doc_will_save : 18
	e_action_trigger_doc_did_save : 19
	e_action_trigger_doc_will_print : 20
	e_action_trigger_doc_did_print : 21
}

the type of trigger event to get

Returns:

A promise that resolves to the Action Obj if present, otherwise NULL

Type
PDFNet.Obj

getViewPrefs()

Returns:

A promise that resolves to viewer preferences for this document.

PDFDocViewPrefs is a high-level utility class that can be used to control the way the document is to be presented on the screen or in print.

Type
PDFNet.PDFDocViewPrefs

hasOC()

Returns:

A promise that resolves to true if the optional content (OC) feature is associated with the document. The document is considered to have optional content if there is an OCProperties dictionary in the document's catalog, and that dictionary has one or more entries in the OCGs array.

Type
boolean

hasRepairedXRef()

Checks whether or not the underlying file has an XRef table that had to be repaired when the file was opened. If the document had an invalid XRef table when opened, PDFNet will have repaired the XRef table for its working representation of the document.

Returns:

A promise that resolves to true if document was found to be corrupted, and was repaired, during opening and has not been saved since.

Type
boolean

hasSignatures()

Indicates whether this documents contains any digital signatures.

Returns:

A promise that resolves to true if a digital signature is found in this PDFDoc.

Type
boolean

importPages(page_buf, import_bookmarks)

The function imports a list of pages to this document. Although a list of pages can be imported using repeated calls to PageInsert(), PageImport will not import duplicate copies of resources that are shared across pages (such as fonts, images, colorspaces etc). Therefore this method is recommended when a page import list consists of several pages that share the same resources.

Parameters:
Name Type Description
page_buf Array.<PDFNet.Page>

A list of pages to import. All pages should belong to the same source document.

import_bookmarks number

An optional flag specifying whether any bookmark items pointing to pages in the import list should be merged with the target (i.e. this) document.

Returns:

A promise that resolves to a list of imported pages. Note that imported pages are not placed in the document page sequence. This can be done using methods such as PageInsert(), PagePushBack(), etc.

Type
PDFNet.Page

initSecurityHandler(custom_data)

Initializes document's SecurityHandler. This version of InitSecurityHandler() works with Standard and Custom PDF security and can be used in situations where the password is obtained dynamically via user feedback. See EncTest sample for example code.

This function should be called immediately after an encrypted document is opened. The function does not have any side effects on documents that are not encrypted.

If the security handler was successfully initialized it can be later obtained using GetSecurityHandler() method.

Parameters:
Name Type Description
custom_data
Returns:

true if the SecurityHandler was successfully initialized (this may include authentication data collection, verification etc.), false otherwise.

Type
boolean

initStdSecurityHandler(password, password_sz)

Initializes document's SecurityHandler using the supplied password. This version of InitSecurityHandler() assumes that document uses Standard security and that a password is specified directly.

This function should be called immediately after an encrypted document is opened. The function does not have any side effects on documents that are not encrypted.

If the security handler was successfully initialized, it can be later obtained using GetSecurityHandler() method.

Parameters:
Name Type Description
password string

Specifies the password used to open the document without any user feedback. If you would like to dynamically obtain the password, you need to derive a custom class from StdSecurityHandler() and use InitSecurityHandler() without any parameters. See EncTest sample for example code.

password_sz number

An optional parameter used to specify the size of the password buffer, in bytes. If the 'password_sz' is 0, or if the parameter is not specified, the function assumes that the string is null terminated.

Returns:

A promise that resolves to true if the given password successfully unlocked the document, false otherwise.

Type
boolean

initStdSecurityHandlerBuffer(password_buf)

Initializes document's SecurityHandler using the supplied password. This version of InitSecurityHandler() assumes that document uses Standard security and that a password is specified directly.

This function should be called immediately after an encrypted document is opened. The function does not have any side effects on documents that are not encrypted.

If the security handler was successfully initialized, it can be later obtained using GetSecurityHandler() method.

Parameters:
Name Type Description
password_buf Array

Specifies the password used to open the document without any user feedback. If you would like to dynamically obtain the password, you need to derive a custom class from StdSecurityHandler() and use InitSecurityHandler() without any parameters. See EncTest sample for example code.

Returns:

A promise that resolves to true if the given password successfully unlocked the document, false otherwise.

Type
boolean

initStdSecurityHandlerUString(password)

Initializes document's SecurityHandler using the supplied password. This version of InitSecurityHandler() assumes that document uses Standard security and that a password is specified directly.

This function should be called immediately after an encrypted document is opened. The function does not have any side effects on documents that are not encrypted.

If the security handler was successfully initialized, it can be later obtained using GetSecurityHandler() method.

Parameters:
Name Type Description
password string

Specifies the password used to open the document without any user feedback. If you would like to dynamically obtain the password, you need to derive a custom class from StdSecurityHandler() and use InitSecurityHandler() without any parameters. See EncTest sample for example code.

Returns:

A promise that resolves to true if the given password successfully unlocked the document, false otherwise.

Type
boolean

insertPages(insert_before_page_number, src_doc, start_page, end_page, flag)

Inserts a range of pages from specified PDFDoc

Parameters:
Name Type Description
insert_before_page_number number

the destination of the insertion. If less than or equal to 1, the pages are added to the beginning of the document. If larger than the number of pages in the destination document, the pages are appended to the document.

src_doc PDFNet.PDFDoc

source PDFDoc to insert from

start_page number

start of the page number to insert

end_page number

end of the page number to insert

flag number/enum
PDFNet.PDFDoc.InsertFlag = {
	e_none : 0
	e_insert_bookmark : 1
}

specifies insert options


insertPageSet(insert_before_page_number, src_doc, source_page_set, flag)

Inserts a range of pages from specified PDFDoc using PageSet

Parameters:
Name Type Description
insert_before_page_number number

the destination of the insertion. If less than or equal to 1, the pages are added to the beginning of the document. If larger than the number of pages in the destination document, the pages are appended to the document.

src_doc PDFNet.PDFDoc

source PDFDoc to insert from

source_page_set PDFNet.PageSet

a collection of the page number to insert

flag number/enum
PDFNet.PDFDoc.InsertFlag = {
	e_none : 0
	e_insert_bookmark : 1
}

specifies insert options


isEncrypted()

Returns:

A promise that resolves to true if the document is/was originally encrypted false otherwise.

Type
boolean

isLinearized()

Call this function to determine whether the document is represented in linearized (fast web view) format.

Returns:

A promise that resolves to true if document is stored in fast web view format, false otherwise.

Type
boolean

isModified()

Call this function to determine whether the document has been modified since it was last saved.

Returns:

A promise that resolves to true if document was modified, false otherwise

Type
boolean

isTagged()

Returns:

A promise that resolves to true if this document is marked as Tagged PDF, false otherwise.

Type
boolean

jsContextInitialize()


lock()

Locks the document to prevent competing threads from accessing the document at the same time. Threads attempting to access the document will wait in suspended state until the thread that owns the lock calls doc.Unlock().


lockRead()

Locks the document to prevent competing write threads (using Lock()) from accessing the document at the same time. Other reader threads however, will be allowed to access the document. Threads attempting to obtain write access to the document will wait in suspended state until the thread that owns the lock calls doc.UnlockRead(). Note: To avoid deadlocks obtaining a write lock while holding a read lock is not permitted and will throw an exception. If this situation is encountered please either unlock the read lock before the write lock is obtained or acquire a write lock (rather than read lock) in the first place.


movePages(move_before_page_number, src_doc, start_page, end_page, flag)

Moves a range of pages from specified PDFDoc. Pages are deleted from source document after move.

Parameters:
Name Type Description
move_before_page_number number

the destination of the move. If less than or equal to 1, the pages are moved to the beginning of the document. If larger than the number of pages in the destination document, the pages are moved to the end of the document.

src_doc PDFNet.PDFDoc

source PDFDoc to move from

start_page number

start of the page number to move

end_page number

end of the page number to move

flag number/enum
PDFNet.PDFDoc.InsertFlag = {
	e_none : 0
	e_insert_bookmark : 1
}

specifies insert options


movePageSet(move_before_page_number, src_doc, source_page_set, flag)

Moves a range of pages from specified PDFDoc. Pages are deleted from source document after move.

Parameters:
Name Type Description
move_before_page_number number

the destination of the move. If less than or equal to 1, the pages are moved to the beginning of the document. If larger than the number of pages in the destination document, the pages are moved to the end of the document.

src_doc PDFNet.PDFDoc

source PDFDoc to move from

source_page_set PDFNet.PageSet

a collection of the page number to move

flag number/enum
PDFNet.PDFDoc.InsertFlag = {
	e_none : 0
	e_insert_bookmark : 1
}

specifies insert options


pageCreate(media_box)

Create a new, empty page in the document. You can use PageWriter to fill the page with new content. Finally the page should be inserted at specific place within document page sequence using PageInsert/PagePushFront/PagePushBack methods.

Parameters:
Name Type Description
media_box PDFNet.rect

A rectangle, expressed in default user space units, defining the boundaries of the physical medium on which the page is intended to be displayed or printed. A user space units is 1/72 of an inch. If media_box is not specified the default dimensions of the page are 8.5 x 11 inches (or 8.572, 1172 units).

The following is a listing of some standard U.S. page sizes:

  • Letter = Rect(0, 0, 612, 792)
  • Legal = Rect(0, 0, 612, 1008)
  • Ledger = Rect(0, 0, 1224, 792)
  • Tabloid = Rect(0, 0, 792, 1224)
  • Executive = Rect(0, 0, 522, 756)

The following is a listing of ISO standard page sizes:

  • 4A0 = Rect(0, 0, 4768, 6741)
  • 2A0 = Rect(0, 0, 3370, 4768)
  • A0 = Rect(0, 0, 2384, 3370)
  • A1 = Rect(0, 0, 1684, 2384)
  • A2 = Rect(0, 0, 1191, 1684)
  • A3 = Rect(0, 0, 842, 1191)
  • A4 = Rect(0, 0, 595, 842)
  • A5 = Rect(0, 0, 420, 595)
  • A6 = Rect(0, 0, 298, 420)
  • A7 = Rect(0, 0, 210, 298)
  • A8 = Rect(0, 0, 147, 210)
  • A9 = Rect(0, 0, 105, 147)
  • A10 = Rect(0, 0, 74, 105)
  • B0 = Rect(0, 0, 2835, 4008)
  • B1 = Rect(0, 0, 2004, 2835)
  • B2 = Rect(0, 0, 1417, 2004)
  • B3 = Rect(0, 0, 1001, 1417)
  • B4 = Rect(0, 0, 709, 1001)
  • B5 = Rect(0, 0, 499, 709)
  • B6 = Rect(0, 0, 354, 499)
  • B7 = Rect(0, 0, 249, 354)
  • B8 = Rect(0, 0, 176, 249)
  • B9 = Rect(0, 0, 125, 176)
  • B10 = Rect(0, 0, 88, 125)
  • C0 = Rect(0, 0, 2599, 3677)
  • C1 = Rect(0, 0, 1837, 2599)
  • C2 = Rect(0, 0, 1298, 1837)
  • C3 = Rect(0, 0, 918, 1298)
  • C4 = Rect(0, 0, 649, 918)
  • C5 = Rect(0, 0, 459, 649)
  • C6 = Rect(0, 0, 323, 459)
  • C7 = Rect(0, 0, 230, 323)
  • C8 = Rect(0, 0, 162, 230)
  • C9 = Rect(0, 0, 113, 162)
  • C10 = Rect(0, 0, 79, 113)
Returns:

A promise that resolves to a new, empty page.

Type
PDFNet.Page

pageInsert(where, page)

Insert/Import a single page at a specific location in the page sequence.

Parameters:
Name Type Description
where PDFNet.Iterator

The location in the page sequence indicating where to insert the page. The page is inserted before the specified location.

page PDFNet.Page

A page to insert.


pagePushBack(page)

Adds a page to the end of a document's page sequence.

Parameters:
Name Type Description
page PDFNet.Page

a page to append to the document


pagePushFront(page)

Adds a page to the beginning of a document's page sequence.

Parameters:
Name Type Description
page PDFNet.Page

a page to prepend to the document Invalidates all PageIterators pointing to the document.


pageRemove(page_itr)

Parameters:
Name Type Description
page_itr PDFNet.Iterator

the PageIterator to the page that should be removed A PageIterator for the given page can be obtained using PDFDoc::Find(page_num) or using direct iteration through document's page sequence.


refreshFieldAppearances()

Regenerates the appearance stream for every widget annotation in the document Call this method if you modified field's value and would like to update field's appearances.


removePageLabel(page_num)

removes the page label that is attached to the specified page, effectively merging the specified range with the previous page label sequence.

Parameters:
Name Type Description
page_num number

The page from which the page label is removed. Because PDFNet indexes pages starting from 1, page_num must be larger than 0.


removeSecurity()

This function removes document security.


removeSignatureHandler(signature_handler_id)

Removes a signature handler from the signature manager.

Parameters:
Name Type Description
signature_handler_id number

The unique id of the signature handler to remove.


requirePage(page_number)

WebViewer only - Ensures that a particular page of the pdf document is finished loading before reading or writing from it. Recommended to be called before runGeneratorWithCleanup/WithoutCleanup is called. If the page(s) to be edited cannot be known until during the execution of the PDFNetJS script, all operations will need to be unlocked with PDFNet.finishOperation() and [PDFDoc].unlock() before [PDFDoc].requirePage() can be called, and relocked again with PDFNet.beginOperation() and [PDFDoc].lock()

doc.unlock();
yield PDFNet.finishOperation();
yield doc.requirePage(pageCounter);
yield PDFNet.beginOperation();
doc.lock();
Parameters:
Name Type Description
page_number number

The page to ensure completion of.


saveMemoryBuffer(flags)

Saves the document to a memory buffer.

Parameters:
Name Type Description
flags number

A bit field composed of an OR of SDFDoc::SaveOptions values. Note that this method ignores e_incremental flag.

Returns:

A promise that resolves to a stream (filter) containing file data.

Type
Promise

saveStream(stream, flags)

Parameters:
Name Type Description
stream PDFNet.Filter
flags number

setOpenAction(action)

Sets the Action that will be triggered when the document is opened.

Parameters:
Name Type Description
action PDFNet.Action

A new Action that will be triggered when the document is opened. An example of such action is a GoTo Action that takes the user to a given location in the document.


setPageLabel(page_num, label)

Parameters:
Name Type Description
page_num number
label PDFNet.pagelabel

setSecurityHandler(handler)

Parameters:
Name Type Description
handler PDFNet.SecurityHandler

timedLock(milliseconds)

Try locking the document, waiting no longer than specified number of milliseconds.

Parameters:
Name Type Description
milliseconds number

max number of milliseconds to wait for the document to lock

Returns:

A promise that resolves to true if the document is locked for multi-threaded access, false otherwise.

Type
boolean

timedLockRead(milliseconds)

Tries to obtain a read lock the document for duration, and returns true if the lock was successfully acquired

Parameters:
Name Type Description
milliseconds number

duration to obtain a read lock for.

Returns:

A promise that resolves to true if the document is locked for multi-threaded access, false otherwise.

Type
boolean

tryLock()

Try locking the document.

Returns:

true if the document is locked for multi-threaded access, false otherwise.


tryLockRead()

Tries to obtain a read lock the document and returns true if the lock was successfully acquired

Returns:

true if the document is locked for multi-threaded access, false otherwise.


unlock()

Removes the lock from the document.


unlockRead()

Removes the read lock from the document.