Java 添加、替换、删除PDF中的图片的示例代码
作者:E-iceblue 发布时间:2023-08-28 09:06:26
标签:java,添加,替换,删除,PDF,图片
概述
本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片。另外,关于图片的操作还可参考设置PDF 图片背景、设置PDF图片水印、读取PDF中的图片、将PDF保存为图片等文章。
工具:Free Spire.PDF for Java (免费版)
Jar获取及导入:官网下载,并解压将lib文件夹下的jar文件导入java程序,或者通过maven仓库下载并导入。
jar导入效果:
Java代码示例
【示例1】添加图片到PDF
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
public class AddImage {
public static void main(String[] args) {
//创建文档
PdfDocument pdf = new PdfDocument();
//添加一页
PdfPageBase page = pdf.getPages().add();
//加载图片,并获取图片高宽
PdfImage image = PdfImage.fromFile("fj.png");
int width = image.getWidth()/2;
int height = image.getHeight()/2;
//绘制图片到PDF
page.getCanvas().drawImage(image,50,50,width, height);
//保存文档
pdf.saveToFile("AddImage.pdf");
pdf.dispose();
}
}
图片添加效果:
【示例2】替换PDF中的图片
import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImage;
public class ReplaceImage {
public static void main(String[] args) {
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("AddImage.pdf");
//获取第一页
PdfPageBase page = pdf.getPages().get(0);
//加载一张图片
PdfImage image = PdfImage.fromFile("lh.png");
//使用加载的图片替换第一页上的第一张图片
page.replaceImage(0, image);
//保存文档
pdf.saveToFile("ReplaceImage.pdf");
pdf.dispose();
}
}
图片替换效果:
【示例3】删除PDF中的图片
import com.spire.pdf.*;
public class DeleteImage {
public static void main(String[] args) {
//创建PdfDocument对象
PdfDocument pdf = new PdfDocument();
//加载PDF文档
pdf.loadFromFile("AddImage.pdf");
//获取指定页
PdfPageBase page = pdf.getPages().get(0);
//删除页面上的指定图片
page.deleteImage(0);
//保存文档
pdf.saveToFile("DeleteSpecificImage.pdf", FileFormat.PDF);
pdf.dispose();
}
}
图片删除效果:
总结
以上所述是小编给大家介绍的Java 添加、替换、删除PDF中的图片的示例代码网站的支持!
来源:https://www.cnblogs.com/Yesi/archive/2020/02/14/12307458.html


猜你喜欢
- 最近在项目中用到一个比较有意思的阴影特效从上面的效果图上可以发现在图片的右、下有一个阴影的特效,通过这个阴影效果明显会使得这个提示文本有一种
- 目录顶级程序顶级程序中的方法顶级程序中的类顶级程序的原理分析当我们用 C# 进行编码的时候,总需要写很多的模板代码,即使是最简单的 cons
- 在前面的文章中,我们分析了淘宝android客户端的一些界面实现和用户体验,今天这篇文章,主要介绍如何使用自定义控件,实现抢购倒计时的功能。
- 本文实例为大家分享了java就业信息管理平台开发案例,供大家参考,具体内容如下可查询公司信息,学生信息,班级信息,针对学生就业与否信息的统计
- 简单介绍如果把单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表,通俗讲就是让尾节点指向头结点。单向环
- Mybatis批量插入index out of range错误往往我们看到网上关于各类关于批量插入报这种错误的文章都是传入的集合为null,
- 从什么是IOC开始?Spring——春天,Java编程世界的春天是由一位音乐家—
- 前言今天有一个需求,把之前的判断逻辑进行修改,之前我是用大于(>)小于(<)进行对比的,但是今天让改成大于等于(>=)和小
- 代码实例:<%@ page language="java" contentType="text/html
- 一、 简介Opitonal是java8引入的一个新类,目的是为了解决空指针异常问题。本质上,这是一个包含有可选值的包装类,这意味着 Opti
- Java内存区域与内存溢出异常概述对于 C 和 C++程序开发的开发人员来说,在内存管理领域,程序员对内存拥有绝对的使用权,但是也要主要到正
- 本文实例讲述了C#适用于like语句的SQL格式化函数,分享给大家供大家参考。具体实现代码如下:/// <summary> //
- 优点1.装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。缺点2.多层装饰比较
- 首先我先声明一点,本文单纯就是技术探讨,要从实际应用中来说的话,我并不建议这样去玩分布式事务、也不建议这样去玩多数据源,毕竟分布式事务主要还
- 在安全卫生上,经常看到有圆形的进度条在转动,效果非常好看,于是就尝试去实现一下,具体实现过程不多说了,直接上效果图,先炫耀下。效果图:分析:
- 消息的保存路径消息发送端发送消息到 broker 上以后,消息是如何持久化的?数据分片kafka 使用日志文件的方式来保存生产者和发送者的消
- 介绍超级管理员:系统管理、用户管理、网点管理、运输点管理、快递员管理、网点申请管理(审核)、报价管理(时效报价)等。普通用户:注册登录、个人
- 在html中大家都知道布局是什么意思了,简单来说就是将页面划分模块,比如html中的div、table等。那么Android中也是这样的。A
- 一、栈1.1 概述Java为什么要有集合类: 临时存储数据。链表的本质: 对象间通过持有和引用关系互相关联起来。线性表: 普通线性表, 操作
- 实践过程效果代码public partial class Form1 : Form{ public Form1()