您可以使用iText做到这一点。我用以下代码对其进行了测试。它会在现有PDF的每一页上添加一段文本和一个红色圆圈。
import java.io.*;import com.itextpdf.text.documentException;import com.itextpdf.text.pdf.*;public class AddContentToPDF { public static void main(String[] args) throws IOException, documentException { PdfReader reader = new PdfReader("C:/temp/Bubi.pdf"); // input PDF PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("C:/temp/Bubi_modified.pdf")); // output PDF baseFont bf = baseFont.createFont( baseFont.HELVETICA, baseFont.CP1252, baseFont.NOT_EMBEDDED); // set font //loop on pages (1-based) for (int i=1; i<=reader.getNumberOfPages(); i++){ // get object for writing over the existing content; // you can also use getUnderContent for writing in the bottom layer PdfContentByte over = stamper.getOverContent(i); // write text over.beginText(); over.setFontAndSize(bf, 10); // set font and size over.setTextMatrix(107, 740); // set x,y position (0,0 is at the bottom left) over.showText("I can write at page " + i); // set text over.endText(); // draw a red circle over.setRGBColorStroke(0xFF, 0x00, 0x00); over.setLineWidth(5f); over.ellipse(250, 450, 350, 550); over.stroke(); } stamper.close(); }}


