本文概述
- 加载现有文档
- 检索页面
- 为PDImageXObject创建对象
- 准备内容流
- 画图
- 关闭PDPageContentStream
- 保存文件
- 关闭文件
请按照以下步骤在现有的PDF文档中插入图像-
加载现有文档 我们可以使用static load()方法加载现有的PDF文档。此方法接受文件对象作为参数。我们也可以使用PDFBox的类名PDDocument调用它。
File file = new File("PATH");
PDDocument doc = PDDocument.load(file);
检索页面 在这种情况下, 我们需要选择要插入图像的页面。 getPage()方法用于从PDF文档检索页面。此方法接受页码作为我们要检索的页面的参数。可以在以下代码中显示。
PDPage page = doc.getPage(1);
为PDImageXObject创建对象 PDImageXobject类用于在文档中创建图像。此类负责执行与图像有关的所有操作, 例如插入图像, 设置图像的高度和宽度等。
createFromFile()方法用于创建PDImageXobject类的对象。在这种方法中, 我们需要传递要插入的图像的路径, 并记录需要添加图像的对象。
PDImageXObject pdImage = PDImageXObject.createFromFile("PATH of Image", doc);
准备内容流 PDPageContentStream类用于创建用于插入各种数据元素的对象。此类的构造函数包含文档对象和页面对象作为参数, 如下所示。
PDPageContentStream contents = new PDPageContentStream(doc, page);
画图 drawImage()方法用于在PDF文档中插入图像。在这种方法中, 我们需要传递页面对象和图像尺寸作为参数来绘制图像。
contents.drawImage(pdImage, 250, 300);
关闭PDPageContentStream 我们可以使用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.graphics.image.PDImageXObject;
public class InsertingImage { 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 pagePDPage page = doc.getPage(1);
//Creating PDImageXObject objectPDImageXObject pdImage = PDImageXObject.createFromFile("/eclipse-workspace/java.jpeg", doc);
//creating the PDPageContentStream objectPDPageContentStream contents = new PDPageContentStream(doc, page);
//Drawing the image in the PDF document contents.drawImage(pdImage, 250, 300);
System.out.println("Image inserted Successfully.");
//Closing the PDPageContentStream object contents.close();
//Saving the document doc.save("/eclipse-workspace/blank.pdf");
//Closing the document doc.close();
}}
输出
成功执行上述程序后, 它显示以下输出消息。
文章图片
现在, 要验证图像已插入文档中, 请打开PDF文档, 该文档将显示以下输出。
文章图片
推荐阅读
- PDFBox加载现有文档
- 获取图像的位置和大小
- PDFBox环境安装详细步骤
- PDFBox功能
- PDFBox提取电话号码
- PDFBox提取图像
- 技术编辑教您win7放大镜技巧怎样打开
- 本文详细说明win7电脑字体怎样改
- 笔者教你压缩软件怎样给文件夹加密