Package org.apache.pdfbox.multipdf
Class Overlay
- java.lang.Object
-
- org.apache.pdfbox.multipdf.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Overlay.Position
Possible location of the overlayed pages: foreground or background.
-
Constructor Summary
Constructors Constructor Description Overlay()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.awt.geom.AffineTransform
calculateAffineTransform(PDPage page, PDRectangle overlayMediaBox)
Calculate the transform to be used when positioning the overlay.void
close()
Close all input documents which were used for the overlay and opened by this class.java.lang.String
getDefaultOverlayFile()
Returns the default overlay file.java.lang.String
getInputFile()
Returns the input file.PDDocument
overlay(java.util.Map<java.lang.Integer,java.lang.String> specificPageOverlayFile)
This will add overlays to a document.PDDocument
overlayDocuments(java.util.Map<java.lang.Integer,PDDocument> specificPageOverlayDocuments)
This will add overlays documents to a document.void
setAllPagesOverlayFile(java.lang.String allPagesOverlayFile)
Sets the all pages overlay file.void
setAllPagesOverlayPDF(PDDocument allPagesOverlayPDF)
Sets the all pages overlay PDF.void
setDefaultOverlayFile(java.lang.String defaultOverlayFile)
Sets the default overlay file.void
setDefaultOverlayPDF(PDDocument defaultOverlayPDF)
Sets the default overlay PDF.void
setEvenPageOverlayFile(java.lang.String evenPageOverlayFile)
Sets the even page overlay file.void
setEvenPageOverlayPDF(PDDocument evenPageOverlayPDF)
Sets the even page overlay PDF.void
setFirstPageOverlayFile(java.lang.String firstPageOverlayFile)
Sets the first page overlay file.void
setFirstPageOverlayPDF(PDDocument firstPageOverlayPDF)
Sets the first page overlay PDF.void
setInputFile(java.lang.String inputFile)
Sets the file to be overlayed.void
setInputPDF(PDDocument inputPDF)
Sets the PDF to be overlayed.void
setLastPageOverlayFile(java.lang.String lastPageOverlayFile)
Sets the last page overlay file.void
setLastPageOverlayPDF(PDDocument lastPageOverlayPDF)
Sets the last page overlay PDF.void
setOddPageOverlayFile(java.lang.String oddPageOverlayFile)
Sets the odd page overlay file.void
setOddPageOverlayPDF(PDDocument oddPageOverlayPDF)
Sets the odd page overlay PDF.void
setOverlayPosition(Overlay.Position overlayPosition)
Sets the overlay position.
-
-
-
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 interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.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 overlayed.- Parameters:
inputFile
- the file to be overlayed. ThePDDocument
object gathered from opening this file will be returned byoverlay(Map<Integer, String>)
.
-
setInputPDF
public void setInputPDF(PDDocument inputPDF)
Sets the PDF to be overlayed.- Parameters:
inputPDF
- the PDF to be overlayed. This will be the object that is returned byoverlay(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
-
-