当前位置:
首页 > temp > python入门教程 >
-
使用 Python 中的 PyPDF4 为 PDF 添加水印
使用 Python 中的 PyPDF4 为 PDF 添加水印
原文:https://www . geesforgeks . org/add-watermark-to-pdf-using-py pdf 4-in-python/
我们非常熟悉 pdf(可移植文档格式)最常用的数据格式,带有扩展名. PDF。虽然 PDF 最初是由 Adobe 发明的,但现在由 ISO 维护,用于跨各种操作系统呈现和交换文档。
装置
可以使用 pip 或 conda 安装,具体取决于您使用的是Python还是Python。
但是,这是您将如何使用 pip 安装的具体版本:
pip install PyPDF4==1.27.0
否则一般来说:
pip install PyPDF4
注意:兼容 Python、2.7 和 3.2–3.5 版本。
添加水印
让我们给我们的 PDF 文件添加一个水印(本文的主要目的)。你一定知道水印是在我们的合法文件中主张我们的权利和知识产权的方式,因此它非常重要。
下面是实现。
原 PDF:
水印 PDF:
Python 3
# compatible with Python versions 2.6, 2.7,
# and 3.2 - 3.5\. (pip3 install pypdf4)
from PyPDF4 import PdfFileWriter, PdfFileReader
import PyPDF4
PyPDF4.PdfFileReader('GFG.pdf')
def put_watermark(input_pdf, output_pdf, watermark):
# reads the watermark pdf file through
# PdfFileReader
watermark_instance = PdfFileReader(watermark)
# fetches the respective page of
# watermark(1st page)
watermark_page = watermark_instance.getPage(0)
# reads the input pdf file
pdf_reader = PdfFileReader(input_pdf)
# It creates a pdf writer object for the
# output file
pdf_writer = PdfFileWriter()
# iterates through the original pdf to
# merge watermarks
for page in range(pdf_reader.getNumPages()):
page = pdf_reader.getPage(page)
# will overlay the watermark_page on top
# of the current page.
page.mergePage(watermark_page)
# add that newly merged page to the
# pdf_writer object.
pdf_writer.addPage(page)
with open(output_pdf, 'wb') as out:
# writes to the respective output_pdf provided
pdf_writer.write(out)
if __name__ == "__main__":
put_watermark(
input_pdf='GFG.pdf', # the original pdf
output_pdf='watermark_added1.pdf', # the modified pdf with watermark
watermark='geeks.pdf' # the watermark to be provided
)
输出:
解释:
- 阅读原始输入 pdf 的页面(使用pdf 文件阅读器()类
- 阅读水印的第一页(使用 PdfFileReader()类)
- 使用pdf writer()类创建一个 pdf writer 对象
- 接下来,就是在输入 _pdf 中的页面上重复。****
- 呼叫。mergePage() 和把水印 _page 传给它。****
- *使用 *addPage() 方法将此合并页面添加到 pdf writer 对象。
- 使用 write()方法将其写入输出页面。****
版权属于:月萌API www.moonapi.com,转载请注明出处
本文链接:https://www.moonapi.com/news/156.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数