Class Overlay

java.lang.Object
org.apache.pdfbox.multipdf.Overlay
All Implemented Interfaces:
Closeable, AutoCloseable

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

    • Overlay

      public Overlay()
  • Method Details

    • overlay

      public PDDocument overlay(Map<Integer,String> specificPageOverlayFile) throws IOException
      This will add overlays to a document.
      Parameters:
      specificPageOverlayFile - Optional map of overlay files of which the first page will be used for specific pages of the input document. 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:
      IOException - if something went wrong
    • overlayDocuments

      public PDDocument overlayDocuments(Map<Integer,PDDocument> specificPageOverlayDocuments) throws IOException
      This will add overlays documents to a document. If you created the overlay documents with subsetted fonts, you need to save them first so that the subsetting gets done.
      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:
      IOException - if something went wrong
    • close

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

      protected 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(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 String getInputFile()
      Returns the input file.
      Returns:
      the input file
    • setDefaultOverlayFile

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

      public void setDefaultOverlayPDF(PDDocument defaultOverlayPDF)
      Sets the default overlay PDF. If you created the overlay document with subsetted fonts, you need to save it first so that the subsetting gets done.
      Parameters:
      defaultOverlayPDF - the default overlay PDF
    • getDefaultOverlayFile

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

      public void setFirstPageOverlayFile(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. If you created the overlay document with subsetted fonts, you need to save it first so that the subsetting gets done.
      Parameters:
      firstPageOverlayPDF - the first page overlay PDF
    • setLastPageOverlayFile

      public void setLastPageOverlayFile(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. If you created the overlay document with subsetted fonts, you need to save it first so that the subsetting gets done.
      Parameters:
      lastPageOverlayPDF - the last page overlay PDF
    • setAllPagesOverlayFile

      public void setAllPagesOverlayFile(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. If you created the overlay document with subsetted fonts, you need to save it first so that the subsetting gets done.
      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(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. If you created the overlay document with subsetted fonts, you need to save it first so that the subsetting gets done.
      Parameters:
      oddPageOverlayPDF - the odd page overlay PDF
    • setEvenPageOverlayFile

      public void setEvenPageOverlayFile(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. If you created the overlay document with subsetted fonts, you need to save it first so that the subsetting gets done.
      Parameters:
      evenPageOverlayPDF - the even page overlay PDF