PDF 中的图层类似于图像编辑软件中的图层,可以将文档的不同元素组织和管理在一起。每个图层可以包含不同的内容,如文本、图片、图形或注释,并且可以独立地显示或隐藏。PDF 图层通常用于控制文档中特定元素的可见性和位置,以便更容易管理复杂布局、创建动态设计或控制信息的显示。在本文中,您将学习如何使用 Spire.PDF for Python 在 Python 中添加、隐藏和删除 PDF 文档中的图层。
安装 Spire.PDF for Python
本教程需要用到 Spire.PDF for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.PDF for Python
Python 在 PDF 中添加图层
使用 Document.Layers.AddLayer() 方法可以向 PDF 文档添加图层。在创建图层对象之后,您可以在其上绘制文本、图片、字段或其他元素来形成其外观。使用 Spire.PDF for Python 添加图层到 PDF 的详细步骤如下所示。
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载一个 PDF 文件。
- 使用 Document.Layers.AddLayer() 方法创建一个图层。
- 通过 PdfDocument.Pages[index] 属性获取特定页面。
- 使用 PdfLayer.CreateGraphics() 方法基于页面创建一个图层的画布。
- 使用 PdfCanvas.DrawString()方法在画布上绘制文本。
- 使用 PdfDocument.SaveToFile() 方法将文档保存到另一个 PDF 文件中。
- Python
from spire.pdf.common import *
from spire.pdf import *
def AddLayerWatermark(pdfDocument):
# 添加一个名为"水印图层"的图层
layer = pdfDocument.Layers.AddLayer("水印图层")
# 创建字体实例,字体设置为宋体,大小为50.0,加粗
font = PdfTrueTypeFont("宋体", 50.0, 1, True)
# 水印文本内容
watermarkText = "内部使用"
# 测量水印文本在给定字体下的尺寸
fontSize = font.MeasureString(watermarkText)
# 获取PDF文档中的总页数
pageCount = pdfDocument.Pages.Count
# 遍历每一页
for i in range(0, pageCount):
# 获取当前页对象
page = pdfDocument.Pages[i]
# 在当前页上创建图形画布
canvas = layer.CreateGraphics(page.Canvas)
# 计算水印文本的横向位置
x = (canvas.Size.Width - fontSize.Width) / 2
# 计算水印文本的纵向位置
y = (canvas.Size.Height - fontSize.Height) / 2
# 在画布上绘制水印文本
canvas.DrawString(watermarkText, font, PdfBrushes.get_Red(), x, y )
# 创建一个PdfDocument实例
pdf = PdfDocument()
# 加载输入的PDF文件
pdf.LoadFromFile("输入文档.pdf")
# 调用添加水印的函数
AddLayerWatermark(pdf)
# 将带有水印的PDF文件保存为新的文件
pdf.SaveToFile("添加图层.pdf", FileFormat.PDF)
pdf.Close()
Python 设置 PDF 中图层的可见性
要控制 PDF 文档中图层的可见性,您可以使用 PdfDocument.Layers[index].Visibility 属性。将其设置为 off 以隐藏图层,或将其设置为 on 以取消隐藏图层。具体步骤如下:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载一个 PDF 文件。
- 通过 Document.Layers[index].Visibility 属性设置某个图层的可见性。
- 使用 PdfDocument.SaveToFile() 方法将文档保存到另一个 PDF 文件中。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建一个PdfDocument实例
pdfDocument = PdfDocument()
# 从文件加载PDF文档
pdfDocument.LoadFromFile("图层.pdf")
# 将第一个图层的可见性设置为隐藏
pdfDocument.Layers[0].Visibility = PdfVisibility.Off
# 将隐藏图层后的文档保存为新的PDF文件
pdfDocument.SaveToFile("隐藏图层.pdf", FileFormat.PDF)
pdfDocument.Close()
Python 删除 PDF 中的某一个图层
如果不再需要某个图层,您可以使用 PdfDocument.Layers.RemoveLayer() 方法将其移除。以下是详细步骤:
- 创建一个 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 方法加载一个PDF文件。
- 通过 PdfDocument.Layers[index] 属性获取特定的图层。
- 使用 PdfDocument.Layers.RemoveLayer(PdfLayer.Name) 方法从文档中移除该图层。
- 使用 PdfDocument.SaveToFile() 方法将文档保存到另一个 PDF 文件中。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建一个PdfDocument实例
pdfDocument = PdfDocument()
# 从文件加载PDF文档
pdfDocument.LoadFromFile("图层.pdf")
# 删除文档中的第一个图层
pdfDocument.Layers.RemoveLayer(pdfDocument.Layers[0].Name)
# 将删除图层后的文档保存为新的PDF文件
pdfDocument.SaveToFile("删除图层.pdf", FileFormat.PDF)
pdfDocument.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。