在 Python 中为 PDF 添加水印

向 PDF 添加水印工件 Document 使用 Aspose.PDF for Python via .NET。水印是应用于页面的可视化覆盖层,用于品牌化、安全或信息目的。示例展示了如何配置 TextState 外观、定位与 HorizontalAlignmentVerticalAlignment,旋转和透明度在将水印应用于 Page.

从 PDF 中提取水印

  1. 加载 PDF 文档。
  2. 访问页面伪影。
  3. 过滤水印伪影。
  4. 收集水印元素。
  5. 提取水印属性。
  6. 输出水印信息。
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 文档添加文本水印:

  1. 加载 PDF 文档。
  2. 创建文本状态。
  3. 创建水印工件。
  4. 设置水印文本和样式。
  5. 配置位置和旋转。
  6. 设置不透明度和背景行为。
  7. 将水印附加到页面。
  8. 保存更新后的文档。
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 文档的特定页面中删除水印伪影。该方法针对存储为页面伪影的水印元素(特别是被归类为分页水印子类型的元素),遍历它们并在保存更新后的文档之前将其删除。

  1. 加载 PDF 文档。
  2. 访问页面伪影。
  3. 过滤水印伪影。
  4. 删除水印伪影。
  5. 保存更新后的文档。
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)

相关工件主题