PDFBox 添加多行文本
在上一节中,我们讨论了如何将文本内容添加到 PDF 文档的页面。前面的程序写入页面中唯一的一行。如果我们想在页面中插入多行,它将不允许并在结束该行后结束插入文本。
要在 PDF 文档中添加多行,我们需要使用setLeading()方法,在完成每一行后,我们使用newline()方法从新行插入文本。
按照以下步骤在现有 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 开始文本
我们可以使用PDPageContentStream类的newLineAtOffset()方法设置文本的位置,如下所示。
contentStream.newLineAtOffset(20, 450);
PDFBox 设置文本字体
我们可以通过使用PDPageContentStream类的setFont()方法来设置文本的字体样式和字体大小。
contentStream.setFont(Font_Type, Font_Size);
PDFBox 设置文本行距
我们可以使用setLeading()方法设置文本行距。该setLeading() 方法决定多少下移才能到下一个基线。
contentStream.setLeading(14.5f);
PDFBox 使用 newLine() 插入多行
我们可以使用showText()插入多行,并使用newline()方法分割每一行,如下所示。
contentStream.showText(Line1);
contentStream.newLine();
contentStream.showText(Line2);
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 AddMultipleText {
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(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("d:/blank.pdf"));
// Closing the document
doc.close();
}
}
输出结果如下:
现在,打开PDF文档,我们可以观察到在PDF文档的页面中添加了多行。
热门文章
优秀文章