Table of Contents

Class PdfPage

Namespace
iText.Kernel.Pdf
Assembly
itext.kernel.dll
public class PdfPage : PdfObjectWrapper<PdfDictionary>
Inheritance
PdfPage
Inherited Members

Constructors

PdfPage(PdfDictionary)

protected PdfPage(PdfDictionary pdfObject)

Parameters

pdfObject PdfDictionary

PdfPage(PdfDocument)

protected PdfPage(PdfDocument pdfDocument)

Parameters

pdfDocument PdfDocument

PdfPage(PdfDocument, PageSize)

protected PdfPage(PdfDocument pdfDocument, PageSize pageSize)

Parameters

pdfDocument PdfDocument
pageSize PageSize

Methods

AddAnnotation(int, PdfAnnotation, bool)

Adds specified PdfAnnotation to specified index in annotations array with or without autotagging.

public virtual PdfPage AddAnnotation(int index, PdfAnnotation annotation, bool tagAnnotation)

Parameters

index int

the index at which specified annotation will be added. If -1 then annotation will be added to the end of array.

annotation PdfAnnotation

the PdfAnnotation to add.

tagAnnotation bool

if true the added annotation will be autotagged.

(see GetAutoTaggingPointer() )

Returns

PdfPage

this PdfPage instance.

Remarks

Adds specified PdfAnnotation to specified index in annotations array with or without autotagging. May be used in chain.

AddAnnotation(PdfAnnotation)

Adds specified annotation to the end of annotations array and tagged it.

public virtual PdfPage AddAnnotation(PdfAnnotation annotation)

Parameters

annotation PdfAnnotation

the PdfAnnotation to add.

Returns

PdfPage

this PdfPage instance.

Remarks

Adds specified annotation to the end of annotations array and tagged it. May be used in chain.

AddAssociatedFile(string, PdfFileSpec)

Adds file associated with PDF page and identifies the relationship between them.

public virtual void AddAssociatedFile(string description, PdfFileSpec fs)

Parameters

description string

the file description

fs PdfFileSpec

file specification dictionary of associated file

Remarks

Adds file associated with PDF page and identifies the relationship between them.

Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. The method adds file to array value of the AF key in the page dictionary. If description is provided, it also will add file description to catalog Names tree.

For associated files their associated file specification dictionaries shall include the AFRelationship key

AddAssociatedFile(PdfFileSpec)

Adds file associated with PDF page and identifies the relationship between them.
public virtual void AddAssociatedFile(PdfFileSpec fs)

Parameters

fs PdfFileSpec

file specification dictionary of associated file

Remarks

Adds file associated with PDF page and identifies the relationship between them.

Associated files may be used in Pdf/A-3 and Pdf 2.0 documents. The method adds file to array value of the AF key in the page dictionary.

For associated files their associated file specification dictionaries shall include the AFRelationship key

AddOutputIntent(PdfOutputIntent)

Adds PdfOutputIntent that shall specify the colour characteristics of output devices on which the page might be rendered.

public virtual PdfPage AddOutputIntent(PdfOutputIntent outputIntent)

Parameters

outputIntent PdfOutputIntent

PdfOutputIntent to add.

Returns

PdfPage

this PdfPage object

See Also

ContainsAnnotation(PdfAnnotation)

Checks if page contains the specified annotation.

public virtual bool ContainsAnnotation(PdfAnnotation annotation)

Parameters

annotation PdfAnnotation

the PdfAnnotation to check.

Returns

bool

true if page contains specified annotation and false otherwise.

CopyAsFormXObject(PdfDocument)

Copies page as FormXObject to the specified document.

public virtual PdfFormXObject CopyAsFormXObject(PdfDocument toDocument)

Parameters

toDocument PdfDocument

a document to copy to.

Returns

PdfFormXObject

copied PdfFormXObject object.

CopyTo(PdfDocument)

Copies page to the specified document.

public virtual PdfPage CopyTo(PdfDocument toDocument)

Parameters

toDocument PdfDocument

a document to copy page to.

Returns

PdfPage

copied PdfPage.

Remarks

Copies page to the specified document.

NOTE: Works only for pages from the document opened in reading mode, otherwise an exception is thrown.

CopyTo(PdfDocument, IPdfPageExtraCopier)

Copies page to the specified document.

public virtual PdfPage CopyTo(PdfDocument toDocument, IPdfPageExtraCopier copier)

Parameters

toDocument PdfDocument

a document to copy page to.

copier IPdfPageExtraCopier

a copier which bears a special copy logic. May be null. It is recommended to use the same instance of IPdfPageExtraCopier for the same output document.

Returns

PdfPage

copied PdfPage.

Remarks

Copies page to the specified document.

NOTE: Works only for pages from the document opened in reading mode, otherwise an exception is thrown.

CopyTo(PdfDocument, IPdfPageExtraCopier, bool, int)

Copies page and adds it to the specified document to the end or by index if the corresponding parameter is true.

public virtual PdfPage CopyTo(PdfDocument toDocument, IPdfPageExtraCopier copier, bool addPageToDocument, int pageInsertIndex)

Parameters

toDocument PdfDocument

a document to copy page to.

copier IPdfPageExtraCopier

a copier which bears a special copy logic. May be null. It is recommended to use the same instance of IPdfPageExtraCopier for the same output document.

addPageToDocument bool

true if page should be added to document.

pageInsertIndex int

position to add the page to, if -1 page will be added to the end of the document, will be ignored if addPageToDocument is false.

Returns

PdfPage

copied PdfPage.

Remarks

Copies page and adds it to the specified document to the end or by index if the corresponding parameter is true.

NOTE: Works only for pages from the document opened in reading mode, otherwise an exception is thrown. NOTE: If both documents (from which and to which the copy is made) are tagged, you must additionally call the RecreateAcroformToProcessCopiedFields(PdfDocument) method after copying the tag structure to process copied fields, like add them to the document and merge fields with the same names.

Flush()

Flushes page dictionary, its content streams, annotations and thumb image.

public override void Flush()

Remarks

Flushes page dictionary, its content streams, annotations and thumb image.

If the page belongs to the document which is tagged, page flushing also triggers flushing of the tags, which are considered to belong to the page. The logic that defines if the given tag (structure element) belongs to the page is the following: if all the marked content references (dictionary or number references), that are the descendants of the given structure element, belong to the current page - the tag is considered to belong to the page. If tag has descendants from several pages - it is flushed, if all other pages except the current one are flushed.

Flush(bool)

Flushes page dictionary, its content streams, annotations and thumb image.

public virtual void Flush(bool flushResourcesContentStreams)

Parameters

flushResourcesContentStreams bool

if true all content streams that are rendered on this page (like form xObjects, annotation appearance streams, patterns) and also all images associated with this page will be flushed.

Remarks

Flushes page dictionary, its content streams, annotations and thumb image. If flushResourcesContentStreams is true, all content streams that are rendered on this page (like FormXObjects, annotation appearance streams, patterns) and also all images associated with this page will also be flushed.

For notes about tag structure flushing see PdfPage#flush() method.

If PdfADocument is used, flushing will be applied only if flushResourcesContentStreams is true.

Be careful with handling document in which some of the pages are flushed. Keep in mind that flushed objects are finalized and are completely written to the output stream. This frees their memory but makes it impossible to modify or read data from them. Whenever there is an attempt to modify or to fetch flushed object inner contents an exception will be thrown. Flushing is only possible for objects in the writing and stamping modes, also its possible to flush modified objects in append mode.

GetAnnotations()

Gets array of annotation dictionaries that shall contain indirect references to all annotations associated with the page.

public virtual IList<PdfAnnotation> GetAnnotations()

Returns

IList<PdfAnnotation>

the < PdfAnnotation

containing all page's annotations.

GetAnnotsSize()

Gets the number of PdfAnnotation associated with this page.

public virtual int GetAnnotsSize()

Returns

int

the int number of PdfAnnotation associated with this page.

GetArtBox()

Gets the Rectangle object specified by page's ArtBox, that define the extent of the page’s meaningful content (including potential white space) as intended by the page’s creator.

public virtual Rectangle GetArtBox()

Returns

Rectangle

the Rectangle object specified by page's ArtBox, expressed in default user space units. CropBox by default.

GetAssociatedFiles(bool)

Returns files associated with PDF page.

public virtual PdfArray GetAssociatedFiles(bool create)

Parameters

create bool

defines whether AF arrays will be created if it doesn't exist

Returns

PdfArray

associated files array

GetBleedBox()

Gets the Rectangle object specified by page's BleedBox, that define the region to which the contents of the page shall be clipped when output in a production environment.

public virtual Rectangle GetBleedBox()

Returns

Rectangle

the Rectangle object specified by page's BleedBox, expressed in default user space units. CropBox by default.

GetContentBytes()

Get decoded bytes for the whole page content.

public virtual byte[] GetContentBytes()

Returns

byte[]

byte array.

GetContentStream(int)

Gets the content stream at specified 0-based index in the Contents object PdfArray.

public virtual PdfStream GetContentStream(int index)

Parameters

index int

the int index of returned PdfStream.

Returns

PdfStream

PdfStream object at specified index; will return null in case page dictionary doesn't adhere to the specification, meaning that the document is an invalid PDF.

Remarks

Gets the content stream at specified 0-based index in the Contents object PdfArray. The situation when Contents object is a PdfStream is treated like a one element array.

GetContentStreamCount()

Gets the size of Contents object PdfArray.

public virtual int GetContentStreamCount()

Returns

int

the int size of Contents object, or 1 if Contents object is a PdfStream.

Remarks

Gets the size of Contents object PdfArray. The situation when Contents object is a PdfStream is treated like a one element array.

GetCropBox()

Gets the Rectangle specified by page's CropBox, that defines the visible region of default user space.

public virtual Rectangle GetCropBox()

Returns

Rectangle

the Rectangle object specified by pages's CropBox, expressed in default user space units. MediaBox by default.

Remarks

Gets the Rectangle specified by page's CropBox, that defines the visible region of default user space. When the page is displayed or printed, its contents shall be clipped (cropped) to this rectangle and then shall be imposed on the output medium in some implementation-defined manner.

GetDocument()

Gets the PdfDocument that owns that page, or null if such document isn't exist.

public virtual PdfDocument GetDocument()

Returns

PdfDocument

PdfDocument that owns that page, or null if such document isn't exist.

GetFirstContentStream()

Returns the Contents object if it is PdfStream , or first stream in the array if it is PdfArray.

public virtual PdfStream GetFirstContentStream()

Returns

PdfStream

first PdfStream in Contents object, or null if Contents is empty.

GetLastContentStream()

Returns the Contents object if it is PdfStream , or last stream in the array if it is PdfArray.

public virtual PdfStream GetLastContentStream()

Returns

PdfStream

first PdfStream in Contents object, or null if Contents is empty.

GetMediaBox()

Gets Rectangle object specified by page's Media Box, that defines the boundaries of the physical medium on which the page shall be displayed or printed

public virtual Rectangle GetMediaBox()

Returns

Rectangle

Rectangle object specified by page Media Box, expressed in default user space units.

GetNextMcid()

Calculates and returns the next available for this page's content stream MCID reference.

public virtual int GetNextMcid()

Returns

int

calculated MCID reference.

GetOutlines(bool)

This method gets outlines of a current page

public virtual IList<PdfOutline> GetOutlines(bool updateOutlines)

Parameters

updateOutlines bool

if the flag is true , the method reads the whole document and creates outline tree. If the flag is false , the method gets cached outline tree (if it was cached via calling getOutlines method before).

Returns

IList<PdfOutline>

return all outlines of a current page

GetPageSize()

Gets page size, defined by media box object.

public virtual Rectangle GetPageSize()

Returns

Rectangle

Rectangle that specify page size.

Remarks

Gets page size, defined by media box object. This method doesn't take page rotation into account.

GetPageSizeWithRotation()

Gets page size, considering page rotation.

public virtual Rectangle GetPageSizeWithRotation()

Returns

Rectangle

Rectangle that specify size of rotated page.

GetResources()

Gets the PdfResources wrapper object for this page resources.

public virtual PdfResources GetResources()

Returns

PdfResources

PdfResources wrapper of the page.

Remarks

Gets the PdfResources wrapper object for this page resources. If page doesn't have resource object, then it will be inherited from page's parents. If neither parents nor page has the resource object, then the new one is created and added to page dictionary.

NOTE: If you'll try to modify the inherited resources, then the new resources object will be created, so you won't change the parent's resources. This new object under the wrapper will be added to page dictionary on Flush() , or you can add it manually with this line, if needed:
getPdfObject().put(PdfName.Resources, getResources().getPdfObject());

GetRotation()

Gets the number of degrees by which the page shall be rotated clockwise when displayed or printed.

public virtual int GetRotation()

Returns

int

int number of degrees. Default value: 0

Remarks

Gets the number of degrees by which the page shall be rotated clockwise when displayed or printed. Shall be a multiple of 90.

GetStreamBytes(int)

Gets decoded bytes of a certain stream of a page content.

public virtual byte[] GetStreamBytes(int index)

Parameters

index int

index of stream inside Content.

Returns

byte[]

byte array.

GetStructParentIndex()

Gets the key of the page’s entry in the structural parent tree.

public virtual int GetStructParentIndex()

Returns

int

the key of the page’s entry in the structural parent tree. If page has no entry in the structural parent tree, returned value is -1.

GetTabOrder()

Gets a name specifying the tab order that shall be used for annotations on the page.

public virtual PdfName GetTabOrder()

Returns

PdfName

a PdfName specifying the annotations tab order or null if tab order is not defined.

Remarks

Gets a name specifying the tab order that shall be used for annotations on the page. The possible values are R (row order), C (column order), and S (structure order). Beginning with PDF 2.0, the possible values also include A (annotations array order) and W (widget order). See ISO 32000 12.5, "Annotations" for details.

GetThumbnailImage()

Sets a stream object that shall define the page’s thumbnail image.

public virtual PdfImageXObject GetThumbnailImage()

Returns

PdfImageXObject

the thumbnail image, or null if it is not present

Remarks

Sets a stream object that shall define the page’s thumbnail image. Thumbnail images represent the contents of its pages in miniature form

GetTrimBox()

Gets the Rectangle object specified by page's TrimBox object, that define the intended dimensions of the finished page after trimming.

public virtual Rectangle GetTrimBox()

Returns

Rectangle

the Rectangle object specified by page's TrimBox, expressed in default user space units. CropBox by default.

GetXmpMetadata()

Gets the XMP Metadata object.

public virtual PdfStream GetXmpMetadata()

Returns

PdfStream

PdfStream object, that represent XMP Metadata.

IsIgnorePageRotationForContent()

public virtual bool IsIgnorePageRotationForContent()

Returns

bool

true - if in case the page has a rotation, then new content will be automatically rotated in the opposite direction. On the rotated page this would look like if new content ignores page rotation.

IsPageRotationInverseMatrixWritten()

This flag is meaningful for the case, when page rotation is applied and ignorePageRotationForContent is set to true.

public virtual bool IsPageRotationInverseMatrixWritten()

Returns

bool

true, if inverse matrix is already applied, false otherwise.

Remarks

This flag is meaningful for the case, when page rotation is applied and ignorePageRotationForContent is set to true. NOTE: It is needed for the internal usage.

This flag defines if inverse matrix (which rotates content into the opposite direction from page rotation direction in order to give the impression of the not rotated text) is already applied to the page content stream. See SetIgnorePageRotationForContent(bool)

IsWrappedObjectMustBeIndirect()

protected override bool IsWrappedObjectMustBeIndirect()

Returns

bool

NewContentStreamAfter()

Creates new PdfStream object and puts it at the end of Contents array (if Contents object is PdfStream it will be replaced with one-element array).

public virtual PdfStream NewContentStreamAfter()

Returns

PdfStream

Created PdfStream object.

NewContentStreamBefore()

Creates new PdfStream object and puts it at the beginning of Contents array (if Contents object is PdfStream it will be replaced with one-element array).

public virtual PdfStream NewContentStreamBefore()

Returns

PdfStream

Created PdfStream object.

Put(PdfName, PdfObject)

Helper method that associates specified value with the specified key in the underlying PdfDictionary.

public virtual PdfPage Put(PdfName key, PdfObject value)

Parameters

key PdfName

the PdfName key with which the specified value is to be associated

value PdfObject

the PdfObject value to be associated with the specified key.

Returns

PdfPage

this PdfPage object.

Remarks

Helper method that associates specified value with the specified key in the underlying PdfDictionary . Can be used in method chaining.

Remove(PdfName)

Helper method that removes the value associated with the specified key from the underlying PdfDictionary.

public virtual PdfPage Remove(PdfName key)

Parameters

key PdfName

the PdfName key for which associated value is to be removed

Returns

PdfPage

this PdfPage object

Remarks

Helper method that removes the value associated with the specified key from the underlying PdfDictionary . Can be used in method chaining.

RemoveAnnotation(PdfAnnotation)

Removes an annotation from the page.

public virtual PdfPage RemoveAnnotation(PdfAnnotation annotation)

Parameters

annotation PdfAnnotation

an annotation to be removed

Returns

PdfPage

this PdfPage instance.

Remarks

Removes an annotation from the page.

When document is tagged a corresponding logical structure content item for this annotation will be removed; its immediate structure element parent will be removed as well if the following conditions are met: annotation content item was its single child and structure element role is either Annot or Form.

RemoveAnnotation(PdfAnnotation, bool)

Removes an annotation from the page.

public virtual PdfPage RemoveAnnotation(PdfAnnotation annotation, bool rememberTagPointer)

Parameters

annotation PdfAnnotation

an annotation to be removed

rememberTagPointer bool

if set to true, the GetAutoTaggingPointer() instance of TagTreePointer will be moved to the parent of the removed annotation tag. Can be used to add a new annotation to the same place in the tag structure. (E.g. when merged Acroform field is split into a field and a pure widget, the page annotation needs to be replaced by the new one)

Returns

PdfPage

this PdfPage instance.

Remarks

Removes an annotation from the page.

When document is tagged a corresponding logical structure content item for this annotation will be removed; its immediate structure element parent will be removed as well if the following conditions are met: annotation content item was its single child and structure element role is either Annot or Form.

SetAdditionalAction(PdfName, PdfAction)

Helper method to add an additional action to this page.

public virtual PdfPage SetAdditionalAction(PdfName key, PdfAction action)

Parameters

key PdfName

a PdfName specifying the name of an additional action

action PdfAction

the PdfAction to add as an additional action

Returns

PdfPage

this PdfPage instance.

Remarks

Helper method to add an additional action to this page. May be used in chain.

SetArtBox(Rectangle)

Sets the ArtBox object, that define the extent of the page’s meaningful content (including potential white space) as intended by the page’s creator.

public virtual PdfPage SetArtBox(Rectangle rectangle)

Parameters

rectangle Rectangle

the Rectangle object to set, expressed in default user space units.

Returns

PdfPage

this PdfPage instance.

SetBleedBox(Rectangle)

Sets the BleedBox object, that defines the region to which the contents of the page shall be clipped when output in a production environment.

public virtual PdfPage SetBleedBox(Rectangle rectangle)

Parameters

rectangle Rectangle

the Rectangle object to set, expressed in default user space units.

Returns

PdfPage

this PdfPage instance.

SetCropBox(Rectangle)

Sets the CropBox object, that defines the visible region of default user space.

public virtual PdfPage SetCropBox(Rectangle rectangle)

Parameters

rectangle Rectangle

the Rectangle object to set, expressed in default user space units.

Returns

PdfPage

this PdfPage instance.

Remarks

Sets the CropBox object, that defines the visible region of default user space. When the page is displayed or printed, its contents shall be clipped (cropped) to this rectangle and then shall be imposed on the output medium in some implementation-defined manner.

SetIgnorePageRotationForContent(bool)

If true - defines that in case the page has a rotation, then new content will be automatically rotated in the opposite direction.

public virtual PdfPage SetIgnorePageRotationForContent(bool ignorePageRotationForContent)

Parameters

ignorePageRotationForContent bool
  • true to ignore rotation of the new content on the rotated page.

Returns

PdfPage

this PdfPage instance.

Remarks

If true - defines that in case the page has a rotation, then new content will be automatically rotated in the opposite direction. On the rotated page this would look like if new content ignores page rotation. Default value - false.

SetMediaBox(Rectangle)

Sets the Media Box object, that defines the boundaries of the physical medium on which the page shall be displayed or printed.

public virtual PdfPage SetMediaBox(Rectangle rectangle)

Parameters

rectangle Rectangle

the Rectangle object to set, expressed in default user space units.

Returns

PdfPage

this PdfPage instance.

SetPageLabel(PageLabelNumberingStyle?, string)

This method adds or replaces a page label.

public virtual PdfPage SetPageLabel(PageLabelNumberingStyle? numberingStyle, string labelPrefix)

Parameters

numberingStyle PageLabelNumberingStyle?

The numbering style that shall be used for the numeric portion of each page label. May be NULL

labelPrefix string

The label prefix for page labels in this range. May be NULL

Returns

PdfPage

this PdfPage instance.

SetPageLabel(PageLabelNumberingStyle?, string, int)

This method adds or replaces a page label.

public virtual PdfPage SetPageLabel(PageLabelNumberingStyle? numberingStyle, string labelPrefix, int firstPage)

Parameters

numberingStyle PageLabelNumberingStyle?

The numbering style that shall be used for the numeric portion of each page label. May be NULL

labelPrefix string

The label prefix for page labels in this range. May be NULL

firstPage int

The value of the numeric portion for the first page label in the range. Must be greater or equal 1.

Returns

PdfPage

this PdfPage instance.

SetPageRotationInverseMatrixWritten()

NOTE: For internal usage! Use this method only if you know what you are doing.

public virtual void SetPageRotationInverseMatrixWritten()

Remarks

NOTE: For internal usage! Use this method only if you know what you are doing.

This method is called when inverse matrix (which rotates content into the opposite direction from page rotation direction in order to give the impression of the not rotated text) is applied to the page content stream. See SetIgnorePageRotationForContent(bool)

SetResources(PdfResources)

Sets PdfResources object.

public virtual PdfPage SetResources(PdfResources pdfResources)

Parameters

pdfResources PdfResources

PdfResources to set.

Returns

PdfPage

this PdfPage instance.

SetRotation(int)

Sets the page rotation.

public virtual PdfPage SetRotation(int degAngle)

Parameters

degAngle int

the int number of degrees by which the page shall be rotated clockwise when displayed or printed. Shall be a multiple of 90.

Returns

PdfPage

this PdfPage instance.

SetTabOrder(PdfName)

Sets a name specifying the tab order that shall be used for annotations on the page.

public virtual PdfPage SetTabOrder(PdfName tabOrder)

Parameters

tabOrder PdfName

a PdfName specifying the annotations tab order. See method description for the allowed values.

Returns

PdfPage

this PdfPage instance.

Remarks

Sets a name specifying the tab order that shall be used for annotations on the page. The possible values are R (row order), C (column order), and S (structure order). Beginning with PDF 2.0, the possible values also include A (annotations array order) and W (widget order). See ISO 32000 12.5, "Annotations" for details.

SetThumbnailImage(PdfImageXObject)

Sets a stream object that shall define the page’s thumbnail image.

public virtual PdfPage SetThumbnailImage(PdfImageXObject thumb)

Parameters

thumb PdfImageXObject

the thumbnail image

Returns

PdfPage

this PdfPage object

Remarks

Sets a stream object that shall define the page’s thumbnail image. Thumbnail images represent the contents of its pages in miniature form

SetTrimBox(Rectangle)

Sets the TrimBox object, that define the intended dimensions of the finished page after trimming.

public virtual PdfPage SetTrimBox(Rectangle rectangle)

Parameters

rectangle Rectangle

the Rectangle object to set, expressed in default user space units.

Returns

PdfPage

this PdfPage instance.

SetXmpMetadata(byte[])

Sets the XMP Metadata.

public virtual PdfPage SetXmpMetadata(byte[] xmpMetadata)

Parameters

xmpMetadata byte[]

the byte[] of XMP Metadata to set.

Returns

PdfPage

this PdfPage instance.

SetXmpMetadata(XMPMeta)

Serializes XMP Metadata to byte array and sets it.

public virtual PdfPage SetXmpMetadata(XMPMeta xmpMeta)

Parameters

xmpMeta XMPMeta

the XMPMeta object to set.

Returns

PdfPage

this PdfPage instance.

Remarks

Serializes XMP Metadata to byte array and sets it. Uses padding equals to 2000.

SetXmpMetadata(XMPMeta, SerializeOptions)

Serializes XMP Metadata to byte array and sets it.

public virtual PdfPage SetXmpMetadata(XMPMeta xmpMeta, SerializeOptions serializeOptions)

Parameters

xmpMeta XMPMeta

the XMPMeta object to set.

serializeOptions SerializeOptions

the SerializeOptions used while serialization.

Returns

PdfPage

this PdfPage instance.