In your daily work, you often need to add page numbers to your PDF documents to make them easier to read, search, and manage. So I'll show you how to use Free Spire.PDF for Java to quickly add page numbers to PDF documents in Java programs.
** First, place the result graph for reference: **
** Basic steps: ** ** 1. ** Free Spire.PDF for Java Download and unzip the package. ** 2. ** Import the Spire.Pdf.jar package in the lib folder into your Java application as a dependency. (You can also install the JAR package directly from the Maven repository (see below for the code that makes up the pom.xml file)). .. ** 3. ** In your Java application, create a new Java Class (named AddPageNumbers here) and enter and execute the corresponding Java code.
** Configure the pom.xml file: **
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>
** Java code example: **
import com.spire.pdf.PdfDocument;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;
public class AddPageNumbers {
public static void main(String[] args) {
//Load PDF document
PdfDocument doc = new PdfDocument();
doc.loadFromFile("file1.pdf");
//Create font
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Song body", Font.PLAIN, 10),true);
//Get page size
Dimension2D pageSize = doc.getPages().get(0).getSize();
//Initialize the y coordinate
float y = (float) pageSize.getHeight() - 40;
//Iterates over the pages of the document
for (int i = 0; i < doc.getPages().getCount(); i++) {
//Initialize page number field
PdfPageNumberField number = new PdfPageNumberField();
//Initialize the total page count field
PdfPageCountField count = new PdfPageCountField();
//Create a complex domain
PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "page{0}total{1}", number, count);
//Set the text alignment in the compound field
compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top));
//Font size measurement
Dimension2D textSize = font.measureString(compositeField.getText());
//Set the position and size of compound fields on a PDF page
compositeField.setBounds(new Rectangle2D.Float(((float) pageSize.getWidth() - (float) textSize.getWidth())/2, y, (float) textSize.getWidth(), (float) textSize.getHeight()));
//Add a compound field to a PDF page
compositeField.draw(doc.getPages().get(i).getCanvas());
}
//Save the document
doc.saveToFile("Numbers.pdf");
}
}
Recommended Posts