使用Java编辑PDF文本

有没有办法可以从Java编辑PDF?

我有一个PDF文档,其中包含需要使用Java替换的文本占位符,但是我看到的所有库都是从头开始创建PDF并具有小的编辑功能。

无论如何,我可以编辑PDF吗?

回答:

您可以使用iText做到这一点。我用以下代码对其进行了测试。它会在现有PDF的每一页上添加一段文本和一个红色圆圈。

/* requires itextpdf-5.1.2.jar or similar */

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 {

/* example inspired from "iText in action" (2006), chapter 2 */

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();

}

}

以上是 使用Java编辑PDF文本 的全部内容, 来源链接: utcz.com/qa/429532.html

回到顶部