Class CustomGraphicsStreamEngine


  • public class CustomGraphicsStreamEngine
    extends PDFGraphicsStreamEngine
    Example of a custom PDFGraphicsStreamEngine subclass. Allows text and graphics to be processed in a custom manner. This example simply prints the operations to stdout.

    See PDFStreamEngine for further methods which may be overridden.

    • Constructor Detail

      • CustomGraphicsStreamEngine

        protected CustomGraphicsStreamEngine​(PDPage page)
        Constructor.
        Parameters:
        page - PDF Page
    • Method Detail

      • main

        public static void main​(java.lang.String[] args)
                         throws java.io.IOException
        Throws:
        java.io.IOException
      • run

        public void run()
                 throws java.io.IOException
        Runs the engine on the current page.
        Throws:
        java.io.IOException - If there is an IO error while drawing the page.
      • appendRectangle

        public void appendRectangle​(java.awt.geom.Point2D p0,
                                    java.awt.geom.Point2D p1,
                                    java.awt.geom.Point2D p2,
                                    java.awt.geom.Point2D p3)
                             throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Append a rectangle to the current path.
        Specified by:
        appendRectangle in class PDFGraphicsStreamEngine
        Parameters:
        p0 - starting coordinate of the rectangle
        p1 - second coordinate of the rectangle
        p2 - third coordinate of the rectangle
        p3 - last coordinate of the rectangle
        Throws:
        java.io.IOException - if the rectangle could not be appended
      • drawImage

        public void drawImage​(PDImage pdImage)
                       throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Draw the image.
        Specified by:
        drawImage in class PDFGraphicsStreamEngine
        Parameters:
        pdImage - The image to draw.
        Throws:
        java.io.IOException - if the image could not be drawn
      • clip

        public void clip​(int windingRule)
                  throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Modify the current clipping path by intersecting it with the current path. The clipping path will not be updated until the succeeding painting operator is called.
        Specified by:
        clip in class PDFGraphicsStreamEngine
        Parameters:
        windingRule - The winding rule which will be used for clipping.
        Throws:
        java.io.IOException - if the clipping path could not be modified
      • moveTo

        public void moveTo​(float x,
                           float y)
                    throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Starts a new path at (x,y).
        Specified by:
        moveTo in class PDFGraphicsStreamEngine
        Parameters:
        x - the x-coordinate to move to
        y - the y-coordinate to move to
        Throws:
        java.io.IOException - if the something went wrong when moving to the given coordinate
      • lineTo

        public void lineTo​(float x,
                           float y)
                    throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Draws a line from the current point to (x,y).
        Specified by:
        lineTo in class PDFGraphicsStreamEngine
        Parameters:
        x - the X-coordinate of the ending-point of the line to be drawn
        y - the Y-coordinate of the ending-point of the line to be drawn
        Throws:
        java.io.IOException - if the line could not be drawn
      • curveTo

        public void curveTo​(float x1,
                            float y1,
                            float x2,
                            float y2,
                            float x3,
                            float y3)
                     throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Draws a curve from the current point to (x3,y3) using (x1,y1) and (x2,y2) as control points.
        Specified by:
        curveTo in class PDFGraphicsStreamEngine
        Parameters:
        x1 - the X coordinate of the first Bézier control point
        y1 - the Y coordinate of the first Bézier control point
        x2 - the X coordinate of the second Bézier control point
        y2 - the Y coordinate of the second Bézier control point
        x3 - the X coordinate of the final end point
        y3 - the Y coordinate of the final end point
        Throws:
        java.io.IOException - if the curve could not be drawn
      • getCurrentPoint

        public java.awt.geom.Point2D getCurrentPoint()
                                              throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Returns the current point of the current path.
        Specified by:
        getCurrentPoint in class PDFGraphicsStreamEngine
        Returns:
        the current point or null
        Throws:
        java.io.IOException - if the something went wrong when providing the current point
      • endPath

        public void endPath()
                     throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Ends the current path without filling or stroking it. The clipping path is updated here.
        Specified by:
        endPath in class PDFGraphicsStreamEngine
        Throws:
        java.io.IOException - if the current path could not be ended
      • fillPath

        public void fillPath​(int windingRule)
                      throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Fill the path.
        Specified by:
        fillPath in class PDFGraphicsStreamEngine
        Parameters:
        windingRule - The winding rule this path will use.
        Throws:
        java.io.IOException - if the path could not be filled
      • fillAndStrokePath

        public void fillAndStrokePath​(int windingRule)
                               throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Fills and then strokes the path.
        Specified by:
        fillAndStrokePath in class PDFGraphicsStreamEngine
        Parameters:
        windingRule - The winding rule this path will use.
        Throws:
        java.io.IOException - if the path could not be filled and stroke
      • shadingFill

        public void shadingFill​(COSName shadingName)
                         throws java.io.IOException
        Description copied from class: PDFGraphicsStreamEngine
        Fill with Shading.
        Specified by:
        shadingFill in class PDFGraphicsStreamEngine
        Parameters:
        shadingName - The name of the Shading Dictionary to use for this fill instruction.
        Throws:
        java.io.IOException - if the path could not be filled using the given shading
      • showTextString

        public void showTextString​(byte[] string)
                            throws java.io.IOException
        Overridden from PDFStreamEngine.
        Overrides:
        showTextString in class PDFStreamEngine
        Parameters:
        string - the encoded text
        Throws:
        java.io.IOException - if there was an error showing the text
      • showTextStrings

        public void showTextStrings​(COSArray array)
                             throws java.io.IOException
        Overridden from PDFStreamEngine.
        Overrides:
        showTextStrings in class PDFStreamEngine
        Parameters:
        array - array of encoded text strings and adjustments
        Throws:
        java.io.IOException - if there was an error showing the text
      • showGlyph

        protected void showGlyph​(Matrix textRenderingMatrix,
                                 PDFont font,
                                 int code,
                                 Vector displacement)
                          throws java.io.IOException
        Overridden from PDFStreamEngine.
        Overrides:
        showGlyph in class PDFStreamEngine
        Parameters:
        textRenderingMatrix - the current text rendering matrix, Trm
        font - the current font
        code - internal PDF character code for the glyph
        displacement - the displacement (i.e. advance) of the glyph in text space
        Throws:
        java.io.IOException - if the glyph cannot be processed