返回介绍

添加文本(Adding Text)

发布于 2021-06-11 14:05:01 字数 4196 浏览 1211 评论 0 收藏 0

在上一章中,我们讨论了如何将页面添加到PDF文档中。 在本章中,我们将讨论如何向现有PDF文档添加文本。

将文本添加到现有PDF文档

您可以使用PDFBox库向文档添加内容,这为您提供了一个名为PDPageContentStream的类,其中包含在PDFDocument的页面中插入文本,图像和其他类型内容所需的方法。

以下是创建空文档并向其中的页面添加内容的步骤。

第1步:加载现有文档

您可以使用PDDocument类的load()方法加载现有文档。 因此,实例化此类并加载所需的文档,如下所示。

File file = new File("Path of the document"); 
PDDocument doc = document.load(file);

第2步:获取所需页面

您可以使用getPage()方法在文档中获取所需的页面。 通过将索引传递给此方法来检索所需页面的对象,如下所示。

PDPage page = doc.getPage(1);

第3步:准备内容流

您可以使用类PDPageContentStream的对象插入各种数据元素。 您需要将文档对象和页面对象传递给此类的构造函数,因此,通过传递在前面步骤中创建的这两个对象来实例化此类,如下所示。

PDPageContentStream contentStream = new PDPageContentStream(doc, page);

第4步:开始文本

在PDF文档中插入文本时,可以使用PDPageContentStream类的beginText()和endText()方法指定文本的起点和终点,如下所示。

contentStream.beginText(); 
……………………….. 
code to add text content 
……………………….. 
contentStream.endText();

因此,使用beginText()方法开始文本,如下所示。

contentStream.beginText();

第5步:设置文本的位置

使用newLineAtOffset()方法,您可以在页面中的内容流上设置位置。

//Setting the position for the line 
contentStream.newLineAtOffset(25, 700);

第6步:设置字体

您可以使用PDPageContentStream类的setFont()方法将文本的字体设置为所需的样式,如下所示。 对于此方法,您需要传递字体的类型和大小。

contentStream.setFont( font_type, font_size );

第7步:插入文本

您可以使用PDPageContentStream类的ShowText()方法将文本插入到页面中,如下所示。 此方法以字符串形式接受所需的文本。

contentStream.showText(text);

第8步:结束文本

插入文本后,您需要使用PDPageContentStream类的endText()方法结束文本,如下所示。

contentStream.endText();

第9步:关闭PDPageContentStream

使用close()方法关闭PDPageContentStream对象,如下所示。

contentstream.close();

第10步:保存文档

添加所需内容后,使用PDDocument类的save()方法保存PDF文档,如以下代码块所示。

doc.save("Path");

第11步:关闭文档

最后,使用PDDocument类的close()方法关闭文档,如下所示。

doc.close();

例子 (Example)

此示例演示如何将内容添加到文档中的页面。 在这里,我们将创建一个Java程序来加载名为my_doc.pdf的PDF文档,该文档保存在路径C:/PdfBox_Examples/ ,并向其中添加一些文本。 将此代码保存在名为AddingContent.java的文件中。

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 AddingContent {
   public static void main (String args[]) throws IOException {
      //Loading an existing document
      File file = new File("C:/PdfBox_Examples/my_doc.pdf");
      PDDocument document = PDDocument.load(file);
      //Retrieving the pages of the document 
      PDPage page = document.getPage(1);
      PDPageContentStream contentStream = new PDPageContentStream(document, page);
      //Begin the Content stream 
      contentStream.beginText(); 
      //Setting the font to the Content stream  
      contentStream.setFont(PDType1Font.TIMES_ROMAN, 12);
      //Setting the position for the line 
      contentStream.newLineAtOffset(25, 500);
      String text = "This is the sample document and we are adding content to it.";
      //Adding text in the form of string 
      contentStream.showText(text);      
      //Ending the content stream
      contentStream.endText();
      System.out.println("Content added");
      //Closing the content stream
      contentStream.close();
      //Saving the document
      document.save(new File("C:/PdfBox_Examples/new.pdf"));
      //Closing the document
      document.close();
   }
}

使用以下命令从命令提示符编译并执行保存的Java文件。

javac AddingContent.java 
java AddingContent 

执行时,上述程序将给定文本添加到文档中并显示以下消息。

Content added

如果在指定路径中验证PDF文档new.pdf ,则可以观察到给定内容已添加到文档中,如下所示。

添加文字

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文