本文介绍操作PDF图层的方法。可分为添加图层(包括添加线条、形状、字符串、图片等图层)、隐藏或显示图层、删除图层等。具体可参考如下Java代码示例。

工具:Free Spire.PDF for Java (免费版)

Jar包下载和导入:可通过官网下载,下载后,解压,将lib文件夹下的Sprie.Pdf.jar导入Java程序;或者可通过Maven仓库下载导入。如下导入效果:

Java示例1:添加图层

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.graphics.PdfPen;
import com.spire.pdf.graphics.layer.PdfLayer; import java.awt.*;
import java.awt.geom.Point2D; public class Addlayer {
public static void main(String[]args){
//新建一个PDF文档,并添加一页
PdfDocument pdf = new PdfDocument();
pdf.getPages().add(); //添加图层1为直线
PdfLayer layer1 = pdf.getLayers().addLayer("线条");//添加图层并指定图层名称
PdfCanvas canvas1 = layer1.createGraphics(pdf.getPages().get(0).getCanvas());
canvas1.drawLine(new PdfPen(PdfBrushes.getRed(), 2.5), new Point2D.Float(0, 0), new Point2D.Float(150, 0));//绘制线条图层(指定直线首尾两点坐标,并应用画刷) //创建图层2为形状
PdfLayer layer2 = pdf.getLayers().addLayer("椭圆");//添加图层并指定图层名称
PdfCanvas canvas2 = layer2.createGraphics(pdf.getPages().get(0).getCanvas());
PdfPen pen = new PdfPen( new PdfRGBColor(Color.black),2.5f);//创建画笔(指定画笔颜色、粗细)
PdfBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.PINK));//创建画刷1(设置画刷颜色为:粉色)
canvas2.drawEllipse(pen, brush1, 65, 50, 80, 80);//绘制形状图层(绘制圆形到指定页面位置,并应用画笔、画刷) //创建图层3为文本字符串
PdfLayer layer3 = pdf.getLayers().addLayer("字符串");//添加图层并指定图层名称
PdfCanvas canvas3 = layer3.createGraphics(pdf.getPages().get(0).getCanvas());
PdfTrueTypeFont font1= new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,14),true);//创建字体
PdfBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));//创建格式刷2(设置画刷颜色为:蓝色)
canvas3.drawString("String String String", font1, brush2, 100, 150);//绘制字符串图层(指定字符串到指定页面位置,并应用字体、画刷) //创建图层4为图片
PdfLayer layer4 = pdf.getLayers().addLayer("图片");//添加图层并指定图层名称
PdfCanvas canvas4 = layer4.createGraphics(pdf.getPages().get(0).getCanvas());
canvas4.drawImage(PdfImage.fromFile("tp.png"), 30, 190, 150, 135);//绘制图片图层(加载图片,绘制到指定页面位置并指定图片大小) //保存文档
pdf.saveToFile("Addlayers.pdf",FileFormat.PDF);
pdf.dispose();
} }

图层添加效果:

Java示例2:隐藏/显示图层

import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.layer.PdfVisibility; public class HideOrShowLayer {
public static void main(String[] args) {
//加载文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Addlayers.pdf"); pdf.getLayers().get(0).setVisibility(PdfVisibility.Off);//设置图层隐藏
//pdf.getLayers().get(2).setVisibility(PdfVisibility.On);//设置图层显示 //保存文档
pdf.saveToFile("HideOrShowLayer.pdf", FileFormat.PDF);
pdf.dispose();
}
}

图层隐藏/显示效果:

Java示例3:删除图层

import com.spire.pdf.*;

public class RemoveLayer {
public static void main(String[] args) {
//加载文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Addlayers.pdf"); //根据图层名称索引,删除图层
pdf.getLayers().removeLayer("字符串"); //保存文档
pdf.saveToFile("RemoveLayer.pdf",FileFormat.PDF);
pdf.dispose();
}
}

图层删除效果:

(完)

Java 添加、隐藏/显示、删除PDF图层的更多相关文章

  1. java如何实现批量删除pdf指定的页数

    依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-app ...

  2. Java 添加、验证PDF 数字签名

    在设置文档内容保护的方法中,除了对文档加密.添加水印外,应用数字签名也是一种有效防伪手段.数字签名的文件比较容易验证,并且具有较高的权威性和可信度.在PDF文档中,有可直接添加或验证数字签名的功能方法 ...

  3. Java 添加、删除、移动、隐藏/显示Excel工作表

    本文内容将介绍通过Java程序如何添加.删除.移动工作表,以及设置工作表隐藏.显示等操作.文中使用了Java Excel类库(Free Spire.XLS for Java 免费版),可通过官网下载包 ...

  4. Java添加、提取、替换和删除PDF图片

    (一)简介 这篇文章将介绍在Java中添加.提取.删除和替换PDF文档中的图片. 工具使用: Free Spire.PDF for JAVA 2.4.4(免费版) Intellij IDEA Jar包 ...

  5. JAVA 添加、修改和删除PDF书签

    当阅读篇幅较长的PDF文档时,为方便我们再次阅读时快速定位到上一次的阅读位置,可以插入一个书签进行标记:此外,对于文档中已有的书签,我们也可以根据需要进行修改或者删除等操作.本篇文章将通过Java编程 ...

  6. Java 添加、替换、删除PDF中的图片

    概述 本文介绍通过java程序向PDF文档添加图片,以及替换和删除PDF中已有的图片.另外,关于图片的操作还可参考设置PDF 图片背景.设置PDF图片水印.读取PDF中的图片.将PDF保存为图片等文章 ...

  7. C# 操作PDF 图层(Layer)——添加、删除图层、设置图层可见性

    前言 通过添加图层,我们可以将文本.图片.表格.图形等元素精确定位于页面指定位置,将这些元素进行叠放.组合形成页面的最终效果.此外,对于页面中已有的图层我们也可以进行设置图层可见性.删除图层等操作.因 ...

  8. C# 添加、获取及删除PDF附件

    C# 添加.获取及删除PDF附件 前言 附件在PDF文档中很常见,这些附件可以是PDF或其他类型的文件.在PDF中,附件有两种存在方式,一种是普通的文件附件(document-level file a ...

  9. C# 添加、修改和删除PDF书签

    C# 添加.修改和删除PDF书签 有时候我们在阅读PDF文档时会遇到这样一种情况:PDF文档页数比较多,但是又没有书签,所以我们不能根据书签快速了解文档所讲解的内容,也不能点击书签快速跳转到相应的位置 ...

随机推荐

  1. springboot项目启动-自动创建数据表

    很多时候,我们部署一个项目的时候,需要创建大量的数据表.例如mysql,一般的方法就是通过source命令完成数据表的移植,如:source /root/test.sql.如果我们需要一个项目启动后, ...

  2. NodeMCU入坑指南-低成本打造零舍友闻风丧胆WiFi断网神器

    前言 最近对IoT方面比较感兴趣,所以在某宝上入手了一块NodeMCU的开发板,至于为什么我选择这块开发板呢?嘿嘿,当然是因为便宜啊

  3. Linux 脏数据回刷参数与调优

    简介 我们知道,Linux用cache/buffer缓存数据,且有个回刷任务在适当时候把脏数据回刷到存储介质中.什么是适当的时候?换句话说,什么时候触发回刷?是脏数据达到多少阈值还是定时触发,或者两者 ...

  4. 树莓派中Docker部署.Net Core 3.1 (一)

    一.背景 受疫情影响,已经在家强制事假一个月了,除了刷简历外就是在家学习,闲来无事,最近买了几个树莓派4B的板子回来,准备用树莓派搭建个自动部署的平台和微服务示例,长话短说,节约时间,直接进入正题吧 ...

  5. P - Sudoku Killer HDU - 1426(dfs + map统计数据)

    P - Sudoku Killer HDU - 1426 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为 ...

  6. 理解 Hanoi 汉诺塔非递归算法

    汉诺塔介绍: 汉诺塔(港台:河内塔)是根据一个传说形成的数学问题: 最早发明这个问题的人是法国数学家爱德华·卢卡斯. 传说越南河内某间寺院有三根银棒,上串 64 个金盘.寺院里的僧侣依照一个古老的预言 ...

  7. php--MongoDB的使用

    添加 $collection = (new MongoDB\Client)->test->users; // 增加一条 $insertOneResult = $collection-> ...

  8. Linux配置dhcp服务器

    一.安装dhcp软件 yum -y install dhcp 二.配置 dhcp 主配置文件 /etc/dhcp/dhcpd.conf ns-update-style interim; log-fac ...

  9. MySQL入门,第四部分,学会创建、删除表

    一.列完整性约束 列完整性约束:是指对某一列设置的约束条件.该列上的数据必须满足.最常见的有: NOT NULL 该列值不能为空 NULL  该列值可以为空 UNIQUE 该列值不能存在相同 DEFA ...

  10. Flask 入门(九)

    外键数据库 我们想想,所有的数据不可能这么简单,万一建的数据库有了外键呢?如何增加,如何查询? 承接上文: 先登录mysql数据库,把里面的表和数据都删了 执行语句: use data select ...