Python办公之——PDF添加水印

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

库的介绍

  • ReportLab是一个功能强大的Python库,专门用于生成PDF文档。它提供了丰富的API,允许用户创建包含文本、图像、表格、图表等复杂内容的PDF文件。以下是对ReportLab的详细介绍

特点与优势

功能丰富:ReportLab支持在PDF文件中添加文本、图像、表格、图表等多种元素,满足复杂的文档生成需求。
灵活性强:用户可以通过编程的方式完全控制文档的生成过程,实现高度定制化的需求。
广泛应用:ReportLab广泛应用于报告生成、数据可视化、电子表格、图表等领域,是Python社区中非常受欢迎的PDF生成工具之一。
跨平台性:ReportLab可以在多个平台上运行,并且支持Python 2和Python 3,确保了在不同环境下的兼容性。 完善的文档:ReportLab提供了详细的文档和示例,方便用户学习和使用。

主要功能

文本处理:用户可以设置字体、字号、颜色、位置等属性,在PDF文件中添加文本内容。
图像处理:支持将图像插入到PDF文件中,并可以设置图像的位置、大小等属性。
表格生成:提供了Table和TableStyle类,用于创建复杂且样式丰富的表格。用户可以定义表格的列宽、边框、背景色等样式。
图表绘制:虽然ReportLab本身不直接提供图表绘制功能,但可以通过与其他库(如matplotlib)结合使用,将图表作为图像插入到PDF文件中。
页面设置:用户可以自定义页面的大小、边距等属性,以满足不同的文档布局需求。

库的安装

pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple/

1、示例代码(创建空白PDF)

from reportlab.pdfgen import canvas  
  
# 创建一个PDF文件对象  
c = canvas.Canvas("example.pdf")  
  
# 设置字体和字号  
c.setFont("Helvetica", 12)  
  
# 添加文本到PDF文件  
c.drawString(100, 750, "Hello, ReportLab!")  
  
# 保存PDF文件  
c.save()

2、添加水印

  • 引入本地电脑支持的字体,注册字体类
  • Windows 电脑中,字体默认保存在 C:\Windows\Fonts\,文件后缀为 .ttf,在其中找到想要想要生成的字体路径,填入上述代码片段对应位置。

在这里插入图片描述

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont

# 注册字体,注意修改字体文件路径为你的系统中的实际路径
font_path = "C:\\Windows\\Fonts\\simkai.ttf"
pdfmetrics.registerFont(TTFont('simkai', font_path))

cm = 1

def create_watermark(watermark_text='python-小庄办公', font_size=15, pagesize=A4):
    watermark_canvas = canvas.Canvas("watermark.pdf", pagesize=pagesize)
    watermark_canvas.setFont("simkai", font_size)
    watermark_canvas.setFillAlpha(0.1) # 设置透明度,1为不透明
    # 正确地计算并传递两个参数给 translate 方法
    watermark_canvas.translate(A4[0]/2, A4[1]/2)
    watermark_canvas.rotate(30) # 水印旋转角度
    for i in range(5):
        for j in range(10):
            a = (i - 2) * A4[0] / 5
            b = (j - 4) * A4[1] / 10
            watermark_canvas.drawString(a, b, watermark_text)
    watermark_canvas.save()

create_watermark()

在这里插入图片描述

在这里插入图片描述

其余关于 PDF 的文章

文章名称文章链接
Python-读取PDF之—PyPDF2https://blog.csdn.net/weixin_42636075/article/details/140610700
python将众多PDF合并为一个PDF文件中(反之拆分)https://blog.csdn.net/weixin_42636075/article/details/140607498
Python—PDFMiner(办公篇-提取PDF内容)https://blog.csdn.net/weixin_42636075/article/details/138918126
Python提取PDF中的图片并保存https://blog.csdn.net/weixin_42636075/article/details/138930606
Python提取PDF中的表格写入Excelhttps://blog.csdn.net/weixin_42636075/article/details/137219634
Python+docx2pdf批量将word转pdfhttps://blog.csdn.net/weixin_42636075/article/details/136410808
Python-pdfplumber读取PDF所有内容并自行提取指定内容https://blog.csdn.net/weixin_42636075/article/details/128655337

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

Python中给PDF文件添加水印有多种方法。一种方法是使用PyPDF2库,在代码中将水印文件作为一个页面插入到其他PDF文件中。你可以使用以下代码实现这个功能: from os.path import splitext from PyPDF2 import PdfFileReader, PdfFileWriter def add_watermark(watermark, pdf_in): writer = PdfFileWriter() pdf_src = PdfFileReader(pdf_in) for i in range(pdf_src.getNumPages()): # 合并水印页和内容页,水印页在下,内容页在上 page = PdfFileReader(watermark).getPage(0) page.mergePage(pdf_src.getPage(i)) writer.addPage(page) # 生成结果文件 with open('_带水印'.join(splitext(pdf_in)), 'wb') as fp: writer.write(fp) add_watermark('水印文件.pdf', '需水印的文件.pdf') 另一种方法是使用Python-docx库创建一个docx文档,添加自定义的艺术字水印,并将其转换为PDF文件。你可以按照以下步骤来实现: 1. 创建一个docx文档。 2. 在文档中添加艺术字水印,并进行必要的样式设计。 3. 将docx文档保存为PDF文件。 这样,你就可以在PDF文件中看到添加水印。 另外,你还可以使用python3-fitz模块来给PDF文件添加水印。这个模块依赖MuPDF,所以请确保你已经安装了这个模块。使用python3-fitz模块,你可以遍历PDF文件中的所有页面,并插入水印图片。以下是一个示例代码: import fitz doc = fitz.open("需要添加水印的文件.pdf") logo = "水印图片.png" for page in doc: rect = fitz.Rect(0, 0, 200, 200) # 水印图片的位置和大小 page.insertImage(rect, filename=logo) doc.save("带水印的文件.pdf") 这样,你就可以在带水印PDF文件中看到插入的水印图片。 希望这些方法可以帮助你在Python中给PDF文件添加水印。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一晌小贪欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值