Package pdf

Class PDFJob

  • All Implemented Interfaces:
    java.io.Serializable

    public class PDFJob
    extends java.awt.PrintJob
    implements java.io.Serializable

    This class extends awt's PrintJob, to provide a simple method of writing PDF documents.

    You can use this with any code that uses Java's printing mechanism. It does include a few extra methods to provide access to some of PDF's features like annotations, or outlines.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.io.OutputStream os
      This is the OutputStream the PDF file will be written to when complete Note: This is transient, as it's not valid after being Serialized.
      protected PDFPage page
      This is the current page being constructed by the last getGraphics() call
      protected int pagenum
      This is the page number of the current page
      protected PDFDocument pdfDocument
      This is the PDF file being constructed
    • Constructor Summary

      Constructors 
      Constructor Description
      PDFJob()
      This constructs the job.
      PDFJob​(java.io.OutputStream os)
      This constructs the job.
      PDFJob​(java.io.OutputStream os, java.lang.String title)
      This constructs the job.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      PDFAnnot addNote​(java.lang.String note, int x, int y, int w, int h)
      Convenience method: Adds a text note to the document.
      PDFOutline addOutline​(java.lang.String title)
      This method attaches an outline to the current page being generated.
      PDFOutline addOutline​(java.lang.String title, int x, int y, int w, int h)
      This method attaches an outline to the current page being generated.
      void end()
      This writes the PDF document to the OutputStream, finishing the document.
      PDFPage getCurrentPage()
      Returns the current PDFPage being worked on.
      int getCurrentPageNumber()
      Returns the current page number.
      java.awt.Graphics getGraphics()
      This returns a graphics object that can be used to draw on a page.
      java.awt.Graphics getGraphics​(int orient)
      This returns a graphics object that can be used to draw on a page.
      java.awt.Graphics getGraphics​(java.awt.print.PageFormat pageFormat)
      This returns a graphics object that can be used to draw on a page.
      java.awt.Dimension getPageDimension()
      Returns the page dimension
      int getPageResolution()
      This returns the page resolution.
      PDFDocument getPDFDocument()
      Returns the PDFDocument object for this document.
      boolean lastPageFirst()
      In AWT's PrintJob, this would return true if the user requested that the file is printed in reverse order.
      • Methods inherited from class java.awt.PrintJob

        finalize
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • os

        protected transient java.io.OutputStream os
        This is the OutputStream the PDF file will be written to when complete Note: This is transient, as it's not valid after being Serialized.
      • pdfDocument

        protected PDFDocument pdfDocument
        This is the PDF file being constructed
      • page

        protected PDFPage page
        This is the current page being constructed by the last getGraphics() call
      • pagenum

        protected int pagenum
        This is the page number of the current page
    • Constructor Detail

      • PDFJob

        public PDFJob()

        This constructs the job. This method must be used when creating a template pdf file, ie one that is Serialised by one application, and then restored by another.

        ezb 20011115 - Haven't done anything with templates yet, don't know how/if they are implemented

      • PDFJob

        public PDFJob​(java.io.OutputStream os)

        This constructs the job. This is the primary constructor that will be used for creating pdf documents with this package. The specified output stream is a handle to the .pdf file you wish to create.

        Parameters:
        os - - OutputStream to use for the pdf output
      • PDFJob

        public PDFJob​(java.io.OutputStream os,
                      java.lang.String title)

        This constructs the job. This is the primary constructor that will be used for creating pdf documents with this package. The specified output stream is a handle to the .pdf file you wish to create.

        Use this constructor if you want to give the pdf document a name other than the default of "PDF Doc"

        Parameters:
        os - - OutputStream to use for the pdf output
        title - a String value
    • Method Detail

      • getGraphics

        public java.awt.Graphics getGraphics​(int orient)

        This returns a graphics object that can be used to draw on a page. In PDF, this will be a new page within the document.

        Parameters:
        orient - - the int Orientation of the new page, as defined in PDFPage
        Returns:
        Graphics object to draw.
        See Also:
        PageFormat.PORTRAIT, PageFormat.LANDSCAPE, PageFormat.REVERSE_LANDSCAPE
      • getGraphics

        public java.awt.Graphics getGraphics​(java.awt.print.PageFormat pageFormat)

        This returns a graphics object that can be used to draw on a page. In PDF, this will be a new page within the document.

        Parameters:
        pageFormat - PageFormat describing the page size
        Returns:
        Graphics object to draw.
      • end

        public void end()

        This writes the PDF document to the OutputStream, finishing the document.

        Specified by:
        end in class java.awt.PrintJob
      • getGraphics

        public java.awt.Graphics getGraphics()

        This returns a graphics object that can be used to draw on a page. In PDF, this will be a new page within the document.

        This new page will by default be oriented as a portrait

        Specified by:
        getGraphics in class java.awt.PrintJob
        Returns:
        a Graphics object to draw to.
      • getPageDimension

        public java.awt.Dimension getPageDimension()

        Returns the page dimension

        Specified by:
        getPageDimension in class java.awt.PrintJob
        Returns:
        a Dimension instance, the size of the page
      • getPageResolution

        public int getPageResolution()
        This returns the page resolution.

        This is the PDF (and Postscript) device resolution of 72 dpi (equivalent to 1 point).

        Specified by:
        getPageResolution in class java.awt.PrintJob
        Returns:
        an int, the resolution in pixels per inch
      • lastPageFirst

        public boolean lastPageFirst()

        In AWT's PrintJob, this would return true if the user requested that the file is printed in reverse order. For PDF's this is not applicable, so it will always return false.

        Specified by:
        lastPageFirst in class java.awt.PrintJob
        Returns:
        false
      • getPDFDocument

        public PDFDocument getPDFDocument()
        Returns the PDFDocument object for this document. Useful for gaining access to the internals of PDFDocument.
        Returns:
        the PDF object
      • getCurrentPage

        public PDFPage getCurrentPage()

        Returns the current PDFPage being worked on. Useful for working on Annotations (like links), etc.

        Returns:
        the PDFPage currently being constructed
      • getCurrentPageNumber

        public int getCurrentPageNumber()

        Returns the current page number. Useful if you need to include one in the document

        Returns:
        the int current page number
      • addOutline

        public PDFOutline addOutline​(java.lang.String title)

        This method attaches an outline to the current page being generated. When selected, the outline displays the top of the page.

        Parameters:
        title - a String, the title of the Outline
        Returns:
        a PDFOutline object that was created, for adding sub-outline's if required.
      • addOutline

        public PDFOutline addOutline​(java.lang.String title,
                                     int x,
                                     int y,
                                     int w,
                                     int h)

        This method attaches an outline to the current page being generated. When selected, the outline displays the specified region.

        Parameters:
        title - Outline title to attach
        x - Left coordinate of region
        y - Top coordinate of region
        w - width of region
        h - height of region
        Returns:
        the PDFOutline object created, for adding sub-outline's if required.
      • addNote

        public PDFAnnot addNote​(java.lang.String note,
                                int x,
                                int y,
                                int w,
                                int h)
        Convenience method: Adds a text note to the document.
        Parameters:
        note - Text of the note
        x - Coordinate of note
        y - Coordinate of note
        w - Width of the note
        h - Height of the note
        Returns:
        Returns the annotation, so other settings can be changed.