使用 PDFBox 库将日期添加到指定位置的 PDF 文件中。下面是一个示例代码,演示了如何在已知位置的情况下将日期添加到 PDF 文件中:
引入依赖:
<!-- 使用 PDFBox 合成日期到 PDF 文件。-->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.8</version>
</dependency>
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import java.io.File;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class AddDateToSpecificLocation {
public static void main(String[] args) {
String inputFileName = "input_file.pdf";
String outputFileName = "output_file.pdf";
int x = 100; // 日期的 x 坐标
int y = 100; // 日期的 y 坐标
try (PDDocument document = PDDocument.load(new File(inputFileName))) {
PDPage page = document.getPage(0); // 获取第一页
PDPageContentStream contentStream = new PDPageContentStream(document, page, PDPageContentStream.AppendMode.APPEND, true, true);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = LocalDate.now().format(formatter);
contentStream.beginText();
contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
contentStream.newLineAtOffset(x, y);
contentStream.showText(formattedDate);
contentStream.endText();
contentStream.close();
document.save(outputFileName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码加载了 PDF 文件,获取了第一页,并创建了一个 PDPageContentStream
对象 contentStream
,用于将日期添加到 PDF 文件中。使用 beginText()
方法开始添加文本,使用 setFont()
方法设置字体,使用 newLineAtOffset(x, y)
方法设置日期的位置为指定的坐标 (x, y),使用 showText()
方法将日期添加到 PDF 文件中,最后使用 endText()
方法结束添加日期。
你可以将 x
和 y
替换为你希望的日期位置的 x 和 y 坐标。