Python自动加word水印

在工作生活中,我们常常需要对Word文档进行处理,如添加水印、修改格式、提取内容等。而Python作为一种功能强大而又易于使用的编程语言,可以帮助我们快速自动化这些繁琐的操作。本文将介绍如何使用Python自动给Word文档添加水印。

1. 准备工作

在使用Python进行Word文档处理之前,我们需要安装相关的第三方库,其中python-docx是一个非常常用的库,可以用于读取和修改Word文档。可以使用以下命令来安装该库:

pip install python-docx

2. 创建一个空白的Word文档

首先,我们需要创建一个空白的Word文档,用于添加水印。可以使用以下代码创建一个新的Word文档:

from docx import Document

# 创建一个空白的Word文档
document = Document()
document.save('watermark.docx')

在上述代码中,我们使用Document()函数创建了一个空白的Word文档,并使用save()方法将其保存为watermark.docx

3. 添加水印

接下来,我们需要定义一个函数,用于向Word文档中添加水印。水印可以是文字、图片等形式,本文以文字水印为例进行演示。可以使用以下代码来添加文字水印:

from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml

def add_watermark(document, watermark_text):
    # 创建一个水印样式
    watermark_style = document.sections[0].footer.paragraphs[0].add_run().paragraph_format
    watermark_style.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

    # 添加水印内容
    watermark = document.sections[0].footer.paragraphs[0].add_run(watermark_text)
    watermark.font.size = Pt(72)
    watermark.font.bold = True
    watermark.font.color.rgb = RGBColor(192, 192, 192)

    # 设置水印位置和旋转角度
    watermark_element = watermark._element
    watermark_element.get_or_add_ln().get_or_add_txW().text = watermark_text
    watermark_element.get_or_add_layout().get_or_add_tab().val = 'right'
    watermark_element.get_or_add_layout().get_or_add_ext().cx = 400000
    watermark_element.get_or_add_layout().get_or_add_ext().cy = 400000
    watermark_element.get_or_add_layout().get_or_add_rot().val = 5400000

    # 将水印添加到所有页面
    for section in document.sections:
        footer = section.footer
        footer.is_linked_to_previous = False
        footer.element.remove(footer.element.xpath('.//w:p/w:r/w:t', namespaces=nsdecls)[0].getparent().getparent())

        footer._element.append(parse_xml(watermark_element.xml))

在上述代码中,我们首先定义了一个add_watermark()函数,该函数接受两个参数:document是要添加水印的Word文档,watermark_text是水印的内容。然后我们使用add_run()方法创建一个新的Run对象,设置水印样式和内容,并将水印添加到文档的页脚中。

4. 使用示例

下面是一个完整的示例,演示如何使用Python给Word文档添加水印:

from docx import Document
from docx.shared import RGBColor, Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml

def add_watermark(document, watermark_text):
    # 创建一个水印样式
    watermark_style = document.sections[0].footer.paragraphs[0].add_run().paragraph_format
    watermark_style.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

    # 添加水印内容
    watermark = document.sections[0].footer.paragraphs[0].add_run(watermark_text)
    watermark.font.size = Pt(72)
    watermark.font.bold = True
    watermark.font.color.rgb = RGBColor(192, 192, 192)

    # 设置水印位置和旋转角度
    watermark_element = watermark._element
    watermark_element.get_or_add_ln().get_or_add_txW().text = watermark_text
    watermark_element.get_or_add_layout().get