Java 添加和删除PDF图层的示例代码
作者:Tina_Tang 发布时间:2022-09-03 00:29:01
标签:java,pdf,图层
在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


猜你喜欢
- 很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆。  
- SpringBoot实践,开发社区登录模块今日份开启 发送邮件三个步骤:1、邮箱设置首先需要注册一个新浪邮箱 18215626061@sin
- 最近在做项目的过程中 需要用JWT做登录和鉴权 查了很多资料 都不甚详细有的是需要在application.yml里进行jwt的配置 但我在
- 前言不知道从哪一个版本起,Android studio 设置界面中已经没有忽略文件的设置。可能也是没有找到。下面简单记录下如何简单高效的配置
- 场景既然要搞懂Redis分布式锁,那肯定要有一个需要它的场景。高并发售票问题就是一个经典案例。搭建环境准备redis服务,设置redis的键
- 需求使用 spring-boot 项目开发中,项目启动时“非常”慢的。如果每次修改代码或静态资源文件后都需要重新启动项目,这是多么痛苦的事。
- 本文实例为大家分享了java实现双人五子棋游戏的具体代码,供大家参考,具体内容如下通过 上下左右 控制棋盘走动 空格落子 &nb
- 一、RESTful风格API的好处API(Application Programming Interface),顾名思义:是一组编程接口规范
- 访问静态资源的配置及顺序今天在玩SpringBoot的demo的时候,放了张图片在resources目录下,启动区访问的时候,突然好奇是识别
- 本文由Markdown语法编辑器编辑完成。1. 需求分析;已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回X
- 下面通过代码给大家介绍c++ string insert() 函数,具体内容如下:basic_string& inser
- 本文实例为大家分享了Java实现 * 系统的具体代码,供大家参考,具体内容如下父类Vehiclepublic abstract class
- 前情提要本文中提供了九种方式获取resources目录下文件的方式。其中打印文件的方法如下: /**
- 实例如下:import java.lang.reflect.Field;import java.lang.reflect.Invocatio
- 在SpringBoot中,当需要获取到配置文件数据时,除了可以用Spring自带的@Value注解外,SpringBoot提供了一种更加方便
- 在程序开发过程中,如何会使用键盘来完成所有的操作,会提高开发的速度。所以说,灵活的掌握并应用visual studio 的键盘快捷键非常重要
- LRU缓存替换策略缓存是一种非常常见的设计,通过将数据缓存到访问速度更快的存储设备中,来提高数据的访问速度,如内存、CPU缓存、硬盘缓存等。
- 1. 测试用例我们以sentinel-demo中的sentinel-annotation-spring-aop为例,分析sentinel的源
- 最近公司的一款产品提交国内市场,发现有些国内市场提示需要进行应用认领。原因就是别人(或者市场抓取)已经在我们之前将这个应用提交到了该市场。认
- 先对问题进行描述:(1)在MyEclipse Servers视图在MyEclipse 10.7.0在某些情况下,可能无法打开。 试图打开视图