Document Class Documentation
classDocument : SystemIDisposableNamespace:Datalogics::PDFL
- Inherits from:
SystemIDisposable
Detailed Description
The underlying PDF representation of a document.
Use document objects to perform most of the functions related to pages in a PDF file, such as deleting pages, inserting blank pages, copying watermarks, creating bookmarks and thumbnails, and so on.
Referenced by
Uses types
Constructor & Destructor Documentation
Document
Document(CDotNetStreamFilefile)Parameters
file: CDotNetStreamFile
Document
Document(CDotNetStreamFilefile, stringpassword, PermissionRequestOperationperms, booldoRepair)Parameters
file: CDotNetStreamFilepassword: stringperms: PermissionRequestOperationdoRepair: bool
Document
Document(Documentrhs, InternalConstructsignifier)Parameters
rhs: Documentsignifier: InternalConstruct
Document
Document(StreamFilesf, boolignore)Parameters
sf: StreamFileignore: bool
Document
Document(StreamFilesf, stringpassword, PermissionRequestOperationperms, booldoRepair, boolignore)Parameters
sf: StreamFilepassword: stringperms: PermissionRequestOperationdoRepair: boolignore: bool
Document
Document()Creates a new document. The only Cos object in the document will be a Catalog. After the document is created, at least one page must be added using CreatePage or InsertPages before the PDF Viewer can display or save the document.
Document
Document(stringfileName)Parameters
fileName: stringA path name to the file, specified in whatever format is correct for fileSys.
Opens the specified document. If the call fails and the exception is pdErrNeedRebuild, then call again with doRepair set to true. This allows the application to decide whether to perform the time-consuming repair operation.
Document
Document(stringfileName, stringpassword, PermissionRequestOperationperms, booldoRepair)Parameters
fileName: stringA path name to the file.
password: stringThe password to use to attempt to open the document.
perms: PermissionRequestOperationThe permissions being requested. It must be an OR of the PermissionRequestOperation values.
doRepair: boolIf true, attempt to repair the file if it is damaged. If false, do not attempt to repair the file if it is damaged.
Opens the specified document. If the document is already open, it returns a reference to the already opened Document. You must call Close() once for every successful open. If the call fails and the exception is pdErrNeedRebuild, then call again with doRepair equal to true. This allows the application to decide whether to perform the time-consuming repair operation.
Document
Document(stringXPSFilename, XPSConvertParamsConversionParams)Parameters
XPSFilename: stringThe path to the XPS file to convert.
ConversionParams: XPSConvertParamsAdditional parameters for XPS conversion.
Create a Document from an XPS file.
Documents are converted one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially.
NOTE: This method is only available on Windows or Linux.
Document
Document(System.IO.Streamstream)Parameters
stream: System.IO.StreamThe Stream from which to read the Document.
Open a Document from a Stream.
This allows a document to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. Once passed to the Document constructor, ownership of the stream is passed to the Document. The Stream must remain open while the Document itself is open, as data will only be read as needed.
Document
Document(System.IO.Streamstream, stringpassword, PermissionRequestOperationperms, booldoRepair)Parameters
stream: System.IO.StreamThe Stream from which to read the Document.
password: stringThe password to use to attempt to open the document.
perms: PermissionRequestOperationThe permissions being requested. It must be an OR of the PermissionRequestOperation values.
doRepair: boolIf true, attempt to repair the file if it is damaged. If false, do not attempt to repair the file if it is damaged.
Open a Document from a Stream.
This allows a document to be read from a Stream object. The Stream must be seekable. Suitable examples are FileStream and MemoryStream. Once passed to the Document constructor, ownership of the stream is passed to the Document. The Stream must remain open while the Document itself is open, as data will only be read as needed.
~Document
~Document()Closes that document and releases its resources. Changes are not saved. You must use Save() to save any modifications before destroying this object.
Property Documentation
Attachments
System.Collections.Generic.IList< FileAttachment >Attachments[get]Author
stringAuthor[get, set]BaseURI
stringBaseURI[get, set]BookmarkRoot
BookmarkBookmarkRoot[get]Collection
CollectionCollection[get]CompressionLevel
intCompressionLevel[get]Creator
stringCreator[get, set]DefaultOptionalContentConfig
OptionalContentConfigDefaultOptionalContentConfig[get]DeleteOnClose
boolDeleteOnClose[get, set]FileName
stringFileName[get]FormsType
PDDocFormsTypeFormsType[get]HasSignature
boolHasSignature[get]InfoDict
PDFDictInfoDict[get]InstanceID
System.Byte[]InstanceID[get]IsEmbedded
boolIsEmbedded[get, set]IsLinearized
boolIsLinearized[get]IsModified
boolIsModified[get]IsOptimized
boolIsOptimized[get, set]IsPxDF
boolIsPxDF[get]Keywords
stringKeywords[get, set]LoadedFonts
System.Collections.Generic.IList< Font >LoadedFonts[get]MajorVersion
shortMajorVersion[get, set]MajorVersionIsNewerThanCurrentLibrary
boolMajorVersionIsNewerThanCurrentLibrary[get]MergedXMPKeywords
stringMergedXMPKeywords[get]MinorVersion
shortMinorVersion[get, set]MinorVersionIsNewerThanCurrentLibrary
boolMinorVersionIsNewerThanCurrentLibrary[get]NeedsSave
boolNeedsSave[get, set]NumPages
intNumPages[get]OptionalContentConfigs
System.Collections.Generic.IList< OptionalContentConfig >OptionalContentConfigs[get]OptionalContentContext
OptionalContentContextOptionalContentContext[get]OptionalContentGroups
System.Collections.Generic.IList< OptionalContentGroup >OptionalContentGroups[get]PageLabels
System.Collections.Generic.IList< PageLabel >PageLabels[get, set]PageMode
PageModePageMode[get, set]PermanentID
System.Byte[]PermanentID[get]PermissionFlags
PermissionFlagsPermissionFlags[get]Producer
stringProducer[get, set]RequiresFullSave
boolRequiresFullSave[get, set]RolledBackDocuments
System.Collections.Generic.IList< RolledBackDocument >RolledBackDocuments[get]Root
PDFDictRoot[get]StructureIDTree
NameTreeStructureIDTree[get]StructureParentTree
NumberTreeStructureParentTree[get]Subject
stringSubject[get, set]SuppressErrors
boolSuppressErrors[get, set]Title
stringTitle[get, set]VersionIsOlderThanCurrentLibrary
boolVersionIsOlderThanCurrentLibrary[get]VersionString
stringVersionString[get]WasRepaired
boolWasRepaired[get]XMPMetadata
stringXMPMetadata[get, set]Member Function Documentation
ApplyRedactions
boolApplyRedactions()Returns:
boolApplyRedactions
boolApplyRedactions(Redactionredact)Parameters
redact: Redaction
Returns:
boolCloneAsPDFADocument
PDFAConvertResultCloneAsPDFADocument(PDFAConvertTypetype, PDFAConvertParamsparms)Parameters
type: PDFAConvertTypeThe type of PDF/A conversion to perform
parms: PDFAConvertParamsA PDFAConvertParams object specifying options for the conversion
Returns:
A PDFAConvertResult object containing the Document and SaveFlags.Create a PDF/A compliant version of this Document.
The returned Document will be compliant with the PDF/A standard. You can save it using any of the standard Save() methods.
The PDFAConvertResult object contains both the Document and the SaveFlags you should use when saving the Document. You MUST use these exact flags to save the returned Document or it will no longer be PDF/A compliant.
The returned Document will have its MajorVersion and MinorVersion set to values required for PDF/A compliance. These will not be visible until after you save the Document.
If this Document could not be converted to PDF/A, the PDFADocument field in the PDFAConvertResult object will be null or a LibraryException will be thrown.
A LibraryException message should be checked to see if setting a PDFAConvertParams property will allow conversion to succeed. For example, if the message is "Unembeddable font in annotation", then try setting the RemoveAllAnnotations property to true and then call CloneAsPDFADocument().
CloneAsPDFADocumentInternal
DocumentCloneAsPDFADocumentInternal(PDFAConvertTypetype, PDFAConvertParamsparams_)Parameters
type: PDFAConvertTypeThe type of PDF/A conversion to perform
params_: PDFAConvertParams
Returns:
A PDFAConvertResult object containing the Document and SaveFlags.Create a PDF/A compliant version of this Document.
The returned Document will be compliant with the PDF/A standard. You can save it using any of the standard Save() methods.
The PDFAConvertResult object contains both the Document and the SaveFlags you should use when saving the Document. You MUST use these exact flags to save the returned Document or it will no longer be PDF/A compliant.
The returned Document will have its MajorVersion and MinorVersion set to "1" and "4" respectively. This is required for PDF/A compliance.
If this Document could not be converted to PDF/A, the PDFADocument field in the PDFAConvertResult object will be null.
CloneAsPDFXDocument
PDFXConvertResultCloneAsPDFXDocument(PDFXConvertTypetype, PDFXConvertParamsparms)Parameters
type: PDFXConvertTypeThe type of PDF/X conversion to perform
parms: PDFXConvertParamsA PDFXConvertParams object specifying options for the conversion
Returns:
A PDFXConvertResult object containing the Document and SaveFlags.Create a PDF/X compliant version of this Document.
The returned Document will be compliant with the PDF/X standard. You can save it using any of the standard Save() methods.
The PDFXConvertResult object contains both the Document and the SaveFlags you should use when saving the Document. You MUST use these exact flags to save the returned Document or it will no longer be PDF/X compliant.
The returned Document will have its MajorVersion and MinorVersion set to values required for PDF/X compliance. These will not be visible until after you save the Document.
If this Document could not be converted to PDF/X, the PDFXDocument field in the PDFXConvertResult object will be null.
CloneAsPDFXDocumentInternal
DocumentCloneAsPDFXDocumentInternal(PDFXConvertTypetype, PDFXConvertParamsparams_)Parameters
type: PDFXConvertTypeThe type of PDF/X conversion to perform
params_: PDFXConvertParams
Returns:
A PDFXConvertResult object containing the Document and SaveFlags.Create a PDF/X compliant version of this Document.
The returned Document will be compliant with the PDF/X standard. You can save it using any of the standard Save() methods.
The PDFXConvertResult object contains both the Document and the SaveFlags you should use when saving the Document. You MUST use these exact flags to save the returned Document or it will no longer be PDF/X compliant.
The returned Document will have its MajorVersion and MinorVersion set to "1" and "4" respectively. This is required for PDF/X compliance.
If this Document could not be converted to PDF/X, the PDFXDocument field in the PDFXConvertResult object will be null.
Close
voidClose()Returns:
voidCloses a document and releases its resources. Changes are not saved. You must use Save to save any modifications before calling Close.
CollectNamesOfTree
voidCollectNamesOfTree(PDFArraynamesArray, System.Collections.Generic.IList< FileAttachment >attachments)Parameters
namesArray: PDFArrayattachments: System.Collections.Generic.IList< FileAttachment >
Returns:
voidColorConvertPages
boolColorConvertPages(ColorConvertParamsparams_)Parameters
params_: ColorConvertParams
Returns:
True if color conversion occurred. False if nothing was color converted.Convert the colors (in place) in a Document as specified by by the params block by applying an ICC profile to the objects contained in the Document.
ConstructorRetrieve
static DocumentConstructorRetrieve(System.IntPtrignored)Parameters
ignored: System.IntPtr
Returns:
DocumentConvertToExcel
static boolConvertToExcel(stringinputPDFFileFilePath, stringoutputOfficeFilePath)Parameters
inputPDFFileFilePath: stringThe PDF file path to convert.
outputOfficeFilePath: stringThe output Office file path.
Returns:
true if the conversion was successful, false if an error occurred.This function converts a PDF file to a Microsoft Excel Office file (.xlsx).
NOTE: This method is only available on Windows 32/64-bit and Linux 64-bit.
ConvertToPowerPoint
static boolConvertToPowerPoint(stringinputPDFFileFilePath, stringoutputOfficeFilePath)Parameters
inputPDFFileFilePath: stringThe PDF file path to convert.
outputOfficeFilePath: stringThe output Office file path.
Returns:
true if the conversion was successful, false if an error occurred.This function converts a PDF file to a Microsoft PowerPoint Office file (.pptx).
NOTE: This method is only available on Windows 32/64-bit and Linux 64-bit.
ConvertToWord
static boolConvertToWord(stringinputPDFFileFilePath, stringoutputOfficeFilePath)Parameters
inputPDFFileFilePath: stringThe PDF file path to convert.
outputOfficeFilePath: stringThe output Office file path.
Returns:
true if the conversion was successful, false if an error occurred.This function converts a PDF file to a Microsoft Word Office file (.docx).
NOTE: This method is only available on Windows 32/64-bit and Linux 64-bit.
ConvertXFAFieldsToAcroFormFields
uintConvertXFAFieldsToAcroFormFields()Returns:
the number of output pages created in the converted documentConvert a XFA document into a document with only AcroForms.
XFA content is not widely supported by PDF processors, converting this content transforms XFA fields into AcroForm fields which are more widely suppored by PDF processors All XFA fields are removed.
https://www.datalogics.com/pdf-form-functions .
CountXMPMetadataArrayItems
intCountXMPMetadataArrayItems(stringnamespaceName, stringpath)Parameters
namespaceName: stringThe XML namespace URI for the schema in which the property is to be found.
path: stringThe name of the simple property .
Returns:
number of array items in the property array.Returns the number of array items in a property array associated with a Document.
CreateCollection
voidCreateCollection()Returns:
collection objectCreateCollection allows to create new collection in the PDF document. It replaces any existing collection.
CreateNameTree
NameTreeCreateNameTree(stringnameTreeName)Parameters
nameTreeName: stringThe name of the NameTree to create.
Returns:
The retrieved or newly created NameTree.Retrieves the name tree inside the Names dictionary with the specified key name, or creates it if it does not exist.
CreatePage
Parameters
afterPageNum: intThe page number after which the new page is inserted. The first page is 0. Use Document.BeforeFirstPage to insert the new page at the beginning of a document.
mediaBox: RectA rectangle specifying the page's media box, specified in user space coordinates.
Returns:
The newly created page.Creates and acquires a new Page. The page is inserted into the document at the specified location.
DeletePages
voidDeletePages(intfirstPage, intlastPage)Parameters
firstPage: intThe page number of the first page to delete. The first page is 0.
lastPage: intThe page number of the last page to delete.
Returns:
voidDeletes the specified pages.
DeletePages
voidDeletePages(intfirstPage, intlastPage, PageDeleteFlagsdeleteFlags)Parameters
firstPage: intThe page number of the first page to delete. The first page is 0.
lastPage: intThe page number of the last page to delete.
deleteFlags: PageDeleteFlagsOne of the DeleteFlags.
Returns:
voidDeletes the specified pages with option to parse Structure Tree.
Dispose
voidDispose()Returns:
voidDisposeChildren
voidDisposeChildren()Returns:
voidEmbedFonts
voidEmbedFonts()Returns:
voidEmbed unembedded fonts in a document.
To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document.
With no flags, fonts marked as embedded or subsettable will be embedded.
By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document.
EmbedFonts
voidEmbedFonts(EmbedFlagsflags)Parameters
flags: EmbedFlagsOne of the EmbedFlags
Returns:
voidEmbed unembedded fonts in a document.
To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document.
By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document.
EmbedFonts
voidEmbedFonts(EmbedFlagsflags, ProgressMonitorprogressMonitor, CancelProccancelProc, ReportProcreportProc)Parameters
flags: EmbedFlagsOne of the EmbedFlags
progressMonitor: ProgressMonitora ProgressMonitor that will receive progress information, may be null
cancelProc: CancelProca CancelProc, which can return true to cancel the operation, may be null
reportProc: ReportProca ReportProc, which will be called with warnings about fonts that do not embed, may be null
Returns:
voidEmbed unembedded fonts in a document.
To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document.
By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document.
EmbedFonts
voidEmbedFonts(System.Collections.Generic.IList< Font >fonts)Parameters
Returns:
voidEmbed specified fonts in a document.
To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document.
The fonts passed to this function must be fonts actually used in the current document. These fonts may be obtained by using the GetFonts or GetLoadedFonts functions, or obtained from a TextRun. Fonts created by name will not work in this context.
By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, use the version of this call that takes a list of Font objects and a set of flags for embedding. Passing the list of new Fonts and the DontScanDocument flag will directly embed the fonts in the list without scanning the document.
EmbedFonts
voidEmbedFonts(System.Collections.Generic.IList< Font >fonts, EmbedFlagsflags)Parameters
fonts: System.Collections.Generic.IList< Font >The list of fonts to embed. See restrictions above.
flags: EmbedFlagsOne of the EmbedFlags
Returns:
voidEmbed specified fonts in a document.
To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document.
The fonts passed to this function must be fonts actually used in the current document. These fonts may be obtained by using the GetFonts or GetLoadedFonts functions, or obtained from a TextRun. Fonts created by name will not work in this context.
By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, pass the list of new Fonts and the DontScanDocument flag. This will directly embed the fonts in the list without scanning the document.
EmbedFonts
voidEmbedFonts(System.Collections.Generic.IList< Font >fonts, EmbedFlagsflags, ProgressMonitorprogressMonitor, CancelProccancelProc, ReportProcreportProc)Parameters
fonts: System.Collections.Generic.IList< Font >The list of fonts to embed. See restrictions above.
flags: EmbedFlagsOne of the EmbedFlags
progressMonitor: ProgressMonitora ProgressMonitor that will receive progress information, may be null
cancelProc: CancelProca CancelProc, which can return true to cancel the operation, may be null
reportProc: ReportProca ReportProc, which will be called with warnings about fonts that do not embed, may be null
Returns:
voidEmbed specified fonts in a document.
To keep the changes the document must be saved. Fonts on the user's system that match the original font definition will be embedded. For the Times-Roman and Helvetica and corresponding styles, if displayed with a font alias, then the font alias will be embedded in the file. If the font has information that indicates the font cannot be embedded for print and preview, then the font will not be embedded in the document.
The fonts passed to this function must be fonts actually used in the current document. These fonts may be obtained by using the GetFonts or GetLoadedFonts functions, or obtained from a TextRun. Fonts created by name will not work in this context.
By default, the font embedding process scans the entire document for font usage information when subsetting fonts. For documents with large numbers of fonts or pages, this can take a long time. In cases where new Font objects are created and used to set text, it's not necessary to scan the entire document; instead, pass the list of new Fonts and the DontScanDocument flag. This will directly embed the fonts in the list without scanning the document.
EmbedOCRFonts
voidEmbedOCRFonts()Returns:
voidEmbed fonts that were used in creating OCR text.
This is also done automatically when saving.
EnumIndirectPDFObjects
boolEnumIndirectPDFObjects(PDFObjectEnumProcenumProc)Parameters
enumProc: PDFObjectEnumProcA user-supplied callback to call for each indirect object in dP. Enumeration ends when enumProc returns false or all indirect objects have been enumerated. The value parameter returned in enumProc is always null.
Returns:
true if all of the calls to enumProc returned true. It returns false as soon as a call to enumProc returns false.Enumerates all the indirect objects of this document.
The objects are enumerated in no particular order. Successive enumerations of the same Document are not guaranteed to enumerate objects in the same order.
This method does not enumerate invalid objects, which include objects that are defined as null, objects that are not defined at all (those having no cross-reference entry), and objects that are on the free list.
This re-raises any exception that proc raises.
EnumResources
voidEnumResources(intstartPage, intendPage, ResourceTyperesourceType, PDFObjectEnumProcenumProc)Parameters
startPage: intThe first page in the range of pages.
endPage: intThe last page in the range of pages.
resourceType: ResourceTypeResource type to enumerate.
enumProc: PDFObjectEnumProcA user-supplied callback to call once for each resource of the specified type. NOTE: The resource is the first parameter of the callback, the second is unused.
Returns:
voidEnumerates the specified type of Page Resource, for a specified range of Pages.
This method enumerates resources in each page's Resources dictionary (ColorSpace, Font, ExtGState, etc.).
ExportAcroFormsData
boolExportAcroFormsData(stringfileName, AcroFormExportTypeexportType)Parameters
fileName: stringThe path on disk of the file the AcroForms data is exported to.
exportType: AcroFormExportTypeThe format type the AcroForm data should be exported to. The supported types are XFDF, FDF, and XML.
Returns:
true indicates exporting succeeded and false indicates an error occurredExport the AcroForms data.
AcroForms data is exported into a format that can later be imported into another AcroForms document.
https://www.datalogics.com/pdf-form-functions .
ExportAsPostScript
voidExportAsPostScript(PrintUserParamsuserParams, PrintCancelProcprintCancelProc, PrintProgressProcprintProgressProc, stringpath)Parameters
userParams: PrintUserParamsParameters to control printing.
printCancelProc: PrintCancelProcA PrintCancelProc, which can return true to cancel printing, may be null.
printProgressProc: PrintProgressProcA PrintProgressProc, may be null.
path: stringThe output file to be created.
Returns:
voidExports a PDF document or pages from a PDF document as PostScript allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
The output is placed in the specified file.
ExportAsPostScript
voidExportAsPostScript(PrintUserParamsuserParams, PrintCancelProcprintCancelProc, stringpath)Parameters
userParams: PrintUserParamsParameters to control printing.
printCancelProc: PrintCancelProcA PrintCancelProc, which can return true to cancel printing, may be null.
path: stringThe output file to be created.
Returns:
voidExports a PDF document or pages from a PDF document as PostScript allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
The output is placed in the specified file.
ExportAsPostScript
voidExportAsPostScript(PrintUserParamsuserParams, stringpath)Parameters
userParams: PrintUserParamsParameters to control printing.
path: stringThe output file to be created.
Returns:
voidExports a PDF document or pages from a PDF document as PostScript allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
The output is placed in the specified file.
ExportXFAFormsData
boolExportXFAFormsData(stringfileName, XFAFormExportTypeexportType)Parameters
fileName: stringThe path on disk of the file the XFA form data is exported to.
exportType: XFAFormExportTypeThe format type the XFA data should be exported to. The supported types are XDP, XML, and XFD.
Returns:
true indicates exporting succeeded and false indicates an error occurredExport the XFA Forms data.
XFA forms data is exported into a format that can later be imported into another XFA document.
https://www.datalogics.com/pdf-form-functions .
FindBookmark
BookmarkFindBookmark(stringtitle)Parameters
title: stringThe title of the bookmark for which to search.
Returns:
The bookmark within the document's bookmark tree that has the supplied title. Returns NULL if there is no bookmark with the supplied title.Find bookmark by its title, searching within the document's entire bookmark tree.
FindBookmark
BookmarkFindBookmark(stringtitle, intmaxDepth)Parameters
title: stringThe title of the bookmark for which to search.
maxDepth: intIf supplied (with a value greater than or equal to 0), declares the number of levels below this bookmark to search. (If omitted, the entire subtree is searched.)
Returns:
The bookmark within the document's bookmark tree that has the supplied title. Returns NULL if there is no bookmark with the supplied title.Find bookmark by its title, searching within the document's bookmark tree to a depth determined by maxDepth (e.g., 0 = root bookmark only and not any of its children, 1 = search one level below root bookmark level, etc. Omit to search entire bookmark tree.)
FindLabelForPageNum
stringFindLabelForPageNum(intpageIndex)Parameters
pageIndex: intIndex of a page in the Document
Returns:
The label string for the pageFetch the label string for a page index, using the current page labels.
FindPDFObjectByID
PDFObjectFindPDFObjectByID(intID)Parameters
ID: int
Returns:
PDFObjectRetrieves an indirect PDFObject by its ID number. Note that direct PDFObjects cannot be retrieved by ID.
FindPageNumForLabel
intFindPageNumForLabel(stringlabel)Parameters
label: stringThe label string to look up
Returns:
The index of the corresponding page, or -1 if the label could not be matchedLook up a page index based on a label string.
FlattenAcroFormFields
voidFlattenAcroFormFields()Returns:
voidFlatten a AcroForms document.
Interactive AcroForm fields are flattened into static PDF page content. All AcroForm fields are removed.
NOTE: This method is part of the APDFL Forms Extension that is available separately from APDFL. For more information, please see https://www.datalogics.com/pdf-form-functions .
FlattenNonFormAnnotations
voidFlattenNonFormAnnotations()Returns:
voidFlatten a Non-Form (no AcroForm, no XFA) document's Annotations.
Annotations are flattened into static PDF page content.
NOTE: This method is part of the APDFL Forms Extension that is available separately from APDFL. For more information, please see https://www.datalogics.com/pdf-form-functions .
FlattenOptionalContent
boolFlattenOptionalContent()Returns:
true if the document was successfully flattened, false otherwise.Flattens optional content in the document.
Every page in the document will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made. All other optional content information will be removed from the document.
The document's default optional content context will be used to determine visibility of optional content.
FlattenOptionalContent
boolFlattenOptionalContent(OptionalContentContextocc)Parameters
occ: OptionalContentContextThe optional content context in which content is checked for visibility.
Returns:
true if the document was successfully flattened, false otherwise.Flattens optional content in the document.
Every page in the document will be replaced with a version that has no optional content. The new version of the page will contain only what was visible on the page when the call was made. All other optional content information will be removed from the document.
FlattenTransparency
intFlattenTransparency()Returns:
The number of pages that were flattened.Flattens all transparencies in the document. To flatten specific pages, see Document.FlattenTransparency(params, firstPage, lastPage)
Documents are flattened one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially.
FlattenTransparency
intFlattenTransparency(FlattenTransparencyParamsparams_)Parameters
params_: FlattenTransparencyParams
Returns:
The number of pages that were flattened.Flattens all transparencies in the document. To flatten specific pages, see Document.FlattenTransparency(params, firstPage, lastPage)
Documents are flattened one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially.
FlattenTransparency
intFlattenTransparency(FlattenTransparencyParamsparams_, intfirstPage, intlastPage)Parameters
params_: FlattenTransparencyParamsfirstPage: intThe first page of the range of pages to flatten.
lastPage: intThe last page of the range of pages to flatten.
Returns:
The number of pages that were flattened.Flattens transparencies in the document that occur on pages within the specified range. When performing flattening on multiple pages, this method is more efficient than making multiple Page.FlattenTransparency() calls.
Documents are flattened one at a time. In multi-threaded applications, threads that are making simultaneous calls to this method will block and execute the method sequentially.
FlattenXFAFormFields
uintFlattenXFAFormFields()Returns:
the number of output pages created in the flattened document.Flatten a XFA Document (Static or Dynamic).
XFA content is not widely supported by PDF processors, flattening this content transforms into static PDF page content that is part of typical PDF files that can easily be understood by PDF processors. All XFA fields are removed.
https://www.datalogics.com/pdf-form-functions .
FlattenXFAFormFieldsAsIfPrinted
uintFlattenXFAFormFieldsAsIfPrinted()Returns:
the number of output pages created in the flattened document.Flatten a XFA Document (Static or Dynamic) as if it was Printed.
XFA content is not widely supported by PDF processors, flattening this content transforms into static PDF page content that is part of typical PDF files that can easily be understood by PDF processors. All XFA fields are removed.
The Flattened appearance will take into consideration how the document should appear when printed.
https://www.datalogics.com/pdf-form-functions .
GetFonts
System.Collections.Generic.IList< Font >GetFonts(intfirstPage, intlastPage)Parameters
firstPage: intThe page number of the first page for which fonts are enumerated. The first page is 0.
lastPage: intThe page number of the last page for which fonts are enumerated.
Returns:
System.Collections.Generic.IList< Font >Get all the fonts in the specified page range. This may take a considerable amount of time for a large page range.
GetInfo
stringGetInfo(stringinfoname)Parameters
infoname: stringThe name of metadata which value will be obtained.
Returns:
The value of the metadata obtained from the PDF file.Gets the value of metadata information in a PDF file.
GetNameTree
NameTreeGetNameTree(stringnameTreeName)Parameters
nameTreeName: stringThe name of the NameTree to get.
Returns:
The retrieved NameTree.Retrieves the name tree inside the Names dictionary with the specified key name.
GetPage
PageGetPage(intpageNumber)Parameters
pageNumber: intThe page number of the page to acquire. The first page is 0.
Returns:
PageGets a Page from a document.
GetXMPMetadataArrayItem
stringGetXMPMetadataArrayItem(stringnamespaceName, stringpath, intindex)Parameters
namespaceName: stringThe XML namespace URI for the schema in which the property is to be found.
path: stringThe name of the desired simple property.
index: intThe index in the metadata property array associated with the property.
Returns:
a string containing the XML text of the value of the specified property in the XMP metadata associated with the Document, or an empty string if no such property is found.Gets the value of an XMP metadata array item, associated with a document, based on an index.
GetXMPMetadataProperty
stringGetXMPMetadataProperty(stringnamespaceName, stringpath)Parameters
namespaceName: stringThe XML namespace URI for the schema in which the property is to be found.
path: stringThe name of the desired simple property. Note that XMP properties can have an XML substructure; this method can only retrieve values from simple textual properties.
Returns:
stringGets the value of an XMP metadata property associated with a document. It returns the XML text of the value of the specified property in the XMP metadata associated with the Document. The XMP metadata can represent all properties in the Document object's Info dictionary, as well as other properties.
ImportAcroFormsData
boolImportAcroFormsData(stringfileName, AcroFormImportTypeimportType)Parameters
fileName: stringThe path on disk of the AcroFormsdata file to be imported.
importType: AcroFormImportTypeThe format type the data type should be imported to. The supported types are XFDF, FDF, and XML.
Returns:
true indicates importing succeeded and false indicates an error occurredImport the AcroForms data.
AcroForms data is imported from a supported format into the AcroForms document so its existing fields can be populated for example.
https://www.datalogics.com/pdf-form-functions .
ImportXFAFormsData
boolImportXFAFormsData(stringfileName)Parameters
fileName: stringThe path on disk of the XFA form data file to be imported, the supported types of data that can be imported are XDP, XML, and XFD.
Returns:
true indicates importing succeeded and false indicates an error occurredImport the XFA Forms data.
XFA forms data is imported from a supported format into the XFA document so its existing fields can be populated for example.
https://www.datalogics.com/pdf-form-functions .
InsertPages
voidInsertPages(intmergeAfterThisPage, Documentdoc2, intstartPage, intnumPages, PageInsertFlagsinsertFlags)Parameters
mergeAfterThisPage: intThe page number in doc after which pages from doc2 are inserted. The first page is 0. If Document.BeforeFirstPage is used, the pages are inserted before the first page in doc. Use Document.LastPage to insert pages after the last page in doc.
doc2: DocumentThe document containing the pages that are inserted into doc.
startPage: intThe page number of the first page in doc2 to insert into doc. The first page is 0.
numPages: intThe number of pages in doc2 to insert into doc. Use Document.AllPages to insert all pages from doc2 into doc.
insertFlags: PageInsertFlagsFlags that determine what additional information is copied from doc2 into doc. It is an OR of the following constants: PageInsertFlags.Bookmarks, PageInsertFlags.Threads, PageInsertFlags.All
Returns:
voidInserts numPages pages from doc2 into doc. All annotations, and anything else associated with the page (such as a thumbnail image) are copied from the doc2 pages to the new pages in doc. This method does not insert pages if doc equals doc2.
The insertFlags parameter controls whether bookmarks and threads are inserted along with the specified pages. Setting this parameter to PageInsertFlags.All has two effects:
The parameters indicating which pages to insert are ignored: all the pages of doc2 are inserted.
In addition to inserting the pages themselves, it also merges other document data from doc2 into doc:
Named destinations from doc2 (of PDF 1.1 and later) are copied into doc. If there are named destinations in doc2 with the same name as some named destination in doc, the ones in doc retain their names and the copied named destinations are given new names based on the old ones, with distinguishing digits added. Actions and bookmarks referring to the old names are made to refer to the new names after being copied into doc.
If it is also the case that mergeAfterThisPage denotes the last page of the document, then document metadata is merged, and the optional content properties are merged in a more symmetrical manner than would otherwise be the case.
Named destinations from doc2 (of PDF 1.1 and later) are copied into doc. If there are named destinations in doc2 with the same name as some named destination in doc, the ones in doc retain their names and the copied named destinations are given new names based on the old ones, with distinguishing digits added. Actions and bookmarks referring to the old names are made to refer to the new names after being copied into doc.
If it is also the case that mergeAfterThisPage denotes the last page of the document, then document metadata is merged, and the optional content properties are merged in a more symmetrical manner than would otherwise be the case.
Document logical structure from doc2 is copied into doc. If less than the whole of doc2 is being inserted, only those structure elements having content on the copied pages, and the ancestors of those elements, are copied into the logical structure tree of doc. The top-level children of the structure tree root of doc2 are copied as new top-level children of the structure tree root of doc; a structure tree root is created in doc if there was none before. The role maps of the two structure trees are merged, with name conflicts resolved in favor of the role mappings present in doc. Attribute objects having scalar values, or values that are arrays of scalar values, are copied. Class map information from doc2 is also merged into that for doc.
InsertPages
voidInsertPages(intmergeAfterThisPage, Documentdoc2, intstartPage, intnumPages, PageInsertFlagsinsertFlags, ProgressMonitorprogressMonitor, CancelProccancelProc)Parameters
mergeAfterThisPage: intThe page number in doc after which pages from doc2 are inserted. The first page is 0. If Document.BeforeFirstPage is used, the pages are inserted before the first page in doc. Use Document.LastPage to insert pages after the last page in doc.
doc2: DocumentThe document containing the pages that are inserted into doc.
startPage: intThe page number of the first page in doc2 to insert into doc. The first page is 0.
numPages: intThe number of pages in doc2 to insert into doc. Use Document.AllPages to insert all pages from doc2 into doc.
insertFlags: PageInsertFlagsFlags that determine what additional information is copied from doc2 into doc. It is an OR of the following constants: PageInsertFlags.Bookmarks, PageInsertFlags.Threads, PageInsertFlags.All
progressMonitor: ProgressMonitora ProgressMonitor that will receive progress information, may be null
cancelProc: CancelProca CancelProc, which can return true to cancel the operation, may be null
Returns:
voidInserts numPages pages from doc2 into doc. All annotations, and anything else associated with the page (such as a thumbnail image) are copied from the doc2 pages to the new pages in doc. This method does not insert pages if doc equals doc2.
The insertFlags parameter controls whether bookmarks and threads are inserted along with the specified pages. Setting this parameter to PageInsertFlags.All has two effects:
The parameters indicating which pages to insert are ignored: all the pages of doc2 are inserted.
In addition to inserting the pages themselves, it also merges other document data from doc2 into doc:
Named destinations from doc2 (of PDF 1.1 and later) are copied into doc. If there are named destinations in doc2 with the same name as some named destination in doc, the ones in doc retain their names and the copied named destinations are given new names based on the old ones, with distinguishing digits added. Actions and bookmarks referring to the old names are made to refer to the new names after being copied into doc.
If it is also the case that mergeAfterThisPage denotes the last page of the document, then document metadata is merged, and the optional content properties are merged in a more symmetrical manner than would otherwise be the case.
Named destinations from doc2 (of PDF 1.1 and later) are copied into doc. If there are named destinations in doc2 with the same name as some named destination in doc, the ones in doc retain their names and the copied named destinations are given new names based on the old ones, with distinguishing digits added. Actions and bookmarks referring to the old names are made to refer to the new names after being copied into doc.
If it is also the case that mergeAfterThisPage denotes the last page of the document, then document metadata is merged, and the optional content properties are merged in a more symmetrical manner than would otherwise be the case.
Document logical structure from doc2 is copied into doc. If less than the whole of doc2 is being inserted, only those structure elements having content on the copied pages, and the ancestors of those elements, are copied into the logical structure tree of doc. The top-level children of the structure tree root of doc2 are copied as new top-level children of the structure tree root of doc; a structure tree root is created in doc if there was none before. The role maps of the two structure trees are merged, with name conflicts resolved in favor of the role mappings present in doc. Attribute objects having scalar values, or values that are arrays of scalar values, are copied. Class map information from doc2 is also merged into that for doc.
IsDynamicXFA
boolIsDynamicXFA()Returns:
true indicates the Document is Dynamic XFA, false indicates it is notIndicates if the document is Dynamic XFA.
Dynamic XFA documents can change in appearance in response to changes in the data. They don't contain a meaningful PDF representation. Such XFA content is not widely supported by PDF processors.
https://www.datalogics.com/pdf-form-functions .
IsStaticXFA
boolIsStaticXFA()Returns:
true indicates the Document is Static XFA, false indicates it is notIndicates if the document is Static XFA.
Static XFA documents have a fixed appearance and layout. They usually contain a meaningful PDF representation. Such XFA content is not widely supported by PDF processors.
https://www.datalogics.com/pdf-form-functions .
LookForKidsInNameTree
voidLookForKidsInNameTree(PDFDictnameTree, System.Collections.Generic.IList< FileAttachment >attachments)Parameters
nameTree: PDFDictattachments: System.Collections.Generic.IList< FileAttachment >
Returns:
voidMergeXMPKeywords
voidMergeXMPKeywords()Returns:
voidCauses a string produced as by PDDocGetMergedXAPKeywords() to be stored as the new value of the pdf:Keywords property, and the former value of the pdf:Keywords property to be stored as an item in the xmp:Keywords bag of keyword items.
The algorithm used to compute merged keywords lists detects the case in which the keywords lists have already been merged and makes no changes to the XMP metadata in this case.
MovePage
voidMovePage(intmoveToAfterThisPage, intpageToMove)Parameters
moveToAfterThisPage: intThe new location of the page to move. The first page is 0. It may either be a page number, or the constant Document.BeforeFirstPage.
pageToMove: intThe page number of the page to move.
Returns:
voidMoves one page in a document.
PermRequest
boolPermRequest(PermissionRequestOperationrequestedperm)Parameters
requestedperm: PermissionRequestOperationThe document permission which to check
Returns:
a boolean if the permission is set in the document.Tests if a permission is set on a document
PermRequest
boolPermRequest(stringpassword, PermissionRequestOperationperms)Parameters
password: stringThe document password which authorizes the change. Note - if this argument is set to a NULL (""), then the return will be an indicator of whether or not the requested permission is already set in this document, with no changes made to the PDF document.
perms: PermissionRequestOperationthe permissions on the PDF file which is to be set or checked.
Returns:
a boolean if the permission change is successful or if the permission was set.Request the permissions to be changed on a PDF document. This takes effect immediately
voidPrint(PrintUserParamsuserParams)Parameters
userParams: PrintUserParamsParameters to control printing.
Returns:
voidPrints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
voidPrint(PrintUserParamsuserParams, PrintCancelProcprintCancelProc)Parameters
userParams: PrintUserParamsParameters to control printing.
printCancelProc: PrintCancelProcA PrintCancelProc, which can return true to cancel printing, may be null.
Returns:
voidPrints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
voidPrint(PrintUserParamsuserParams, PrintCancelProcprintCancelProc, PrintProgressProcprintProgressProc)Parameters
userParams: PrintUserParamsParameters to control printing.
printCancelProc: PrintCancelProcA PrintCancelProc, which can return true to cancel printing, may be null.
printProgressProc: PrintProgressProcA PrintProgressProc, may be null.
Returns:
voidPrints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
PrintToFile
voidPrintToFile(PrintUserParamsuserParams, PrintCancelProcprintCancelProc, PrintProgressProcprintProgressProc, stringpath)Parameters
userParams: PrintUserParamsParameters to control printing.
printCancelProc: PrintCancelProcA PrintCancelProc, which can return true to cancel printing, may be null.
printProgressProc: PrintProgressProcA PrintProgressProc, may be null.
path: stringThe output file to be created.
Returns:
voidPrints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
The output is placed in the specified file.
PrintToFile
voidPrintToFile(PrintUserParamsuserParams, PrintCancelProcprintCancelProc, stringpath)Parameters
userParams: PrintUserParamsParameters to control printing.
printCancelProc: PrintCancelProcA PrintCancelProc, which can return true to cancel printing, may be null.
path: stringThe output file to be created.
Returns:
voidPrints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
The output is placed in the specified file.
PrintToFile
voidPrintToFile(PrintUserParamsuserParams, stringpath)Parameters
userParams: PrintUserParamsParameters to control printing.
path: stringThe output file to be created.
Returns:
voidPrints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.
The output is placed in the specified file.
RemoveCollection
voidRemoveCollection()Returns:
voidRemoveCollection Removes a collection dictionary from a document.
RemoveDuplicateOCG
voidRemoveDuplicateOCG()Returns:
voidRemoves duplicate optional content group from the document. This does not remove any content associated with the duplicate group,
RemoveNameTree
voidRemoveNameTree(stringnameTreeName)Parameters
nameTreeName: stringThe name of the NameTree to remove.
Returns:
voidRemoves the name tree inside the Names dictionary with the specified key name. It does nothing if no object with that name exists.
RemoveOCG
voidRemoveOCG(OptionalContentGroupocg)Parameters
ocg: OptionalContentGroupThe optional content group to remove.
Returns:
voidRemoves the specified optional content group from the document. This does not remove any content associated with the specified group, only the group itself.
ReplacePages
voidReplacePages(intstartPage, Documentdoc2, intstartPageDoc2, intnumPages, boolmergeTextAnnots)Parameters
startPage: intThe first page number in doc to replace. The first page is 0.
doc2: DocumentThe document from which pages are copied into doc.
startPageDoc2: intThe page number of the first page in doc2 to copy. The first page is 0.
numPages: intThe number of pages to replace.
mergeTextAnnots: boolIf true, text annotations from doc2 are appended if they are different than all existing annotations on the page in doc. No other types of annotations are copied.
Returns:
voidReplaces the specified range of pages in one document with pages from another. The contents, resources, size and rotation of the pages are replaced. The bookmarks are not copied, because they are attached to the document, not to individual pages.
RetrieveCloneAsPDFADocumentSaveFlags
SaveFlagsRetrieveCloneAsPDFADocumentSaveFlags()Returns:
SaveFlagsGet the save flags returned when cloning this document as PDF/A
This method should NOT appear in the client interface!
RetrieveCloneAsPDFXDocumentSaveFlags
SaveFlagsRetrieveCloneAsPDFXDocumentSaveFlags()Returns:
SaveFlagsGet the save flags returned when cloning this document as PDF/X
This method should NOT appear in the client interface!
Save
voidSave(SaveFlagssaveFlags, CDotNetStreamFiledest)Parameters
saveFlags: SaveFlagsdest: CDotNetStreamFile
Returns:
voidSave
voidSave(SaveFlagssaveFlags, CDotNetStreamFiledest, ProgressMonitorprogressMonitor, CancelProccancelProc)Parameters
saveFlags: SaveFlagsdest: CDotNetStreamFileprogressMonitor: ProgressMonitorcancelProc: CancelProc
Returns:
voidSave
voidSave(SaveFlagsflags, System.IO.Streamstream)Parameters
flags: SaveFlagsA bit field composed of an OR of the SaveFlags values.
stream: System.IO.StreamThe Stream to which the file is saved.
Returns:
voidSaves a Document to a Stream.
The save is always performed as a full, copy save. The Document remains open with the original file.
If the document was created with Document(), at least one page must be added using CreatePage() or InsertPages() before the Document can be saved.
A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new Cos object number.
If SaveFlags.CloseAfterSave flag has been specified the document will be closed immediately after save and it won't be valid anymore. If one needs this document outside of the stream it has been saved to, one has to reopen the document and recreate all the dependent objects such as Page, Image etc.
If both SaveFlags.FULL and SaveFlags.COPY are used during saving partially or fully compressed document to the stream that SaveFlags.CLOSE_AFTER_SAVE must be specified.
It is advisable to call EmbedFonts before saving a document, in case any fonts were created automatically to support Unicode text.
Save
voidSave(SaveFlagsflags, System.IO.Streamstream, ProgressMonitorprogressMonitor, CancelProccancelProc)Parameters
flags: SaveFlagsstream: System.IO.StreamprogressMonitor: ProgressMonitorcancelProc: CancelProc
Returns:
voidSave
voidSave(SaveFlagssaveFlags)Parameters
saveFlags: SaveFlagsA bit field composed of an OR of the SaveFlags values.
Returns:
voidSaves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to the save file name.
A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written.
If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing.
Save
voidSave(SaveFlagssaveFlags, ProgressMonitorprogressMonitor, CancelProccancelProc)Parameters
saveFlags: SaveFlagsA bit field composed of an OR of the SaveFlags values.
progressMonitor: ProgressMonitora ProgressMonitor that will receive progress information, may be null
cancelProc: CancelProca CancelProc, which can return true to cancel the operation, may be null
Returns:
voidSaves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to the save file name.
A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written.
If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing.
Save
voidSave(SaveFlagssaveFlags, stringnewPath)Parameters
saveFlags: SaveFlagsA bit field composed of an OR of the SaveFlags values.
newPath: stringThe path to which the file is saved. A path must be specified when either SaveFlags.Full or SaveFlags.Copy are used for saveFlags. If SaveFlags.Incremental is specified in saveFlags, then newPath should be NULL. If SaveFlags.Full is specified and newPath is the same as the file's original path, the new file is saved to a file system-determined temporary path, then the old file is deleted and the new file is renamed to newPath.
Returns:
voidSaves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to newPath.
If the document was created with Document, at least one page must be added using CreatePage() orInsertPages() before a PDF Viewer can save the document.
A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written.
If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing.
Save
voidSave(SaveFlagssaveFlags, stringnewPath, ProgressMonitorprogressMonitor, CancelProccancelProc)Parameters
saveFlags: SaveFlagsA bit field composed of an OR of the SaveFlags values.
newPath: stringThe path to which the file is saved. A path must be specified when either SaveFlags.Full or SaveFlags.Copy are used for saveFlags. If SaveFlags.Incremental is specified in saveFlags, then newPath should be NULL. If SaveFlags.Full is specified and newPath is the same as the file's original path, the new file is saved to a file system-determined temporary path, then the old file is deleted and the new file is renamed to newPath.
progressMonitor: ProgressMonitora ProgressMonitor that will receive progress information, may be null
cancelProc: CancelProca CancelProc, which can return true to cancel the operation, may be null
Returns:
voidSaves a document to disk. If a full save is requested to the original path, the file is saved to a file system-determined temporary file, the old file is deleted, and the temporary file is renamed to newPath.
If the document was created with Document, at least one page must be added using CreatePage() orInsertPages() before a PDF Viewer can save the document.
A full save with linearization optimizes the PDF file. During optimization, all objects in a PDF file are rearranged, many of them acquiring not only a new file position, but also a new PDFObject number. At the end of the save operation, PDFL flushes its information of the PD layer and below to synchronize its in-memory state with the new disk file just written.
If the document has a signature, it will be saved incrementally regardless of the full save flag. This is required to preserve the exact contents of the document at the time of signing.
Secure
voidSecure(PermissionFlagspermissions, stringownerPassword, stringuserPassword)Parameters
permissions: PermissionFlagsan "OR" of the types of PDF document specified by Permissions:
ownerPassword: stringoptional PDF document owner password; pass null if not used.
userPassword: stringoptional PDF document user password; pass null if not used.
Returns:
voidSecure the PDF document securely with password(s).
If the document has a security handler, it is retained. If the document does not have a security handler, it is assigned the "Standard" security handler with a 16-bit encryption key length. Access permissions as well as owner and user passwords are assigned to the PDF document. This method by default encrypts PDF's content as well as its metadata. To make selective encryption use appropriate overload of Secure() method.
The document must be saved for the changes to take effect. A full save is required.
Secure
voidSecure(PermissionFlagspermissions, stringownerPassword, stringuserPassword, EncryptionTypeencryptionType)Parameters
permissions: PermissionFlagsan "OR" of the types of PDF document specified by Permissions:
ownerPassword: stringoptional PDF document owner password; pass null if not used.
userPassword: stringoptional PDF document user password; pass null if not used.
encryptionType: EncryptionTypeEncryption type to be used for securing the document.
Returns:
voidSecure the PDF document securely with password(s).
The security handler used for the document depends on the encryption type specified. Access permissions as well as owner and user passwords are assigned to the PDF document. This method by default encrypts PDF's content as well as its metadata. To make selective encryption use appropriate overload of Secure() method.
The document must be saved for the changes to take effect. A full save is required.
Secure
voidSecure(PermissionFlagspermissions, stringownerPassword, stringuserPassword, EncryptionTypeencryptionType, boolencryptMetadata)Parameters
permissions: PermissionFlagsan "OR" of the types of PDF document specified by Permissions:
ownerPassword: stringoptional PDF document owner password; pass null if not used.
userPassword: stringoptional PDF document user password; pass null if not used.
encryptionType: EncryptionTypeEncryption type to be used for securing the document.
encryptMetadata: boolA flag that indicates whether document metadata will be encrypted.
Returns:
voidSecure the PDF document securely with password(s).
The security handler used for the document depends on the encryption type specified. Access permissions as well as owner and user passwords are assigned to the PDF document. This method allows selective encryption. Depending on encryptMetadata parameter, it may or may not encrypt PDF's metadata.
The document must be saved for the changes to take effect. A full save is required.
SetInfo
voidSetInfo(stringinfoname, stringinfovalue)Parameters
infoname: stringThe name of metadata to be set
infovalue: stringThe value for metadata which will be set
Returns:
voidSets metadata information in a PDF document.
SetXMPMetadataArrayItem
voidSetXMPMetadataArrayItem(stringnamespaceName, stringnamespacePrefix, stringpath, intindex, stringnewValue)Parameters
namespaceName: stringThe XML namespace URI for the schema in which the property is to be found.
namespacePrefix: stringA brief string to be used as an abbreviation when creating the XML representation of the property. This string must not be empty.
path: stringThe name of the simple property to be modified.
index: intThe index in the metadata property array associated with the property.
newValue: stringThe new XML text value for the property.
Returns:
voidSets the value of an XMP metadata array item, associated with a document, based on an index.
SetXMPMetadataProperty
voidSetXMPMetadataProperty(stringnamespaceName, stringnamespacePrefix, stringpath, stringnewValue)Parameters
namespaceName: stringThe XML namespace URI for the schema in which the property is to be found.
namespacePrefix: stringA brief string to be used as an abbreviation when creating the XML representation of the property. This string must not be empty.
path: stringThe name of the simple property to be modified.
newValue: stringThe new XML text value for the property.
Returns:
voidSets the value of an XMP metadata property associated with a document. The XMP metadata represents all the properties in pdDoc object's Info dictionary, and can also contain properties that are not in the Info dictionary.
Unsecure
voidUnsecure()Returns:
voidRemove security handler from the PDF document.
If the document has a security handler, it is removed. If the document does not have a security handler, this method does nothing.
To remove the security handler, you must hold the PermissionRequestOperation.Secure permission, which you can obtain via Document.PermRequest. This call will throw an ApplicationException if you do not hold the Secure permission.
The document must be saved for the changes to take effect. A full save is required.
Watermark
voidWatermark(Pagepage, WatermarkParamswatermarkParams)Parameters
page: PageThe page to be added as a watermark.
watermarkParams: WatermarkParamsStructure specifying how the watermark should be added to the document.
Returns:
voidAdds a Page as a watermark to a page range in the given document.
Watermark
voidWatermark(WatermarkTextParamswatermarkTextParams, WatermarkParamswatermarkParams)Parameters
watermarkTextParams: WatermarkTextParamsStructure describing the text-based watermark to be added.
watermarkParams: WatermarkParamsStructure specifying how the watermark should be added to the document.
Returns:
voidAdds a text-based watermark to a page range in the given document.