python-pdf添加水印

0、用到两个扩展模块:ReportLab、PyPDF2。

1、创建水印PDF。

1)、创建文字水印pdf文件

代码:

#encoding=utf-8
#author: walker
#date: 2014-03-17
#function: 创建文字水印pdf
from reportlab.pdfgen import canvas
from reportlab.lib.units import cm
def create_watermark(content):
    #默认大小为21cm*29.7cm
    c = canvas.Canvas("mark.pdf", pagesize = (30*cm, 30*cm))
    #移动坐标原点(坐标系左下为(0,0))
    c.translate(10*cm, 5*cm)

    #设置字体
    c.setFont("Helvetica", 80)
    #指定描边的颜色
    c.setStrokeColorRGB(0, 1, 0)
    #指定填充颜色
    c.setFillColorRGB(0, 1, 0)
    #画一个矩形
    c.rect(cm, cm, 7*cm, 17*cm, fill=1)

    #旋转45度,坐标系被旋转
    c.rotate(45)
    #指定填充颜色
    c.setFillColorRGB(0.6, 0, 0)
    #设置透明度,1为不透明
    c.setFillAlpha(0.3)
    #画几个文本,注意坐标系旋转的影响
    c.drawString(3*cm, 0*cm, content)
    c.setFillAlpha(0.6)
    c.drawString(6*cm, 3*cm, content)
    c.setFillAlpha(1)
    c.drawString(9*cm, 6*cm, content)

    #关闭并保存pdf文件
    c.save()
create_watermark('walker')

  

 

 

效果图:

 

原文:

https://www.aliyun.com/jiaocheng/457203.html

 

转载于:https://www.cnblogs.com/andy9468/p/9990831.html

Python中,`python-docx` 是一个用于处理Microsoft Word文档 (.docx)的库,它主要用于读取、创建和修改Word文档的内容。如果你想在Word文档中添加水印,`python-docx`本身并不直接支持这个功能,因为这是Word文档结构的一部分,通常需要通过Office应用或者一些专门的库来实现。 不过,你可以利用其他第三方库,比如 `python-docx-template` 或者结合 `reportlab` 来间接地模拟出类似的效果。例如,你可以在Word文档内容中插入文本框并填充半透明的文字作为水印。这种方法更偏向于生成预设样式而不是真正意义上的"水印",但可以达到类似视觉效果。 以下是使用 `python-docx` 和 `(reportlab)` 实现简单文字水印的一个示例: ```python from docx import Document from reportlab.pdfgen.canvas import Canvas from reportlab.lib.pagesizes import letter from reportlab.lib.units import inch def add_watermark(doc, watermark_text): # 首先打开一个新文档 doc = Document() # 创建PDF canvas,设置尺寸和背景透明度 c = Canvas(doc, pagesize=letter) c.setFillColorRGB(0.9, 0.9, 0.9) # 设置背景颜色为浅灰色 c.saveState() c.setFillAlpha(0.5) # 设置填充透明度 # 添加文字水印 textobject = c.beginText(1*inch, 10*inch) # 文字位置 textobject.textOut(watermark_text) c.drawCentredString(letter/2, 10*inch, watermark_text) c.restoreState() # 恢复到正常状态 # 将PDF数据保存到Word文档的一页上 doc.add_page_break() img = c.print_to_buffer() doc.add_picture(img, width=doc.width, height=doc.height) # 使用方法 add_watermark(doc, "Watermark Text") doc.save('output.docx') ``` 请注意,这只是一个基本示例,实际应用中你可能需要处理更多细节,比如水印的位置、大小调整等。此外,由于不是真正的Word水印,转换成PDF后再插入Word可能会有格式损失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值