在 PDF 中添加文字印章通过 Python

使用 Python 添加文字印章

您可以使用 TextStamp 类在 PDF 文件中添加文字印章。TextStamp 类提供了创建基于文本的印章所需的属性,例如字体大小、字体样式和字体颜色等。为了添加文字印章,您需要使用所需的属性创建一个 Document 对象和一个 TextStamp 对象。之后,您可以调用 Page 的 add_stamp() 方法在 PDF 中添加印章。以下代码片段向您展示了如何在 PDF 文件中添加文字印章。


    import aspose.pdf as ap

    # 打开文档
    document = ap.Document(input_pdf)

    # 创建文字印章
    text_stamp = ap.TextStamp("Sample Stamp")
    # 设置印章是否为背景
    text_stamp.background = True
    # 设置起始位置
    text_stamp.x_indent = 100
    text_stamp.y_indent = 100
    # 旋转印章
    text_stamp.rotate = ap.Rotation.ON90
    # 设置文本属性
    text_stamp.text_state.font = ap.text.FontRepository.find_font("Arial")
    text_stamp.text_state.font_size = 14.0
    text_stamp.text_state.font_style = ap.text.FontStyles.BOLD
    text_stamp.text_state.font_style = ap.text.FontStyles.ITALIC
    text_stamp.text_state.foreground_color = ap.Color.aqua
    # 将印章添加到特定页面
    document.pages[1].add_stamp(text_stamp)

    # 保存输出文档
    document.save(output_pdf)

为 TextStamp 对象定义对齐方式

在 PDF 文档中添加水印是经常需要的功能之一,Aspose.PDF for Python 完全能够添加图像和文本水印。我们有一个名为 TextStamp 的类,它提供了在 PDF 文件上添加文本印章的功能。最近有一个需求是支持在使用 TextStamp 对象时指定文本对齐方式的功能。因此,为了满足这一需求,我们在 TextStamp 类中引入了 text_alignment 属性。使用此属性,我们可以指定 horizontal_alignment 文本对齐方式。

以下代码片段展示了如何加载现有 PDF 文档并在其上添加 TextStamp 的示例。


    import aspose.pdf as ap

    # 用输入文件实例化 Document 对象
    doc = ap.Document(input_pdf)
    # 用示例字符串实例化 FormattedText 对象
    text = ap.facades.FormattedText("This")
    # 向 FormattedText 添加新文本行
    text.add_new_line_text("is sample")
    text.add_new_line_text("Center Aligned")
    text.add_new_line_text("TextStamp")
    text.add_new_line_text("Object")
    # 使用 FormattedText 创建 TextStamp 对象
    stamp = ap.TextStamp(text)
    # 指定文本印章的水平对齐方式为居中对齐
    stamp.horizontal_alignment = ap.HorizontalAlignment.CENTER
    # 指定文本印章的垂直对齐方式为居中对齐
    stamp.vertical_alignment = ap.VerticalAlignment.CENTER
    # 指定 TextStamp 的文本水平对齐方式为居中对齐
    stamp.text_alignment = ap.HorizontalAlignment.CENTER
    # 设置印章对象的上边距
    stamp.top_margin = 20
    # 在文档的第一页上添加印章对象
    doc.pages[1].add_stamp(stamp)

    # 保存更新后的文档
    doc.save(output_pdf)

在 PDF 文件中填充描边文本作为印章

我们已经实现了在文本添加和编辑场景中设置渲染模式。要渲染描边文本,请创建 TextState 对象以传递高级属性。为描边设置颜色。之后,设置文本渲染模式,下一步是绑定 TextState,并添加印章。

以下代码片段演示了如何添加填充描边文本:


    import aspose.pdf as ap

    # 创建 TextState 对象以传递高级属性
    ts = ap.text.TextState()
    # 为描边设置颜色
    ts.stroking_color = ap.Color.gray
    # 设置文本渲染模式
    ts.rendering_mode = ap.text.TextRenderingMode.STROKE_TEXT
    # 加载输入 PDF 文档
    file_stamp = ap.facades.PdfFileStamp(ap.Document(input_pdf))

    stamp = ap.facades.Stamp()
    stamp.bind_logo(
        ap.facades.FormattedText(
            "PAID IN FULL",
            ap.facades.FontColor(100, 100, 100),
            ap.facades.FontStyle.TIMES_ROMAN,
            ap.facades.EncodingType.WINANSI,
            True,
            78.0,
        )
    )

    # 绑定 TextState
    stamp.bind_text_state(ts)
    # 设置 X,Y 原点
    stamp.set_origin(100, 100)
    stamp.opacity = 5
    stamp.blending_space = ap.facades.BlendingColorSpace.DEVICE_RGB
    stamp.rotation = 45.0
    stamp.is_background = False
    # 添加印章
    file_stamp.add_stamp(stamp)
    file_stamp.save(output_pdf)
    file_stamp.close()