public class Page extends Dictionary
This class represents the leaves of a PageTree object known
as Page class. The page dictionary specifies attributes
of the single page of the document. Many of the page's attributes are
inherited from the page tree dictionary if not specified in the page
dictionary.
The page object also provides a method which will extract a page's content,
such as text and images. The paint method is the core of
the ICEpdf renderer, allowing page content to be painted to any Java graphics
context.
Page objects in a PDF document have different boundaries defined which govern various aspects of the pre-press process, such as cropping, bleed, and trimming. Facilities for including printer's marks, such a registration targets, gray ramps color bars, and cut marks which assist in the production process. When getting a page's size, the default boundary used is the crop box which is what most viewer applications should use. However, if your application requires the use of different page boundaries, they can be specified when using the getSize or paint methods. If in doubt, always use the crop box constant.
PageTree| Modifier and Type | Field and Description |
|---|---|
static Name |
ANNOTS_KEY |
static Name |
ARTBOX_KEY |
static Name |
BLEEDBOX_KEY |
static int |
BOUNDARY_ARTBOX
Defines the extent of the page's meaningful content as intended by the
page's creator.
|
static int |
BOUNDARY_BLEEDBOX
Defines the region to which the contents of the page should be clipped
when output in a production environment (Mainly commercial printing).
|
static int |
BOUNDARY_CROPBOX
Defines the visible region of the default user space.
|
static int |
BOUNDARY_MEDIABOX
Defines the boundaries of the physical medium on which the page is
intended to be displayed or printed.
|
static int |
BOUNDARY_TRIMBOX
Defines the intended dimensions of the finished page after trimming.
|
static Name |
CONTENTS_KEY |
static Name |
CROPBOX_KEY |
static java.awt.Color |
highlightColor |
static Name |
MEDIABOX_KEY |
static Name |
PARENT_KEY |
static Name |
RESOURCES_KEY |
static Name |
ROTATE_KEY |
static float |
selectionAlpha
Transparency value used to simulate text highlighting.
|
static java.awt.Color |
selectionColor |
static Name |
THUMB_KEY |
static Name |
TRIMBOX_KEY |
static Name |
TYPE |
entries, FORM_TYPE_KEY, inited, isDeleted, isNew, LENGTH_KEY, library, SUBTYPE_KEY, TYPE_KEY| Constructor and Description |
|---|
Page(Library l,
java.util.HashMap h)
Create a new Page object.
|
| Modifier and Type | Method and Description |
|---|---|
Annotation |
addAnnotation(Annotation newAnnotation)
Adds an annotation that was previously added to the document.
|
void |
addPageProcessingListener(PageLoadingListener listener) |
void |
addPaintPageListener(PaintPageListener listener) |
void |
deleteAnnotation(Annotation annot)
Deletes the specified annotation instance from his page.
|
java.util.List<Annotation> |
getAnnotations()
Gets all annotation information associated with this page.
|
java.awt.geom.Rectangle2D.Float |
getArtBox()
Gets the art box boundary defined by this page.
|
java.awt.geom.Rectangle2D.Float |
getBleedBox()
Gets the bleed box boundary defined by this page.
|
java.awt.geom.Rectangle2D.Double |
getBoundingBox(float userRotation)
Get the bounding box that the page can occupy, given the userRotation and
page's own pageRotation.
|
java.awt.geom.Rectangle2D.Double |
getBoundingBox(float userRotation,
float userZoom)
Get the bounding box that the page can occupy, given the userRotation,
userZoom, page's own pageRotation.
|
java.awt.geom.Rectangle2D.Double |
getBoundingBox(int boundary,
float userRotation,
float userZoom)
Get the bounding box that the page can occupy, given the userRotation,
userZoom, page's own pageRotation and cropBox boundary.
|
java.awt.geom.Rectangle2D.Float |
getCropBox()
Gets the crop box boundary defined by this page.
|
java.lang.String[] |
getDecodedContentSteam()
Returns the decoded content stream for this page instance.
|
int |
getImageCount()
Gets the xObject image cound for this page which does not include
any inline images.
|
java.util.List<java.awt.Image> |
getImages()
Gets a vector of Images where each index represents an image inside
this page.
|
java.awt.geom.Rectangle2D.Float |
getMediaBox()
Gets the media box boundary defined by this page.
|
PRectangle |
getPageBoundary(int specifiedBox)
Utility method for appling the page boundary rules.
|
int |
getPageIndex()
Gets the zero based page index of this page as define by the order
in the page tree.
|
java.util.List<PageLoadingListener> |
getPageLoadingListeners() |
java.awt.Shape |
getPageShape(int boundary,
float userRotation,
float userZoom)
This method returns a Shape that represents the outline of this Page,
after being rotated and zoomed.
|
java.awt.geom.AffineTransform |
getPageTransform(int boundary,
float userRotation,
float userZoom)
The Java Graphics coordinate system has the origin at the top-left
of the screen, with Y values increasing as one moves down the screen.
|
PageTree |
getParent()
Gets the page's parent page tree.
|
protected Reference |
getParentReference()
Gets a reference to the page's parent page tree.
|
Resources |
getResources() |
Shapes |
getShapes()
Gets the Shapes object associated with this Page.
|
PDimension |
getSize(float userRotation)
Get the width and height that the page can occupy, given the userRotation,
page's own pageRotation and cropBox boundary.
|
PDimension |
getSize(float userRotation,
float userZoom)
Get the width and height that the page can occupy, given the userRotation,
userZoom, page's own pageRotation and cropBox boundary.
|
PDimension |
getSize(int boundary,
float userRotation,
float userZoom)
Get the width and height that the page can occupy, given the userRotation,
userZoom, page's own pageRotation and cropBox boundary.
|
PageText |
getText()
Gest the PageText data structure for this page using an accelerated
parsing technique that ignores some text elements.
|
Thumbnail |
getThumbnail()
Gets a Thumbnail object associated with this page.
|
float |
getTotalRotation(float userRotation)
Gets the total rotation factor of the page after applying a user rotation
factor.
|
java.awt.geom.Rectangle2D.Float |
getTrimBox()
Gets the trim box boundary defined by this page.
|
PageText |
getViewText()
Gest the PageText data structure for this page.
|
void |
init()
Initialize the Page object.
|
boolean |
isInitiated() |
boolean |
isPageInitialized()
Returns true if the page is initialized, this is different then init(),
as it tracks if the page has started initialization and we don't want to
do that again, in this case the init() method has completely finished,
minus any image loading threads.
|
boolean |
isPagePainted()
Returns true if the page painting is complete regardless if it was
interrupted.
|
protected void |
notifyPageLoadingEnded() |
void |
notifyPaintPageListeners() |
void |
paint(java.awt.Graphics g,
int renderHintType,
int boundary,
float userRotation,
float userZoom)
Paints the contents of this page to the graphics context using
the specified rotation, zoom, rendering hints and page boundary.
|
void |
paint(java.awt.Graphics g,
int renderHintType,
int boundary,
float userRotation,
float userZoom,
boolean paintAnnotations,
boolean paintSearchHighlight)
Paints the contents of this page to the graphics context using
the specified rotation, zoom, rendering hints and page boundary.
|
void |
paintPageContent(java.awt.Graphics g,
int renderHintType,
float userRotation,
float userZoom,
boolean paintAnnotations,
boolean paintSearchHighlight)
Paints the contents of this page to the graphics context using
the specified rotation, zoom, rendering hints.
|
void |
removePageProcessingListener(PageLoadingListener listener) |
void |
removePaintPageListener(PaintPageListener listener) |
void |
requestInterrupt() |
void |
resetInitializedState()
Reset the pages initialized flag and as a result subsequent calls to
this page may trigger a call to init().
|
protected void |
setPageIndex(int pageIndex) |
void |
setPObjectReference(Reference reference)
Sets the reference used to identify this Dictionary in the PDF document.
|
void |
setWatermarkCallback(WatermarkCallback watermarkCallback)
Sets a page watermark implementation to be painted on top of the page
content.
|
java.lang.String |
toString()
Returns a summary of the page dictionary entries.
|
boolean |
updateAnnotation(Annotation annotation)
Updates the annotation associated with this page.
|
getEntries, getFloat, getInt, getLibrary, getNumber, getObject, getPObjectReference, isDeleted, isNew, setDeleted, setNewpublic static final float selectionAlpha
public static java.awt.Color selectionColor
public static java.awt.Color highlightColor
public static final Name TYPE
public static final Name ANNOTS_KEY
public static final Name CONTENTS_KEY
public static final Name RESOURCES_KEY
public static final Name THUMB_KEY
public static final Name PARENT_KEY
public static final Name ROTATE_KEY
public static final Name MEDIABOX_KEY
public static final Name CROPBOX_KEY
public static final Name ARTBOX_KEY
public static final Name BLEEDBOX_KEY
public static final Name TRIMBOX_KEY
public static final int BOUNDARY_MEDIABOX
public static final int BOUNDARY_CROPBOX
public static final int BOUNDARY_BLEEDBOX
public static final int BOUNDARY_TRIMBOX
public static final int BOUNDARY_ARTBOX
public Page(Library l, java.util.HashMap h)
l - pointer to default library containing all document objectsh - HashMap containing all of the dictionary entriespublic boolean isInitiated()
public void setPObjectReference(Reference reference)
DictionarySets the reference used to identify this Dictionary in the PDF document. The reference number and generation number of this reference is needed by the encryption algorithm to correctly decrypt this object.
This method should only be used by the PDF Parser. Use of this method outside the context of the PDF Parser may result in unpredictable behavior.
setPObjectReference in class Dictionaryreference - Reference used to identify this Dictionary in the PDF
document.Dictionary.getPObjectReference()public void resetInitializedState()
public void init()
init in class Dictionarypublic Thumbnail getThumbnail()
public void requestInterrupt()
public void setWatermarkCallback(WatermarkCallback watermarkCallback)
watermarkCallback - watermark implementation.public void paint(java.awt.Graphics g,
int renderHintType,
int boundary,
float userRotation,
float userZoom)
g - graphics context to which the page content will be painted.renderHintType - Constant specified by the GraphicsRenderingHints class.
There are two possible entries, SCREEN and PRINT, each with configurable
rendering hints settings.boundary - Constant specifying the page boundary to use when
painting the page content.userRotation - Rotation factor, in degrees, to be applied to the rendered pageuserZoom - Zoom factor to be applied to the rendered pagepublic void paint(java.awt.Graphics g,
int renderHintType,
int boundary,
float userRotation,
float userZoom,
boolean paintAnnotations,
boolean paintSearchHighlight)
g - graphics context to which the page content will be painted.renderHintType - Constant specified by the GraphicsRenderingHints class.
There are two possible entries, SCREEN and PRINT, each with configurable
rendering hints settings.boundary - Constant specifying the page boundary to use when
painting the page content.userRotation - Rotation factor, in degrees, to be applied to the rendered pageuserZoom - Zoom factor to be applied to the rendered pagepaintAnnotations - true enables the painting of page annotations. False
paints no annotations for a given page.paintSearchHighlight - true enables the painting of search highlight
state of text object. The search controller can
be used to easily search and add highlighted state
for search terms.public void paintPageContent(java.awt.Graphics g,
int renderHintType,
float userRotation,
float userZoom,
boolean paintAnnotations,
boolean paintSearchHighlight)
g - graphics context to which the page content will be painted.renderHintType - Constant specified by the GraphicsRenderingHints class.
There are two possible entries, SCREEN and PRINT, each with configurable
rendering hints settings.userRotation - Rotation factor, in degrees, to be applied to the rendered pageuserZoom - Zoom factor to be applied to the rendered pagepaintAnnotations - true enables the painting of page annotations. False
paints no annotations for a given page.paintSearchHighlight - true enables the painting of search highlight
state of text object. The search controller can
be used to easily search and add highlighted state
for search terms.public java.awt.geom.AffineTransform getPageTransform(int boundary,
float userRotation,
float userZoom)
boundary - Constant specifying the page boundary to use when
painting the page content.userRotation - Rotation factor, in degrees, to be applied to the rendered pageuserZoom - Zoom factor to be applied to the rendered pagepublic java.awt.Shape getPageShape(int boundary,
float userRotation,
float userZoom)
boundary - Constant specifying the page boundary to useuserRotation - Rotation factor, in degrees, to be applieduserZoom - Zoom factor to be appliedpublic Annotation addAnnotation(Annotation newAnnotation)
newAnnotation - annotation object to addpublic void deleteAnnotation(Annotation annot)
public boolean updateAnnotation(Annotation annotation)
annotation - annotation object that should be updated for this page.protected Reference getParentReference()
Librarypublic PageTree getParent()
public PDimension getSize(float userRotation)
userRotation - Rotation factor specified by the user under which the
page will be rotated.getSize(float, float)public PDimension getSize(float userRotation, float userZoom)
userRotation - rotation factor specified by the user under which the
page will be rotated.userZoom - zoom factor specifed by the user under which the page will
be rotated.public PDimension getSize(int boundary, float userRotation, float userZoom)
boundary - boundary constant to specify which boundary to respect when
calculating the page's size.userRotation - rotation factor specified by the user under which the
page will be rotated.userZoom - zoom factor specified by the user under which the page will
be rotated.public java.awt.geom.Rectangle2D.Double getBoundingBox(float userRotation)
userRotation - Rotation factor specified by the user under which the
page will be rotated.getSize(float, float)public java.awt.geom.Rectangle2D.Double getBoundingBox(float userRotation,
float userZoom)
userRotation - rotation factor specified by the user under which the
page will be rotated.userZoom - zoom factor specified by the user under which the page will
be rotated.public java.awt.geom.Rectangle2D.Double getBoundingBox(int boundary,
float userRotation,
float userZoom)
boundary - boundary constant to specify which boundary to respect when
calculating the page's size.userRotation - rotation factor specified by the user under which the
page will be rotated.userZoom - zoom factor specified by the user under which the page will
be rotated.public PRectangle getPageBoundary(int specifiedBox)
specifiedBox - page boundary constantpublic java.lang.String toString()
toString in class Dictionarypublic float getTotalRotation(float userRotation)
userRotation - rotation factor to be applied to pagepublic java.util.List<Annotation> getAnnotations()
public java.lang.String[] getDecodedContentSteam()
public java.awt.geom.Rectangle2D.Float getMediaBox()
public java.awt.geom.Rectangle2D.Float getCropBox()
public java.awt.geom.Rectangle2D.Float getArtBox()
public java.awt.geom.Rectangle2D.Float getBleedBox()
public java.awt.geom.Rectangle2D.Float getTrimBox()
public PageText getViewText()
public Shapes getShapes()
public PageText getText() throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic int getPageIndex()
public int getImageCount()
public boolean isPageInitialized()
public boolean isPagePainted()
protected void setPageIndex(int pageIndex)
public java.util.List<java.awt.Image> getImages()
public Resources getResources()
public void addPaintPageListener(PaintPageListener listener)
public void removePaintPageListener(PaintPageListener listener)
public java.util.List<PageLoadingListener> getPageLoadingListeners()
public void addPageProcessingListener(PageLoadingListener listener)
public void removePageProcessingListener(PageLoadingListener listener)
protected void notifyPageLoadingEnded()
public void notifyPaintPageListeners()