Java 添加和删除PDF图层的示例代码
作者:Tina_Tang 时间:2022-09-03 00:29:01
在PDF文档中,图层可以使部分内容选择性地被隐藏或显示。通过添加图层,我们可以将文本、图片、表格等元素精确定位于页面指定位置,并可将这些元素进行叠放、组合形成页面的最终效果。本文将介绍如何使用Spire.PDF for Java来添加和删除PDF图层。
使用工具: Free Spire.PDF for Java (免费版)
Jar文件获取及导入:
方法1:通过官方网站 下载获取jar包。解压后将lib文件夹下的Spire.Pdf.jar文件导入Java程序。(如下图)
方法2:通过maven仓库安装导入。具体安装详解参见此网页 。
【示例1】添加图层
com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfBrushes;
import com.spire.pdf.graphics.PdfCanvas;
import com.spire.pdf.graphics.PdfPen;
import com.spire.pdf.graphics.layer.PdfLayer;
import java.awt.geom.Point2D;
public class AddLayers {
public static void main(String[] args) {
//创建PDF文档
PdfDocument pdf = new PdfDocument();
//添加一页
PdfPageBase page = pdf.getPages().add();
//添加3个线条图层到PDF文档
PdfLayer layer = pdf.getLayers().addLayer("red line1");
PdfCanvas canvas1 = layer.createGraphics(pdf.getPages().get(0).getCanvas());
canvas1.drawLine(new PdfPen(PdfBrushes.getRed(), 1), new Point2D.Float(50, 350), new Point2D.Float(200, 350));
layer = pdf.getLayers().addLayer("blue line1");
PdfCanvas canvas2 = layer.createGraphics(pdf.getPages().get(0).getCanvas());
canvas2.drawLine(new PdfPen(PdfBrushes.getBlue(), 1), new Point2D.Float(50, 450), new Point2D.Float(200, 450));
layer = pdf.getLayers().addLayer("green line1");
PdfCanvas canvas3 = layer.createGraphics(pdf.getPages().get(0).getCanvas());
canvas3.drawLine(new PdfPen(PdfBrushes.getGreen(), 1), new Point2D.Float(50,550), new Point2D.Float(200, 550));
//保存结果文档
pdf.saveToFile("output/addLayers.pdf");
pdf.close();
}
}
图层添加效果:
【示例2】删除图层
com.spire.pdf.PdfDocument;
public class DeleteLayers {
public static void main(String[] args) {
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("D:\\Desktop\\addLayers.pdf");
//删除名为“red line1”的图层
pdf.getLayers().removeLayer("red line1");
//保存结果文档
pdf.saveToFile("output/deleteLayer.pdf");
pdf.close();
}
}
图层删除效果:
总结
以上所述是小编给大家介绍的Java 添加和删除PDF图层的示例代码网站的支持!
来源:https://segmentfault.com/a/1190000021782331
标签:java,pdf,图层
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别
2022-05-27 00:37:31
Java 超详细讲解ThreadLocal类的使用
2021-11-13 05:58:29
![](https://img.aspxhome.com/file/2023/2/71012_0s.png)
@Autowired注解注入的xxxMapper报错问题及解决
2022-10-01 10:31:02
![](https://img.aspxhome.com/file/2023/5/63635_0s.jpg)
深入解析Java的Spring框架中bean的依赖注入
2023-12-20 18:50:52
![](https://img.aspxhome.com/file/2023/8/66188_0s.png)
Java基础之finally语句与return语句详解
2021-11-27 19:21:22
Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)
2023-08-06 01:01:56
![](https://img.aspxhome.com/file/2023/9/86009_0s.gif)
使用java的Calendar对象获得当前日期
2023-10-11 16:24:23
Android 用 camera2 API 自定义相机
2023-04-30 11:29:37
![](https://img.aspxhome.com/file/2023/2/139532_0s.jpg)
Java聊天室之使用Socket实现通信功能
2022-03-08 09:46:27
![](https://img.aspxhome.com/file/2023/7/69117_0s.png)
Android使用自定义属性实现图片自动播放滚动的功能
2023-04-13 18:51:49
深入C#中get与set的详解
2022-05-29 21:04:10
Android 沉浸式状态栏与隐藏导航栏实例详解
2021-09-08 07:51:14
![](https://img.aspxhome.com/file/2023/5/125405_0s.png)
java图的深度优先遍历实现随机生成迷宫
2023-06-26 06:06:05
![](https://img.aspxhome.com/file/2023/2/62672_0s.jpg)
基于Java代码操作Redis过程详解
2022-03-28 06:53:58
![](https://img.aspxhome.com/file/2023/9/113259_0s.jpg)
Java中synchronized正确使用方法解析
2021-12-20 13:00:39
![](https://img.aspxhome.com/file/2023/5/61865_0s.png)
Java接口默认方法带来的问题分析【二义性问题】
2023-11-27 20:32:55
![](https://img.aspxhome.com/file/2023/7/60117_0s.png)
Java基于LoadingCache实现本地缓存的示例代码
2022-08-28 12:05:04
C#并发编程入门教程之概述
2022-08-08 09:44:23
mybatis 插件: 打印 sql 及其执行时间实现方法
2023-05-29 16:49:19
关于@MapperScan包扫描的坑及解决
2023-02-13 02:45:46