PDFBox添加多行

本文概述

  • 加载现有文档
  • 获取所需页面
  • 准备内容流
  • 开始文字
  • 设置文字字体
  • 设置文字开头
  • 使用newLine()插入多行
  • 写文字内容
  • 结束文字
  • 关闭内容流
  • 保存文件
  • 关闭文件
在上一节中, 我们讨论了如何将文本内容添加到PDF文档的页面。上一个程序只在页面中写一行。如果我们要在页面中插入多行, 则不允许再插入多行, 并在行结束后结束插入文本。
要在PDF文档中添加多行, 我们需要使用setLeading()方法, 并在完成每一行后, 我们使用newline()方法从新行中插入文本。
请按照以下步骤在现有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);

开始文字 我们可以使用PDPageContentStream类的newLineAtOffset()方法设置文本的位置, 如下所示。
contentStream.newLineAtOffset(20, 450);

设置文字字体 【PDFBox添加多行】我们可以使用PDPageContentStream类的setFont()方法来设置文本的字体样式和字体大小。
contentStream.setFont(Font_Type, Font_Size);

设置文字开头 我们可以使用setLeading()方法设置文本开头。 setLeading()方法决定向下移动多少以到达下一个基线。
contentStream.setLeading(14.5f);

使用newLine()插入多行 我们可以使用showText()插入多行, 并使用newline()方法划分每一行, 如下所示。
contentStream.showText(Line1); contentStream.newLine(); contentStream.showText(Line2);

写文字内容 我们可以使用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 AddMultipleText { public static void main(String[] args)throws IOException {//Loading an existing documentFile file = new File("/eclipse-workspace/blank.pdf"); PDDocument doc = PDDocument.load(file); //Retrieving the pages of the document PDPage page = doc.getPage(1); 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, 24); //Setting the leading contentStream.setLeading(14.5f); //Setting the position for the line contentStream.newLineAtOffset(25, 700); String text = "Hi!!! This is the multiple text content example."; String Line1 = "Here, we discussed about how to add text content in the pages of the PDF document."; String Line2 = "We do this by using the ShowText() method of the ContentStream class"; //Adding text in the form of string contentStream.showText(text); contentStream.newLine(); contentStream.showText(Line1); contentStream.newLine(); contentStream.showText(Line2); //Ending the content stream contentStream.endText(); System.out.println("Multiple 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添加多行

文章图片

    推荐阅读