给pdf加水印,python实现

from PyPDF2 import PdfReader, PdfWriterdef add_watermark(pdf_file_in, pdf_file_mark, pdf_file_out):"""把水印添加到pdf中"""pdf_output = PdfWriter()input_stream = open(pdf_file_in, 'rb')pdf_input = PdfReader(input_stream, strict=False)# 获取PDF文件的页数# pageNum = pdf_input.getNumPages()pageNum = len(pdf_input.pages)# 读入水印pdf文件pdf_watermark = PdfReader(open(pdf_file_mark, 'rb'), strict=False)# 给每一页打水印for i in range(pageNum):# page = pdf_input.getPage(i)page = pdf_input.pages[i]page.merge_page(pdf_watermark.pages[0])page.compress_content_streams()  # 压缩内容pdf_output.add_page(page)pdf_output.write(open(pdf_file_out, 'wb'))if __name__ == '__main__':pdf_file_in = 'example.pdf'  #要加水印的原始pdf文件pdf_file_out = 'watermarked.pdf' #加好水印的结果文件pdf_file_mark = 'watermark.pdf'  #要加的水印文件add_watermark(pdf_file_in, pdf_file_mark, pdf_file_out)

word中可以自己编辑水印文件:
在这里插入图片描述
点击设计-水印即可编辑水印文件,效果如下:
在这里插入图片描述
example.pdf:
在这里插入图片描述
最终效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/18482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于魔搭开源推理引擎 DashInfer实现CPU服务器大模型推理--理论篇

前言 在人工智能技术飞速发展的今天,如何高效地在CPU上运行大规模的预训练语言模型(LLM)成为了加速生成式AI应用广泛落地的核心问题。阿里巴巴达摩院模型开源社区ModelScope近期推出了一款名为DashInfer的推理引擎,旨在解决这一挑…

机器学习补充学习

1、Adaboost算法 Adaboost算法是一种集成学习方法,通过结合多个弱学习器来构建一个强大的预测模型。核心思想:如果一个简单的分类器在训练数据上犯错误,那么它在测试数据上也可能犯错误。 Adaboost通过迭代地训练一系列的分类器&#xff0c…

QT-demo:0轴分布图表

版本:5.9 第一种: 使用 PyQt5 和 Matplotlib 库 安装所需的库: pip install PyQt5 matplotlib创建和显示图表: import sys import numpy as np import matplotlib.pyplot as plt from PyQt5.QtWidgets import QApplication, QMainWindow f…

【busybox记录】【shell指令】ln

目录 内容来源: 【GUN】【ln】指令介绍 【busybox】【ln】指令介绍 【linux】【ln】指令介绍 使用示例: 创建链接文件 - 链接文件(默认 - 硬链接) 创建链接文件 - 链接文件(软链接) 创建链接文件 -…

MongoDB CRUD操作:空值和缺失字段的查询

MongoDB CRUD操作:空值和缺失字段的查询 文章目录 MongoDB CRUD操作:空值和缺失字段的查询等式过滤器不等式过滤器类型检查检查是否存在使用 MongoDB Atlas 查询空或缺失字段导航至集合插入一个空文档 MongoDB中不同的查询运算符会以不同的方式处理空值&…

JeeSite 4.x and 5.x快速开发平台前端技术探索与实践

一、引言 随着企业信息化建设的不断推进,对于快速、高效、安全的企业级应用需求日益增长。JeeSite作为一款企业级快速开发平台,以其强大的后端功能和灵活的前端架构,为开发者提供了强大的支持。本文旨在探讨JeeSite快速开发平台在前端技术方…

新零售收银解决方案:传统门店超市的数字化-亿发

在数字化浪潮的推动下,零售行业正经历着前所未有的变革。阿里巴巴提出的“新零售”概念,不仅仅是一个商业口号,它代表了一种全新的商业模式和运营理念。随着时代的进步和消费需求的不断升级,新零售的兴起已成为行业发展的必然趋势…

学习笔记之——2D Gaussian Splatting(2DGS)

3DGS在辐射场重建中取得了巨大的成就,实现高质量的新视图合成和快速渲染。最近新出了3DGS的升级版本,2DGS。写下本博文记录本人学习及测试2DGS的过程,本博文仅为本人学习记录用~ Project WebsiteGithub CodeOriginal paper 目录 原理解读 …

深入理解二叉树及其在C语言中的实现

一、引言 二叉树是数据结构中一种非常基础且重要的树形结构,它的每个节点最多有两个子节点,通常被称为左子节点和右子节点。二叉树在计算机科学中有着广泛的应用,如搜索、排序、存储数据等。本文将详细介绍二叉树的基本概念、特性以及在C语言…

Cmake构建Qt项目链接glog库

//CmakeLists.txt cmake_minimum_required(VERSION 3.5)# 设置项目名称和语言 project(ToolKitManage LANGUAGES CXX)# 允许包含当前目录 set(CMAKE_INCLUDE_CURRENT_DIR ON)# 设置自动处理UI、MOC和RCC set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)# 设…

努力提升自己的技术能力

理解你的感受,很多人都会有类似的想法,尤其是在长期工作后感觉自己在技术和专业方面没有达到预期的水平。但是,重要的是要认识到学习是一个持续的过程,而且每个人都有自己的成长速度和方式。以下是一些建议,希望能帮助…

使用Autofit.js和React实现自适应布局

1. 什么是Autofit.js? Autofit.js是一个用于自适应网页布局的JavaScript库,它可以根据元素的尺寸和屏幕的大小,自动调整布局和排列方式,以适应不同的设备和分辨率。它提供了简单易用的API,可以帮助我们轻松实现各种自…

企业级OV SSL证书的应用场景和加密手段

为了保护数据传输的安全性与用户隐私,企业级OVSSL(Organization Validation SSL)证书成为众多企业的首选安全解决方案。本文将深入探讨OVSSL证书的应用场景及其实现数据加密的核心手段,为企业构建坚不可摧的在线信任桥梁提供指南。…

YOLOv8+PyQt5车辆类型检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

资源包含可视化的车辆类型检测系统,基于最新的YOLOv8训练的车辆类型检测模型,和基于PyQt5制作的可视化车辆类型检测系统,包含登陆页面、注册页面和检测页面,该系统可自动检测和识别图片或视频当中出现的21种车辆类型,包…

语音控制系统的安全挑战与防御策略(上)

语音控制系统(VCS)提供了便捷的用户界面,涉及智能家居、自动驾驶汽车、智能客服等众多应用场景,已成为现代智能设备不可或缺的一部分。其市场规模预计到2023年达到70亿美元,这种扩张带来了重大的安全挑战,如…

基于ViutualBox+Ubuntu(Linux)的开发环境搭建

实际在选择虚拟机的时候纠结了要用virualbox还是vmware,初步比较结果: 1.virualbox能够使用vmware的硬盘格式,因此可以自由选择。 2.都能够实现主机和宿主机之间的文件夹共享。 3.virualbox是自由软件,vmware是商业软件。 在功能上…

【SCAU操作系统】实验二页面置换算法的模拟实现及命中率对比python源代码及实验报告参考

一、课程设计目的 通过请求页式管理方式中页面置换算法的模拟设计,了解虚拟存储技术的特点,掌握请 求页式存储管理中的页面置换算法。 二、课程设计内容 模拟实现 OPT (最佳置换)、 FIFO 和 LRU 算法,并计算缺页…

JUC从实战到源码:CompletableFuture详细学习

【JUC】- CompletableFuture详细学习 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得&#xf…

阅读c++ primer plus指针部分内容

最近一直在阅读c primer plus中文第六版,不愧是c经典教程,让我这个小白从几乎0基础入手c。翻译的可以,当然原版作者更是大神。 指针部分,介绍指针的略过。主要纪录细节问题 1.指针与数字 不能简单地将整数赋值给指针。因为指针和…

读人工智能时代与人类未来笔记17_人类未来

1. 人类未来 1.1. 在印刷读物出现之前,中世纪的欧洲人主要通过社区传统获取知识 1.1.1. 通过参与收割和季节轮作积累民间智慧 1.1.2. 在礼拜场所践行信仰并遵守圣礼 1.1.3. 加入行业公会,学习技术&…