Package com.tom_roush.pdfbox.multipdf
Class Overlay
- java.lang.Object
-
- com.tom_roush.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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classOverlay.PositionPossible location of the overlaid pages: foreground or background.
-
Constructor Summary
Constructors Constructor Description Overlay()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AffineTransformcalculateAffineTransform(PDPage page, PDRectangle overlayMediaBox)Calculate the transform to be used when positioning the overlay.voidclose()Close all input documents which were used for the overlay and opened by this class.StringgetDefaultOverlayFile()Returns the default overlay file.StringgetInputFile()Returns the input file.PDDocumentoverlay(Map<Integer,String> specificPageOverlayFile)This will add overlays to a document.PDDocumentoverlayDocuments(Map<Integer,PDDocument> specificPageOverlayDocuments)This will add overlays documents to a document.voidsetAllPagesOverlayFile(String allPagesOverlayFile)Sets the all pages overlay file.voidsetAllPagesOverlayPDF(PDDocument allPagesOverlayPDF)Sets the all pages overlay PDF.voidsetDefaultOverlayFile(String defaultOverlayFile)Sets the default overlay file.voidsetDefaultOverlayPDF(PDDocument defaultOverlayPDF)Sets the default overlay PDF.voidsetEvenPageOverlayFile(String evenPageOverlayFile)Sets the even page overlay file.voidsetEvenPageOverlayPDF(PDDocument evenPageOverlayPDF)Sets the even page overlay PDF.voidsetFirstPageOverlayFile(String firstPageOverlayFile)Sets the first page overlay file.voidsetFirstPageOverlayPDF(PDDocument firstPageOverlayPDF)Sets the first page overlay PDF.voidsetInputFile(String inputFile)Sets the file to be overlaid.voidsetInputPDF(PDDocument inputPDF)Sets the PDF to be overlaid.voidsetLastPageOverlayFile(String lastPageOverlayFile)Sets the last page overlay file.voidsetLastPageOverlayPDF(PDDocument lastPageOverlayPDF)Sets the last page overlay PDF.voidsetOddPageOverlayFile(String oddPageOverlayFile)Sets the odd page overlay file.voidsetOddPageOverlayPDF(PDDocument oddPageOverlayPDF)Sets the odd page overlay PDF.voidsetOverlayPosition(Overlay.Position overlayPosition)Sets the overlay position.
-
-
-
Method Detail
-
overlay
public PDDocument overlay(Map<Integer,String> specificPageOverlayFile) throws 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:
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 IOExceptionClose all input documents which were used for the overlay and opened by this class.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- 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. ThePDDocumentobject gathered from opening this file will be returned byoverlay(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 byoverlay(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
-
-