PDFBox 添加单行文本

我们可以在现有的 PDF 文档中添加文本内容。本节介绍如何向现有 PDF 文档添加新文本内容。PDFBox 库提供了一个PDPageContentStream类。此类包含在 PDF 文档的页面中插入文本、图像和其他类型的内容所需的方法。

按照以下步骤在现有 PDF 文档中添加文本内容 

PDFBox 加载现有文档

我们可以使用静态load()方法加载现有的 PDF 文档。此方法接受一个文件对象作为参数。我们还可以使用PDFBox的类名PDDocument调用它。

File file = new File("PATH");   
PDDocument doc = PDDocument.load(file);   

PDFBox 获取所需页面

获取我们要在 PDF 文档中添加文本内容的所需页面。getPage()方法用于从 PDF 文档中检索页面。getPage()方法接受页面索引作为参数。

PDPage page = doc.getPage(Page Index);  

PDFBox 准备内容流

PDPageContentStream类用于在文档中插入数据。在这个类中,我们需要传入文档对象和页面对象作为其参数来插入数据。

PDPageContentStream contentStream = new PDPageContentStream(doc, page);  

PDFBox beginText方法

当我们在PDF文档中插入文本时,我们也可以提供文本的起始位置。beginText() 方法PDPageContentStream类是用来启动文本内容。

contentStream.beginText();  

PDFBox 设置文本位置

我们可以使用PDPageContentStream类的newLineAtOffset()方法设置文本的位置,如下面的代码所示。

contentStream.newLineAtOffset(20, 450);  

PDFBox 设置文本字体

我们可以通过使用PDPageContentStream类的setFont()方法来设置文本的字体样式和字体大小。

contentStream.setFont(Font_Type, Font_Size);  

PDFBox PDFBox 编写文本内容

我们可以使用PDPageContentStream类的showText()方法在 PDF 文档中插入文本内容。

contentStream.showText(text);  

PDFBox 结束文本

当我们在PDF文档中插入文本时,我们必须提供文本的结束点。endText() 方法PDPageContentStream类用于结束文本内容。

contentStream.endText();  

PDFBox 关闭内容流

我们可以使用close()方法关闭PDPageContentStream类。

contentStream.close();  

PDFBox 保存文件

添加所需的文档后,我们必须将其保存到我们想要的位置。save()方法用于保存文档。save() 方法接受字符串值并将该文件作为参数的路径。

doc.save("Path of Document");  

PDFBox 关闭文档

完成任务后,我们需要使用close()方法关闭PDDocument类对象。

doc.close();  

PDFBox 添加单行文本 完整示例

package com.yiidian;

import java.io.File;
import java.io.IOException;

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;

public class AddingText {

	public static void main(String[] args) throws IOException {

		// Loading an existing document
		File file = new File("d:/blank.pdf");
		PDDocument doc = PDDocument.load(file);

		// Retrieving the pages of the document
		PDPage page = doc.getPage(2);
		PDPageContentStream contentStream = new PDPageContentStream(doc, page);

		// Begin the Content stream
		contentStream.beginText();

		// Setting the font to the Content stream
		contentStream.setFont(PDType1Font.TIMES_BOLD_ITALIC, 14);

		// Setting the position for the line
		contentStream.newLineAtOffset(20, 450);

		String text = "Hi!!! This is the first sample PDF document.";

		// Adding text in the form of string
		contentStream.showText(text);

		// Ending the content stream
		contentStream.endText();

		System.out.println("New Text Content is added in the PDF Document.");

		// Closing the content stream
		contentStream.close();

		// Saving the document
		doc.save(new File("d:/blank.pdf"));

		// Closing the document
		doc.close();
	}
}

输出结果如下:

现在,打开PDF文档,我们可以观察到在PDF文档的页面中添加了文本内容。

热门文章

优秀文章