个性化阅读
专注于IT技术分析

PDFBox添加文本

本文概述

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

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

加载现有文档

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

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

获取所需页面

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

PDPage page = doc.getPage(Page Index);

准备内容流

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

PDPageContentStream contentStream = new PDPageContentStream(doc, page);

开始文字

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

contentStream.beginText();

设定文字位置

我们可以使用PDPageContentStream类的newLineAtOffset()方法设置文本的位置, 该方法可以在以下代码中显示。

contentStream.newLineAtOffset(20, 450);

设置文字字体

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

contentStream.setFont(Font_Type, Font_Size);

写文字内容

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

contentStream.showText(text);

结束文字

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

contentStream.endText();

关闭内容流

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

contentStream.close();

保存文件

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

doc.save("Path of Document");

关闭文件

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

doc.close();

例-

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("/eclipse-workspace/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("/eclipse-workspace/blank.pdf"));

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

输出

成功执行以上程序后, 我们将看到以下消息。

PDFBox添加文本

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

PDFBox添加文本
赞(0)
未经允许不得转载:srcmini » PDFBox添加文本

评论 抢沙发

评论前必须登录!