PdfRenderer.Page
  public
  
  final
  
  class
  PdfRenderer.Page
  
    extends Object
  
  
  
  
  
      implements
      
        AutoCloseable
      
  
  
| java.lang.Object | |
| ↳ | android.graphics.pdf.PdfRenderer.Page | 
This class represents a PDF document page for rendering.
Summary
| Constants | |
|---|---|
| int | RENDER_MODE_FOR_DISPLAYMode to render the content for display on a screen. | 
| int | RENDER_MODE_FOR_PRINTMode to render the content for printing. | 
| Public methods | |
|---|---|
| 
        
        
        
        
        
        int | 
      addPageAnnotation(PdfAnnotation annotation)
      Adds the given annotation to the page. | 
| 
        
        
        
        
        
        int | 
      addPageObject(PdfPageObject pageObject)
      Adds the given  | 
| 
        
        
        
        
        
        List<Rect> | 
      applyEdit(FormEditRecord editRecord)
      Applies a  | 
| 
        
        
        
        
        
        void | 
      close()
      Closes this page. | 
| 
        
        
        
        
        
        FormWidgetInfo | 
      getFormWidgetInfoAtIndex(int widgetIndex)
      Returns information about the widget with  | 
| 
        
        
        
        
        
        FormWidgetInfo | 
      getFormWidgetInfoAtPosition(int x, int y)
      Returns information about the widget at the given point. | 
| 
        
        
        
        
        
        List<FormWidgetInfo> | 
      getFormWidgetInfos()
      Returns information about all form widgets on the page, or an empty list if there are no form widgets on the page. | 
| 
        
        
        
        
        
        List<FormWidgetInfo> | 
      getFormWidgetInfos(int[] types)
      Returns information about all form widgets of the specified types on the page, or an empty list if there are no form widgets of the specified types on the page. | 
| 
        
        
        
        
        
        List<PdfPageGotoLinkContent> | 
      getGotoLinks()
      Gets bookmarks and goto links present on the page of a pdf document. | 
| 
        
        
        
        
        
        int | 
      getHeight()
      Returns the height of the  | 
| 
        
        
        
        
        
        List<PdfPageImageContent> | 
      getImageContents()
      Return list of  | 
| 
        
        
        
        
        
        int | 
      getIndex()
      Gets the page index. | 
| 
        
        
        
        
        
        List<PdfPageLinkContent> | 
      getLinkContents()
      Get the bounds and URLs of all the links on the page. | 
| 
        
        
        
        
        
        List<Pair<Integer, PdfAnnotation>> | 
      getPageAnnotations()
      Returns a list of pairs, where each pair consists of a supported  | 
| 
        
        
        
        
        
        List<Pair<Integer, PdfPageObject>> | 
      getPageObjects()
      Returns  | 
| 
        
        
        
        
        
        List<PdfPageTextContent> | 
      getTextContents()
      Return list of  | 
| 
        
        
        
        
        
        Pair<Integer, PdfPageObject> | 
      getTopPageObjectAtPosition(PointF point, int[] types)
      Retrieves the top-most page object at a specified position. | 
| 
        
        
        
        
        
        int | 
      getWidth()
      Returns the width of the  | 
| 
        
        
        
        
        
        void | 
      removePageAnnotation(int annotationId)
      Removes the annotation with the specified id. | 
| 
        
        
        
        
        
        void | 
      removePageObject(int objectId)
      Removes the  | 
| 
        
        
        
        
        
        void | 
      render(Bitmap destination, Rect destClip, Matrix transform, RenderParams params)
      Renders a page to a bitmap. | 
| 
        
        
        
        
        
        void | 
      render(Bitmap destination, Rect destClip, Matrix transform, int renderMode)
      Renders a page to a bitmap. | 
| 
        
        
        
        
        
        List<PageMatchBounds> | 
      searchText(String query)
      Search for the given string on the page and returns the bounds of all the matches. | 
| 
        
        
        
        
        
        PageSelection | 
      selectContent(SelectionBoundary start, SelectionBoundary stop)
      Return a  | 
| 
        
        
        
        
        
        boolean | 
      updatePageAnnotation(int annotationId, PdfAnnotation annotation)
      Update the given  | 
| 
        
        
        
        
        
        boolean | 
      updatePageObject(int objectId, PdfPageObject pageObject)
      Update the given  | 
| Protected methods | |
|---|---|
| 
        
        
        
        
        
        void | 
      finalize()
      Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | 
| Inherited methods | |
|---|---|
Constants
RENDER_MODE_FOR_DISPLAY
public static final int RENDER_MODE_FOR_DISPLAY
Mode to render the content for display on a screen.
Constant Value: 1 (0x00000001)
RENDER_MODE_FOR_PRINT
public static final int RENDER_MODE_FOR_PRINT
Mode to render the content for printing.
Constant Value: 2 (0x00000002)
Public methods
addPageAnnotation
public int addPageAnnotation (PdfAnnotation annotation)
Adds the given annotation to the page. The annotation should be of supported type.
 See PdfAnnotationType for the supported types
 
 PdfRenderer.write needs to be called to get the updated PDF stream
 after calling this method. PdfRenderer.Page instance can be closed before
 calling PdfRenderer.write.
| Parameters | |
|---|---|
| annotation | PdfAnnotation: thePdfAnnotationobject to add
 This value cannot benull. | 
| Returns | |
|---|---|
| int | id of the added annotation, or -1 if the annotation cannot be added. The id is guaranteed to be non-negative if the annotation is added successfully. Value is -1 or greater | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provided annotation is of unsupported
                                  type i.e.- PdfAnnotationType.UNKNOWNor if
                                  the add operation failed. | 
| IllegalStateException | if PdfRendererorPdfRenderer.Pageis closed before invocation. | 
addPageObject
public int addPageObject (PdfPageObject pageObject)
Adds the given PdfPageObject to the page.
 
 PdfRenderer.write needs to be called to get the updated PDF stream after calling
 this method. PdfRenderer.Page instance can be closed before calling
 PdfRenderer.write.
| Parameters | |
|---|---|
| pageObject | PdfPageObject: thePdfPageObjectobject to add.
 This value cannot benull. | 
| Returns | |
|---|---|
| int | id of the added page object, or -1 if the page object cannot be added. The id is guaranteed to be non-negative if the page object is added successfully. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provided PdfPageObjectis of
                                  unsupported type i.e.PdfPageObjectType.UNKNOWNor if the add operation failed. | 
| IllegalStateException | if the PdfRenderer.Pageis closed before
                                  invocation. | 
applyEdit
public List<Rect> applyEdit (FormEditRecord editRecord)
Applies a FormEditRecord to the PDF.
 
Apps must call render(android.graphics.Bitmap, android.graphics.Rect, android.graphics.Matrix, android.graphics.pdf.RenderParams) to render new
 bitmaps for the corresponding areas of the page.
 
For click type FormEditRecords, performs a click on FormEditRecord.getClickPoint()
 
For set text type FormEditRecords, sets the text value of the form widget.
 
For set indices type FormEditRecords, sets the FormEditRecord.getSelectedIndices() as selected and all others as unselected for the
 form widget indicated by the record.
| Parameters | |
|---|---|
| editRecord | FormEditRecord: theFormEditRecordto be applied
 This value cannot benull. | 
| Returns | |
|---|---|
| List<Rect> | Rectangular areas of the page bitmap that have been invalidated by this action.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provided FormEditRecordcannot be
                                  applied to the widget indicated by the index, or if the
                                  index does not correspond to a widget on the page. | 
| IllegalStateException | If the document is already closed. | 
| IllegalStateException | If the page is already closed. | 
getFormWidgetInfoAtIndex
public FormWidgetInfo getFormWidgetInfoAtIndex (int widgetIndex)
Returns information about the widget with widgetIndex.
| Parameters | |
|---|---|
| widgetIndex | int: the index of the widget within the page's widget annotations array in
                    the PDF document, available on results of previous calls togetFormWidgetInfos(int[])orgetFormWidgetInfoAtPosition(int, int)viaFormWidgetInfo.getWidgetIndex().
 Value is 0 or greater | 
| Returns | |
|---|---|
| FormWidgetInfo | This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if there is no form widget at the provided index. | 
| IllegalStateException | if the renderer or page is closed | 
getFormWidgetInfoAtPosition
public FormWidgetInfo getFormWidgetInfoAtPosition (int x, int y)
Returns information about the widget at the given point.
| Parameters | |
|---|---|
| x | int: the x position of the widget on the page, in points | 
| y | int: the y position of the widget on the page, in points | 
| Returns | |
|---|---|
| FormWidgetInfo | This value cannot be null. | 
| Throws | |
|---|---|
| IllegalArgumentException | if there is no form widget at the provided position. | 
| IllegalStateException | if the renderer or page is closed | 
getFormWidgetInfos
public List<FormWidgetInfo> getFormWidgetInfos ()
Returns information about all form widgets on the page, or an empty list if there are no form widgets on the page.
| Returns | |
|---|---|
| List<FormWidgetInfo> | This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if the renderer or page is closed | 
getFormWidgetInfos
public List<FormWidgetInfo> getFormWidgetInfos (int[] types)
Returns information about all form widgets of the specified types on the page, or an empty list if there are no form widgets of the specified types on the page.
| Parameters | |
|---|---|
| types | int: the types of form widgets to return, or an empty array to return all widgets
 This value cannot benull. | 
| Returns | |
|---|---|
| List<FormWidgetInfo> | This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if the renderer or page is closed | 
getGotoLinks
public List<PdfPageGotoLinkContent> getGotoLinks ()
Gets bookmarks and goto links present on the page of a pdf document. Goto Links are the internal navigation links which directs the user to different location within the same document.
| Returns | |
|---|---|
| List<PdfPageGotoLinkContent> | list of all goto links PdfPageGotoLinkContenton a page, ordered
 left to right and top to bottom.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
getHeight
public int getHeight ()
Returns the height of the PdfRenderer.Page object in points (1/72"). It is
 not guaranteed that all pages will have the same height and the viewport should be
 resized to the page height.
| Returns | |
|---|---|
| int | height of the page Value is 0 or greater | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
getImageContents
public List<PdfPageImageContent> getImageContents ()
Return list of PdfPageImageContent found on the page, ordered left to right
 and top to bottom. It contains all the content associated with images found on the
 page including alt text. The list will be empty if there are no results found.
 Currently, localisation does not have any impact on the order in which
 PdfPageImageContent is returned.
| Returns | |
|---|---|
| List<PdfPageImageContent> | list of image content found on the page.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
getIndex
public int getIndex ()
Gets the page index.
| Returns | |
|---|---|
| int | The index. Value is 0 or greater | 
getLinkContents
public List<PdfPageLinkContent> getLinkContents ()
Get the bounds and URLs of all the links on the page.
| Returns | |
|---|---|
| List<PdfPageLinkContent> | list of all links on the page.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
getPageAnnotations
public List<Pair<Integer, PdfAnnotation>> getPageAnnotations ()
Returns a list of pairs, where each pair consists of a supported PdfAnnotation
 and its corresponding ID on the specified page. ID of the annotation will be required for
 updatePageAnnotation(int, android.graphics.pdf.component.PdfAnnotation) and removePageAnnotation(int)
 and will remain same without mutate operations.
 
 The returned list will be empty if no supported annotations are present on the page,
 even if the page contains other annotation types. Refer to PdfAnnotationType for
 the supported annotation types.
| Returns | |
|---|---|
| List<Pair<Integer, PdfAnnotation>> | A list of pairs representing the supported annotations and their ids on the page.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | if PdfRendererorPdfRenderer.Pageis closed before
                               invocation. | 
getPageObjects
public List<Pair<Integer, PdfPageObject>> getPageObjects ()
Returns List of Pair objects, where each pair contains:
 - An Integer representing the object ID, which is required for
 updatePageObject(int, android.graphics.pdf.component.PdfPageObject) and removePageObject(int).
 Object ID will remain same without mutate operations.
 - A PdfPageObject representing the page object.
 
The list will be empty if there are no supported page objects present on the page, even if the page contains other page object types.
| Returns | |
|---|---|
| List<Pair<Integer, PdfPageObject>> | ListofPairobjects containingIntegerandPdfPageObject.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | if the PdfRenderer.Pageis closed before
                               invocation. | 
getTextContents
public List<PdfPageTextContent> getTextContents ()
Return list of PdfPageTextContent found on the page, ordered left to right
 and top to bottom. It contains all the content associated with text found on the page.
 The list will be empty if there are no results found. Currently, localisation does
 not have any impact on the order in which PdfPageTextContent is returned.
| Returns | |
|---|---|
| List<PdfPageTextContent> | list of text content found on the page.
 This value cannot be null. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
getTopPageObjectAtPosition
public Pair<Integer, PdfPageObject> getTopPageObjectAtPosition (PointF point, int[] types)
Retrieves the top-most page object at a specified position.
| Parameters | |
|---|---|
| point | PointF: The coordinates (as aPointF) on the page to check for page
              objects.
 This value cannot benull. | 
| types | int: An array ofERROR(/PdfPageObjectType.Type)values. Only page objects whose
              types are included in this array will be considered. If multiple matching
              objects overlap at the specified point, only the one with the highest
              z-index will be returned. The order of types within this array does not
              influence the outcome.
              If this array is empty, known supportedPdfPageObjectTypes will be
              considered.
 This value cannot benull. | 
| Returns | |
|---|---|
| Pair<Integer, PdfPageObject> | A Paircontaining:
 | 
| Throws | |
|---|---|
| IllegalStateException | if the PdfRenderer.Pageis
                               closed before invocation | 
| IllegalArgumentException | if the provided type(s) are not supported. | 
getWidth
public int getWidth ()
Returns the width of the PdfRenderer.Page object in points (1/72"). It is
 not guaranteed that all pages will have the same width and the viewport should be resized
 to the page width.
| Returns | |
|---|---|
| int | width of the page Value is 0 or greater | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
removePageAnnotation
public void removePageAnnotation (int annotationId)
Removes the annotation with the specified id.
 PdfRenderer.write needs to be called to get the updated PDF stream after calling
 this method. PdfRenderer.Page instance can be closed before calling
 PdfRenderer.write.
| Parameters | |
|---|---|
| annotationId | int: id of the annotation to remove from the page
 Value is 0 or greater | 
| Throws | |
|---|---|
| IllegalArgumentException | if annotationId is negative or invalid or if the remove operation failed. | 
| IllegalStateException | if PdfRendererorPdfRenderer.Pageis
                                  closed before invocation or if annotation is failed to
                                  get removed from the page. | 
removePageObject
public void removePageObject (int objectId)
Removes the PdfPageObject with the specified ID.
 
 PdfRenderer.write needs to be called to get the updated PDF stream after calling
 this method. PdfRenderer.Page instance can be closed before calling
 PdfRenderer.write.
| Parameters | |
|---|---|
| objectId | int: the id of the page object to remove from the page.
 Value is 0 or greater | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provided objectId is negative or invalid or if the remove operation failed. | 
| IllegalStateException | if the page object cannot be removed. | 
render
public void render (Bitmap destination, Rect destClip, Matrix transform, RenderParams params)
Renders a page to a bitmap. In case of default zoom, the Bitmap dimensions will
 be equal to the page dimensions. In this case, Rect parameter can be null.
 
In case of zoom, the Rect parameter needs to be specified which represents
 the offset from top and left for tile generation purposes. In this case, the
 Bitmap dimensions should be equal to the tile dimensions.
 
 Note: The method will take care of closing the bitmap. Should be
 invoked
 on the ERROR(/android.annotation.WorkerThread) as it is long-running task.
| Parameters | |
|---|---|
| destination | Bitmap: Destination bitmap to write to.
 This value cannot benull. | 
| destClip | Rect: If null, default zoom is applied. In case the value is non-null, the
                    value specifies the top top-left corner of the tile. | 
| transform | Matrix: Applied to scale the bitmap up/down from default 1/72 points.
 This value may benull. | 
| params | RenderParams: Render params for the changing display mode, and / or to control the
                    appearance of annotations and PDF form content
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
render
public void render (Bitmap destination, Rect destClip, Matrix transform, int renderMode)
Renders a page to a bitmap.
You may optionally specify a rectangular clip in the bitmap bounds. No rendering outside the clip will be performed, hence it is your responsibility to initialize the bitmap outside the clip.
You may optionally specify a matrix to transform the content from page coordinates which are in points (1/72") to bitmap coordinates which are in pixels. If this matrix is not provided this method will apply a transformation that will fit the whole page to the destination clip if provided or the destination bitmap if no clip is provided.
The clip and transformation are useful for implementing tile rendering where the destination bitmap contains a portion of the image, for example when zooming. Another useful application is for printing where the size of the bitmap holding the page is too large and a client can render the page in stripes.
 Note:  The destination bitmap format must be
 ARGB.
 
 Note:  The optional transformation matrix must be affine as per
 Matrix.isAffine(). Hence, you can specify
 rotation, scaling, translation but not a perspective transformation.
| Parameters | |
|---|---|
| destination | Bitmap: Destination bitmap to which to render.
 This value cannot benull. | 
| destClip | Rect: Optional clip in the bitmap bounds.
 This value may benull. | 
| transform | Matrix: Optional transformation to apply when rendering.
 This value may benull. | 
| renderMode | int: The render mode.
 Value isRENDER_MODE_FOR_DISPLAY, orRENDER_MODE_FOR_PRINT | 
searchText
public List<PageMatchBounds> searchText (String query)
Search for the given string on the page and returns the bounds of all the matches. The list will be empty if there are no matches on the page. If this function was invoked previously for any page, it will wait for that operation to complete before this operation is started.
 Note: Should be invoked on the ERROR(/android.annotation.WorkerThread)
 as it is long-running task.
| Parameters | |
|---|---|
| query | String: plain search string for querying the document
 This value cannot benull. | 
| Returns | |
|---|---|
| List<PageMatchBounds> | List of PageMatchBoundsrepresenting the bounds of each match on the
 page.
 This value cannot benull. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
selectContent
public PageSelection selectContent (SelectionBoundary start, SelectionBoundary stop)
Return a PageSelection which represents the selected content that spans between
 the two boundaries. The boundaries can be either exactly defined with text indexes, or
 approximately defined with points on the page. The resulting selection will also be
 exactly defined with both indexes and points. If the start and stop boundary are both at
 the same point, selects the word at that point. In case the selection from the given
 boundaries result in an empty space, then the method returns null. The start and
 stop SelectionBoundary in PageSelection resolves to the "nearest" index
 when returned.
 
 Note: Should be invoked on a ERROR(/android.annotation.WorkerThread)
 as it is long-running task.
| Parameters | |
|---|---|
| start | SelectionBoundary: boundary where the selection starts (inclusive)
 This value cannot benull. | 
| stop | SelectionBoundary: boundary where the selection stops (exclusive)
 This value cannot benull. | 
| Returns | |
|---|---|
| PageSelection | collection of the selected content for text, images, etc. | 
| Throws | |
|---|---|
| IllegalStateException | If the document/page is closed before invocation. | 
updatePageAnnotation
public boolean updatePageAnnotation (int annotationId, 
                PdfAnnotation annotation)Update the given PdfAnnotation to the page.
 
 Note: The PdfAnnotationType of the provided annotation must be the same as the
 original annotation being updated.
 
 PdfRenderer.write needs to be called to get the updated PDF stream after calling
 this method. PdfRenderer.Page instance can be closed before calling
 PdfRenderer.write.
| Parameters | |
|---|---|
| annotationId | int: id corresponding to which the annotation is to be updated
 Value is 0 or greater | 
| annotation | PdfAnnotation: the annotation to update
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | true if annotation is updated, false otherwise | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provided annotation is of
                                  unsupported type i.e. PdfAnnotationType.UNKNOWNor if the provided annotationId is negative or
                                  ifPdfAnnotationTypeof the provided annotation
                                  is different from the original annotation's type | 
| IllegalStateException | if PdfRendererorPdfRenderer.Pageis
                                  closed before invocation | 
updatePageObject
public boolean updatePageObject (int objectId, 
                PdfPageObject pageObject)Update the given PdfPageObject to the page.
 
 Note: This method only updates the parameters of the PageObject whose setters
 are available. Attempting to update fields with no corresponding setters will
 have no effect. Furthermore, the PdfPageObjectType of the provided pageObject
 must be the same as the original pageObject being updated.
 
 PdfRenderer.write needs to be called to get the updated PDF stream after calling
 this method. PdfRenderer.Page instance can be closed before calling
 PdfRenderer.write.
| Parameters | |
|---|---|
| objectId | int: The unique identifier of the page object to update.
 Value is 0 or greater | 
| pageObject | PdfPageObject: ThePdfPageObjectobject to update.
 This value cannot benull. | 
| Returns | |
|---|---|
| boolean | true if page object is updated, false otherwise. | 
| Throws | |
|---|---|
| IllegalArgumentException | if the provided PdfPageObjectis unsupported or
                                  if thePdfPageObjectTypeof the
                                  provided pageObject is different from the original
                                  pageObject's type. | 
| IllegalStateException | if the PdfRenderer.Pageis closed before
                                  invocation. | 
Protected methods
finalize
protected void finalize ()
Called by the garbage collector on an object when garbage collection
 determines that there are no more references to the object.
 A subclass overrides the finalize method to dispose of
 system resources or to perform other cleanup.
 
 The general contract of finalize is that it is invoked
 if and when the Java virtual
 machine has determined that there is no longer any
 means by which this object can be accessed by any thread that has
 not yet died, except as a result of an action taken by the
 finalization of some other object or class which is ready to be
 finalized. The finalize method may take any action, including
 making this object available again to other threads; the usual purpose
 of finalize, however, is to perform cleanup actions before
 the object is irrevocably discarded. For example, the finalize method
 for an object that represents an input/output connection might perform
 explicit I/O transactions to break the connection before the object is
 permanently discarded.
 
 The finalize method of class Object performs no
 special action; it simply returns normally. Subclasses of
 Object may override this definition.
 
 The Java programming language does not guarantee which thread will
 invoke the finalize method for any given object. It is
 guaranteed, however, that the thread that invokes finalize will not
 be holding any user-visible synchronization locks when finalize is
 invoked. If an uncaught exception is thrown by the finalize method,
 the exception is ignored and finalization of that object terminates.
 
 After the finalize method has been invoked for an object, no
 further action is taken until the Java virtual machine has again
 determined that there is no longer any means by which this object can
 be accessed by any thread that has not yet died, including possible
 actions by other objects or classes which are ready to be finalized,
 at which point the object may be discarded.
 
 The finalize method is never invoked more than once by a Java
 virtual machine for any given object.
 
 Any exception thrown by the finalize method causes
 the finalization of this object to be halted, but is otherwise
 ignored.
| Throws | |
|---|---|
| Throwable | |
