Java 添加和刪除PDF圖層的示例代碼
在PDF文檔中,圖層可以使部分內(nèi)容選擇性地被隱藏或顯示。通過(guò)添加圖層,我們可以將文本、圖片、表格等元素精確定位于頁(yè)面指定位置,并可將這些元素進(jìn)行疊放、組合形成頁(yè)面的最終效果。本文將介紹如何使用Spire.PDF for Java來(lái)添加和刪除PDF圖層。
使用工具: Free Spire.PDF for Java (免費(fèi)版)
Jar文件獲取及導(dǎo)入:
方法1:通過(guò)官方網(wǎng)站 下載獲取jar包。解壓后將lib文件夾下的Spire.Pdf.jar文件導(dǎo)入Java程序。(如下圖)

方法2:通過(guò)maven倉(cāng)庫(kù)安裝導(dǎo)入。具體安裝詳解參見(jiàn)此網(wǎng)頁(yè) 。
【示例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) {
//創(chuàng)建PDF文檔
PdfDocument pdf = new PdfDocument();
//添加一頁(yè)
PdfPageBase page = pdf.getPages().add();
//添加3個(gè)線條圖層到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));
//保存結(jié)果文檔
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");
//保存結(jié)果文檔
pdf.saveToFile("output/deleteLayer.pdf");
pdf.close();
}
}
圖層刪除效果:

總結(jié)
以上所述是小編給大家介紹的Java 添加和刪除PDF圖層的示例代碼,希望對(duì)大家有所幫助,也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
springmvc集成shiro登錄權(quán)限示例代碼
本篇文章主要介紹了springmvc集成shiro登錄權(quán)限示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
Java Kafka實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列的示例詳解
在分布式系統(tǒng)中,消息隊(duì)列是一種常見(jiàn)的異步通信機(jī)制,而優(yōu)先級(jí)隊(duì)列則是消息隊(duì)列的一種特殊形式,下面我們來(lái)看看如何利用Kafka實(shí)現(xiàn)優(yōu)先級(jí)隊(duì)列吧2025-03-03
基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解
這篇文章主要介紹了基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
SpringBoot訪問(wèn)靜態(tài)資源的配置及順序說(shuō)明
這篇文章主要介紹了SpringBoot訪問(wèn)靜態(tài)資源的配置及順序說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
使用springboot時(shí),解決@Scheduled定時(shí)器遇到的問(wèn)題
這篇文章主要介紹了使用springboot時(shí),解決@Scheduled定時(shí)器遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
一次java異步任務(wù)的實(shí)戰(zhàn)記錄
最近做項(xiàng)目的時(shí)候遇到了一個(gè)小問(wèn)題,從前臺(tái)提交到服務(wù)端A,A調(diào)用服務(wù)端B處理超時(shí),下面這篇文章主要給大家介紹了一次java異步任務(wù)的實(shí)戰(zhàn)記錄,需要的朋友可以參考下2022-05-05
Java讀取resources中資源文件路徑以及jar中文件無(wú)法讀取的解決
這篇文章主要介紹了Java讀取resources中資源文件路徑以及jar中文件無(wú)法讀取的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過(guò)程詳解
這篇文章主要介紹了SpringBoot服務(wù)端數(shù)據(jù)校驗(yàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02

