在 Python 中为 PDF 添加水印
Contents
[
Hide
]
向 PDF 添加水印工件 Document 使用 Aspose.PDF for Python via .NET。水印是应用于页面的可视化覆盖层,用于品牌化、安全或信息目的。示例展示了如何配置 TextState 外观、定位与 HorizontalAlignment 和 VerticalAlignment,旋转和透明度在将水印应用于 Page.
从 PDF 中提取水印
- 加载 PDF 文档。
- 访问页面伪影。
- 过滤水印伪影。
- 收集水印元素。
- 提取水印属性。
- 输出水印信息。
from os import path
import sys
import aspose.pdf as ap
def extract_watermark_from_pdf(infile):
with ap.Document(infile) as document:
watermarks = [
artifact
for artifact in document.pages[1].artifacts
if artifact.type == ap.Artifact.ArtifactType.PAGINATION
and artifact.subtype == ap.Artifact.ArtifactSubtype.WATERMARK
]
for watermark in watermarks:
print(f"{watermark.text} {watermark.rectangle}")
向 PDF 添加水印
使用 Aspose.PDF for Python 向 PDF 文档添加文本水印:
- 加载 PDF 文档。
- 创建文本状态。
- 创建水印工件。
- 设置水印文本和样式。
- 配置位置和旋转。
- 设置不透明度和背景行为。
- 将水印附加到页面。
- 保存更新后的文档。
from os import path
import sys
import aspose.pdf as ap
def add_watermark_artifact(infile, outfile):
with ap.Document(infile) as document:
text_state = ap.text.TextState()
text_state.font_size = 72
text_state.foreground_color = ap.Color.blue_violet
text_state.font_style = ap.text.FontStyles.BOLD
text_state.font = ap.text.FontRepository.find_font("Arial")
watermark = ap.WatermarkArtifact()
watermark.set_text_and_state("WATERMARK", text_state)
watermark.artifact_horizontal_alignment = ap.HorizontalAlignment.CENTER
watermark.artifact_vertical_alignment = ap.VerticalAlignment.CENTER
watermark.rotation = 60
watermark.opacity = 0.2
watermark.is_background = True
document.pages[1].artifacts.append(watermark)
document.save(outfile)
删除 PDF 页面上的水印伪影
使用 Aspose.PDF for Python API 从 PDF 文档的特定页面中删除水印伪影。该方法针对存储为页面伪影的水印元素(特别是被归类为分页水印子类型的元素),遍历它们并在保存更新后的文档之前将其删除。
- 加载 PDF 文档。
- 访问页面伪影。
- 过滤水印伪影。
- 删除水印伪影。
- 保存更新后的文档。
from os import path
import sys
import aspose.pdf as ap
def delete_watermark_artifact(infile, outfile):
with ap.Document(infile) as document:
watermarks = [
artifact
for artifact in document.pages[1].artifacts
if artifact.type == ap.Artifact.ArtifactType.PAGINATION
and artifact.subtype == ap.Artifact.ArtifactSubtype.WATERMARK
]
for watermark in watermarks:
document.pages[1].artifacts.delete(watermark)
document.save(outfile)