Class Overlay

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class Overlay
    extends java.lang.Object
    implements java.io.Closeable
    Adds an overlay to an existing PDF document. Based on code contributed by Balazs Jerk.
    • Constructor Detail

      • Overlay

        public Overlay()
    • Method Detail

      • overlay

        public PDDocument overlay​(java.util.Map<java.lang.Integer,​java.lang.String> specificPageOverlayFile)
                           throws java.io.IOException
        This will add overlays to a document.
        Parameters:
        specificPageOverlayFile - Optional map of overlay files for specific pages. The page numbers are 1-based. The map must be empty (but not null) if no specific mappings are used.
        Returns:
        The modified input PDF document, which has to be saved and closed by the caller. If the input document was passed by setInputPDF(PDDocument) then it is that object that is returned.
        Throws:
        java.io.IOException - if something went wrong
      • overlayDocuments

        public PDDocument overlayDocuments​(java.util.Map<java.lang.Integer,​PDDocument> specificPageOverlayDocuments)
                                    throws java.io.IOException
        This will add overlays documents to a document.
        Parameters:
        specificPageOverlayDocuments - Optional map of overlay documents for specific pages. The page numbers are 1-based. The map must be empty (but not null) if no specific mappings are used.
        Returns:
        The modified input PDF document, which has to be saved and closed by the caller. If the input document was passed by setInputPDF(PDDocument) then it is that object that is returned.
        Throws:
        java.io.IOException - if something went wrong
      • close

        public void close()
                   throws java.io.IOException
        Close all input documents which were used for the overlay and opened by this class.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException - if something went wrong
      • calculateAffineTransform

        protected java.awt.geom.AffineTransform calculateAffineTransform​(PDPage page,
                                                                         PDRectangle overlayMediaBox)
        Calculate the transform to be used when positioning the overlay. The default implementation centers on the destination. Override this method to do your own, e.g. move to a corner, or rotate.
        Parameters:
        page - The page that will get the overlay.
        overlayMediaBox - The overlay media box.
        Returns:
        The affine transform to be used.
      • setOverlayPosition

        public void setOverlayPosition​(Overlay.Position overlayPosition)
        Sets the overlay position.
        Parameters:
        overlayPosition - the overlay position
      • setInputFile

        public void setInputFile​(java.lang.String inputFile)
        Sets the file to be overlaid.
        Parameters:
        inputFile - the file to be overlaid. The PDDocument object gathered from opening this file will be returned by overlay(Map<Integer, String>).
      • setInputPDF

        public void setInputPDF​(PDDocument inputPDF)
        Sets the PDF to be overlaid.
        Parameters:
        inputPDF - the PDF to be overlaid. This will be the object that is returned by overlay(Map<Integer, String>).
      • getInputFile

        public java.lang.String getInputFile()
        Returns the input file.
        Returns:
        the input file
      • setDefaultOverlayFile

        public void setDefaultOverlayFile​(java.lang.String defaultOverlayFile)
        Sets the default overlay file.
        Parameters:
        defaultOverlayFile - the default overlay file
      • setDefaultOverlayPDF

        public void setDefaultOverlayPDF​(PDDocument defaultOverlayPDF)
        Sets the default overlay PDF.
        Parameters:
        defaultOverlayPDF - the default overlay PDF
      • getDefaultOverlayFile

        public java.lang.String getDefaultOverlayFile()
        Returns the default overlay file.
        Returns:
        the default overlay file
      • setFirstPageOverlayFile

        public void setFirstPageOverlayFile​(java.lang.String firstPageOverlayFile)
        Sets the first page overlay file.
        Parameters:
        firstPageOverlayFile - the first page overlay file
      • setFirstPageOverlayPDF

        public void setFirstPageOverlayPDF​(PDDocument firstPageOverlayPDF)
        Sets the first page overlay PDF.
        Parameters:
        firstPageOverlayPDF - the first page overlay PDF
      • setLastPageOverlayFile

        public void setLastPageOverlayFile​(java.lang.String lastPageOverlayFile)
        Sets the last page overlay file.
        Parameters:
        lastPageOverlayFile - the last page overlay file
      • setLastPageOverlayPDF

        public void setLastPageOverlayPDF​(PDDocument lastPageOverlayPDF)
        Sets the last page overlay PDF.
        Parameters:
        lastPageOverlayPDF - the last page overlay PDF
      • setAllPagesOverlayFile

        public void setAllPagesOverlayFile​(java.lang.String allPagesOverlayFile)
        Sets the all pages overlay file.
        Parameters:
        allPagesOverlayFile - the all pages overlay file
      • setAllPagesOverlayPDF

        public void setAllPagesOverlayPDF​(PDDocument allPagesOverlayPDF)
        Sets the all pages overlay PDF.
        Parameters:
        allPagesOverlayPDF - the all pages overlay PDF. This should not be a PDDocument that you created on the fly, it should be saved first, if it contains any fonts that are subset.
      • setOddPageOverlayFile

        public void setOddPageOverlayFile​(java.lang.String oddPageOverlayFile)
        Sets the odd page overlay file.
        Parameters:
        oddPageOverlayFile - the odd page overlay file
      • setOddPageOverlayPDF

        public void setOddPageOverlayPDF​(PDDocument oddPageOverlayPDF)
        Sets the odd page overlay PDF.
        Parameters:
        oddPageOverlayPDF - the odd page overlay PDF
      • setEvenPageOverlayFile

        public void setEvenPageOverlayFile​(java.lang.String evenPageOverlayFile)
        Sets the even page overlay file.
        Parameters:
        evenPageOverlayFile - the even page overlay file
      • setEvenPageOverlayPDF

        public void setEvenPageOverlayPDF​(PDDocument evenPageOverlayPDF)
        Sets the even page overlay PDF.
        Parameters:
        evenPageOverlayPDF - the even page overlay PDF