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

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

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

Java示例1:添加图层

importcom.spire.pdf.*;importcom.spire.pdf.graphics.*;importcom.spire.pdf.graphics.PdfPen;importcom.spire.pdf.graphics.layer.PdfLayer;importjava.awt.*;importjava.awt.geom.Point2D;publicclassAddlayer{publicstaticvoidmain(String[]args){//新建一个PDF文档,并添加一页PdfDocumentpdf=newPdfDocument();pdf.getPages().add();//添加图层1为直线PdfLayerlayer1=pdf.getLayers().addLayer("线条");//添加图层并指定图层名称PdfCanvascanvas1=layer1.createGraphics(pdf.getPages().get(0).getCanvas());canvas1.drawLine(newPdfPen(PdfBrushes.getRed(),2.5),newPoint2D.Float(0,0),newPoint2D.Float(150,0));//绘制线条图层(指定直线首尾两点坐标,并应用画刷)//创建图层2为形状PdfLayerlayer2=pdf.getLayers().addLayer("椭圆");//添加图层并指定图层名称PdfCanvascanvas2=layer2.createGraphics(pdf.getPages().get(0).getCanvas());PdfPenpen=newPdfPen(newPdfRGBColor(Color.black),2.5f);//创建画笔(指定画笔颜色、粗细)PdfBrushbrush2=newPdfSolidBrush(newPdfRGBColor(Color.PINK));//创建画刷1(设置画刷颜色为:粉色)canvas2.drawEllipse(pen,brush2,65,50,80,80);//绘制形状图层(绘制圆形到指定页面位置,并应用画笔、画刷)//创建图层3为文本字符串PdfLayerlayer3=pdf.getLayers().addLayer("字符串");//添加图层并指定图层名称PdfCanvascanvas3=layer3.createGraphics(pdf.getPages().get(0).getCanvas());PdfTrueTypeFontfont1=newPdfTrueTypeFont(newFont("ArialUnicodeMS",Font.PLAIN,14),true);//创建字体PdfBrushbrush3=newPdfSolidBrush(newPdfRGBColor(Color.BLUE));//创建画刷2(设置画刷颜色为:蓝色)canvas3.drawString("StringStringString",font1,brush3,100,150);//绘制字符串图层(指定字符串到指定页面位置,并应用字体、画刷)//创建图层4为图片PdfLayerlayer4=pdf.getLayers().addLayer("图片");//添加图层并指定图层名称PdfCanvascanvas4=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:隐藏/显示图层

importcom.spire.pdf.FileFormat;importcom.spire.pdf.PdfDocument;importcom.spire.pdf.graphics.layer.PdfVisibility;publicclassHideOrShowLayer{publicstaticvoidmain(String[]args){//加载文档PdfDocumentpdf=newPdfDocument();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:删除图层

importcom.spire.pdf.*;publicclassRemoveLayer{publicstaticvoidmain(String[]args){//加载文档PdfDocumentpdf=newPdfDocument();pdf.loadFromFile("Addlayers.pdf");//根据图层名称索引,删除图层pdf.getLayers().removeLayer("字符串");//保存文档pdf.saveToFile("RemoveLayer.pdf",FileFormat.PDF);pdf.dispose();}}

图层删除效果:

(本文完)