Test in production without watermarks.
Works wherever you need it to.
Get 30 days of fully functional product.
Have it up and running in minutes.
Full access to our support engineering team during your product trial
IronPDF is a Java PDF Library for generating, reading, and editing PDF documents. It allows users to work with PDF documents with ease and accuracy. IronPDF for Java is built on the success of IronPDF for .NET and provides efficiency across different platforms. IronPDF for Java uses IronPdfEngine
, which is fast and optimized for performance.
IronPDF helps extract text and images from PDFs and other objects from PDF files. It helps create PDFs from HTML String, URL, and images. It also allows conversion between different file formats. You can easily add new content and add digital signatures to PDFs along with document metadata to existing PDF documents. It is designed especially for Java 8+, Scala, and Kotlin, on any Windows, Linux, and Cloud platforms.
To make a PDF Stamper, you will need the following prerequisites:
You can use any Java-supported IDE. There are a bunch of IDEs available for Java development. This demonstration will be using IntelliJ IDE. You can use NetBeans, Eclipse, etc.
Maven is a dependency manager and allows control over the Java project. Maven for Java can be downloaded from the official Maven website. IntelliJ IDE for Java contains Maven support.
You can download and install IronPDF for Java in multiple ways.
pom.xml
file in the Maven project.<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>LATEST_VERSION</version> <!-- Make sure to replace LATEST_VERSION with the actual version number -->
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>LATEST_VERSION</version> <!-- Make sure to replace LATEST_VERSION with the actual version number -->
</dependency>
This dependency is also required to stamp content on an existing PDF document. It can be added using the Maven dependencies manager in IntelliJ or directly downloaded from the Maven website. Add the following dependency to the pom.xml
file:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
Once all the prerequisites are installed, the next step is to import the necessary IronPDF packages to work with PDF documents. Add the following code on top of the Main.java file:
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
Some methods available in IronPDF require a license to be used. You can purchase a license or try IronPDF for free with a trial license. You can set the key as follows:
// Set the IronPDF license key
License.setLicenseKey("YOUR-KEY");
// Set the IronPDF license key
License.setLicenseKey("YOUR-KEY");
To import an existing document for stamping new content, PdfDocument
class is used. Its static fromFile
method is used to load a file from a specific path with the actual file name. The code goes as follows:
// Load an existing PDF document
PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Load an existing PDF document
PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
Loaded original document:
The sample document
IronPDF provides a stamp package. It allows a bunch of useful stamping options like BarcodeStamper
, HtmlStamper
, ImageStamper
, TextStamper
, and others for content alignment. To add new HTML content to this PDF document HtmlStamper
class will be used. Let's use the file in the previous section and add some content to it. The following code helps to achieve this task:
// Create an HtmlStamper and set its content
HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
// Create an HtmlStamper and set its content
HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
A HtmlStamper
object is created and then used its setHtml
method to attach new HTML code. The next step is to apply it to the existing PDF document to create a new PDF version.
Using the PdfDocument
object created earlier to add the HTML code to the existing document. It provides applyStamp
with two overloads, one that accepts only the content as a Stamper
object and the other with page selection as well.
// Apply the stamper to the PDF document
pd.applyStamp(htmlStamper);
// Apply the stamper to the PDF document
pd.applyStamp(htmlStamper);
This will add the string description to the existing document.
To save the file, use the saveAs
method of the PdfDocument
object.
// Save the modified PDF document
pd.saveAs("stamped.pdf");
// Save the modified PDF document
pd.saveAs("stamped.pdf");
The stamped PDF file
The HTML string is added to every page of the PDF document and at the middle of every page.
You can use another overload of the applyStamp
method to add the content to a specific page.
// Stamp content to a specific page
pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
// Stamp content to a specific page
pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
PageSelection
class provides different methods to control the page number. firstPage
, lastPage
, allPages
, and pageRange
are some methods available to add the content appropriately.
You can use setVerticalAlignment
, setHorizontalAlignment
, setWidth
, setHeight
methods in each Stamper
class to adjust the position of the content added to the existing PDF document. The following example code will help to place the text at the bottom left of the page:
// Set the alignment of the stamper
htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
// Set the alignment of the stamper
htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
The output PDF file with stamper alignment
You can use setVerticalOffset
, setHorizontalOffset
method to further adjust the positioning of the content.
For more information on working with PDF files using IronPDF visit this code example for HTML to PDF conversion in Java.
IronPDF for Java is a versatile library and provides the facility to add file descriptions in the form of metadata, user permissions, user password, add digital signature, and create signed documents to save the version of the PDF document.
// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
You can also control the security options of your PDF file so that data is saved from unauthorized use. It provides options to set setAllowUserPrinting
, setAllowUserEdits
, setAllowUserCopyPasteContent
, setAllowUserAnnotations
, setUserPassword
, setAllowUserFormData
parameters to true or false. The following sample code will help to set all the objects properties mentioned above.
// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");
securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");
securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
For stamping digital signatures on the actual file, you can see this detailed code example for PDF signatures.
This article discussed how to stamp content on an existing PDF document in Java. There is a stamp package with a bunch of useful stamping classes, which can be used to add multiple format content to PDF at any desired location in the original document.
IronPDF is a versatile library as it can be seen from the above code examples as well. It is quite simple but yet a very powerful PDF generation and manipulation tool. This helps developers to easily integrate all PDF functionalities in a single Java application program.
IronPDF is free for single development and provides a free trial license without a watermark to test out its complete functionality. However, for commercial use, it should be licensed with IronPDF.
Lastly, IronPDF offers a special promotion to purchase Iron Software suites in which developers can buy all five Iron Software products for the price of two licenses.
IronPDF for Java is a library for generating, reading, and editing PDF documents, offering ease and accuracy in working with PDF files. It is built on the success of IronPDF for .NET and is optimized for performance across different platforms.
To create a PDF stamper, you need a Java IDE, a Maven project to manage dependencies, and the IronPDF library. Additionally, Slf4j is required for stamping content on existing PDF documents.
You can add IronPDF to a Maven project by including the IronPDF dependency in the pom.xml file. You can also download the package from the Maven repository or directly from IronPDF's official website.
The HtmlStamper class in IronPDF is used to add new HTML content to an existing PDF document. It provides functionality to set and align HTML content on a PDF.
You can save changes to a PDF document using the PdfDocument object by calling the saveAs method with the desired file name.
Yes, you can apply a stamp to specific pages in a PDF using the applyStamp method with the PageSelection class to specify the pages.
You can adjust the alignment of stamped content in a PDF by using methods like setVerticalAlignment and setHorizontalAlignment in the Stamper class to position the content as desired.
IronPDF offers features for PDF security such as setting user permissions, adding passwords, and controlling user access to printing, editing, and copying content.
Yes, IronPDF requires a license for commercial use. However, it offers a free trial license without a watermark for testing its full functionality.
IronPDF for Java is designed for Java 8+, Scala, and Kotlin, and it supports Windows, Linux, and Cloud platforms.