mac系统python转pdf并添加水印

1.使用pdfkit模块转pdf文件

pdfkit.from_string方法可以把字符串转成pdf文件,成功返回True

注:

pdfkit.from_url('http://google.com', 'out.pdf')  # url转pdf

pdfkit.from_file('test.html', 'out.pdf')  # html文件转pdf

详细文档参见https://pypi.org/project/pdfkit/

2.使用pypdf2模块给pdf文件加水印

注意:只能使用本地文件,不能用远程存储路径,水印文件应为pdf格式,并且水印文件页面尺寸应该与要加水印的pdf文件保持一致

3.关于生成pdf文件样式,比如字体,页眉页脚,页面尺寸

注意:页面样式在options字段设置,详细文档参见https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

4.关于中文乱码问题

注意:有两点,第一,如果使用的是python2环境,应把系统默认编码改为utf-8,python3可以忽略此步骤。第二,生成pdf文档时应在options字段设置文字编码为'encoding': "UTF-8"

import sys
import pdfkit
from PyPDF2 import PdfFileWriter, PdfFileReader

if sys.getdefaultencoding() != 'utf-8':   # python2环境不是utf-8编码,需要设定默认编码
    reload(sys)
    sys.setdefaultencoding('utf-8')


def add_watermark(input_str, output_pdf, watermark_pdf):
    user_name = "123456" # 页脚文本
    options = {
        'margin-top': '0.75in',   # 页面上边距
        'margin-right': '0.75in',
        'margin-bottom': '0.75in',
        'margin-left': '0.75in',
        'minimum-font-size': '30',   # 页面字体大小
        'footer-right': user_name,  # 右页脚设定文本
        'footer-font-size': '20',
        'encoding': "UTF-8"  # 设定生成pdf文件为utf-8编码,避免生成pdf中文乱码
    }
    res = pdfkit.from_string(input_str, '/Users/Desktop/out.pdf', options=options)
    if not res:
        return 0
    watermark = PdfFileReader(watermark_pdf)  # 本地水印文件
    watermark_page = watermark.getPage(0)
    pdf = PdfFileReader('/Users/Desktop/out.pdf')  # 本地生成不带水印的pdf文件
    pdf_writer = PdfFileWriter()
    for page in range(pdf.getNumPages()):
        pdf_page = pdf.getPage(page)
        pdf_page.mergePage(watermark_page)
        pdf_writer.addPage(pdf_page)
    pdf_writer.write(open(output_pdf, 'wb'))  # 本地生成带水印的pdf文件


if __name__ == '__main__':
    add_watermark("     今天,老师宣布了期中考试前十名。我紧张极了。因为我做为中队委;做为老师眼中的好学生;做为妈妈的乖女儿,如果没有进前十,那脸就丢尽了!"
                  "老师的话语刚刚响起,我的心就开始狂跳个不停。同学们都坐得笔直,唯独我的手在抖、脚在不安地踢着地面。一个、两个……许多同学都被念到了,还是没有我。环顾四周,被念到的同学红光满面,没有被点到的,也只能坐着干着急。而我,心已经跳到了嗓子眼:我该怎么办啊?!真希望我的名字不要在名单中“离家出走”。天气虽然很冷,我的脑门上却渗出了一层密密的汗珠。"
            ", "rwps.pdf", "water.pdf")

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值