Python实现Word转PDF并加水印

在日常工作中,我们经常需要将Word文档转换为PDF格式,并在转换后的PDF中添加水印。本文将介绍如何使用Python实现这一功能,并给出相应的代码示例。

Word转PDF

首先,我们需要安装 Python-docx 和 pdfkit 库来实现Word文档转换为PDF。Python-docx 用于读取和处理Word文档,pdfkit 则是一个HTML转PDF的工具,我们可以先将Word文档转换为HTML,再将HTML转换为PDF。

安装Python-docx和pdfkit
pip install python-docx
pip install pdfkit
  • 1.
  • 2.
Word转PDF示例代码
import pdfkit
from docx import Document

# 读取Word文档
doc = Document('example.docx')

# 将Word文档内容写入HTML文件
html = open('temp.html', 'w', encoding='utf-8')
for para in doc.paragraphs:
    html.write(para.text + '<br>')
html.close()

# 将HTML文件转换为PDF
pdfkit.from_file('temp.html', 'example.pdf')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

以上代码将 example.docx 中的内容转换为 example.pdf

PDF添加水印

接下来,我们需要使用 PyPDF2 库来给PDF文件添加水印。PyPDF2 是一个用于操作PDF文件的库,可以方便地对PDF文件进行各种操作,包括添加水印。

安装PyPDF2
pip install PyPDF2
  • 1.
PDF添加水印示例代码
from PyPDF2 import PdfFileWriter, PdfFileReader

def add_watermark(input_pdf, output_pdf, watermark_text):
    watermark = PdfFileReader('watermark.pdf')
    
    output = PdfFileWriter()
    input = PdfFileReader(input_pdf)

    for page in range(input.getNumPages()):
        input_page = input.getPage(page)
        input_page.merge_page(watermark.getPage(0))
        output.addPage(input_page)

    with open(output_pdf, 'wb') as outputStream:
        output.write(outputStream)

add_watermark('example.pdf', 'example_watermarked.pdf', 'CONFIDENTIAL')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

以上代码将 example.pdf 添加水印后保存为 example_watermarked.pdf

完整流程

下面是将Word转换为PDF并添加水印的完整流程图:

读取Word文档 写入HTML文件 将HTML转换为PDF 添加水印

总结

通过本文的介绍,我们学习了如何使用Python将Word文档转换为PDF并在PDF中添加水印。这个功能能够帮助我们更高效地处理文档,并保护文档的机密性。希望本文对你有所帮助!