返回顶部
首页 > 资讯 > 后端开发 > Python >Python对PDF文件的常用操作方法有哪些
  • 956
分享到

Python对PDF文件的常用操作方法有哪些

2023-06-30 16:06:29 956人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python对pdf文件的常用操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python对PDF文件的常用操作方法有哪些”文章能帮助大家解决问题。工具python3.

这篇文章主要介绍“pythonpdf文件的常用操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python对PDF文件的常用操作方法有哪些”文章能帮助大家解决问题。

工具

python3.7

PyCharm

PDF

PyPDF2

reportlab

从PDF中提取文本

PyPDF2没有办法从PDF文档中提取图像、图表或其他媒体,但它可以提取文本,并将其返回为Python字符串

import PyPDF2reader = PyPDF2.PdfFileReader('test.pdf')page = reader.getPage(0)print(page.extractText())

旋转和叠加页面

上面的代码中通过创建PdfFileReader对象的方式来读取PDF文档,该对象的getPage方法可以获得PDF文档的指定页并得到一个PageObject对象,通过PageObject对象的rotateClockwise和rotateCounterClockwise方法可以实现页面的顺时针和逆时针方向旋转,通过PageObject对象的addBlankPage方法可以添加一个新的空白页,代码如下所示。

import PyPDF2from PyPDF2.pdf import PageObject# 创建一个读PDF文件的Reader对象reader = PyPDF2.PdfFileReader('resources/xxx.pdf')# 创建一个写PDF文件的Writer对象writer = PyPDF2.PdfFileWriter()# 对PDF文件所有页进行循环遍历for page_num in range(reader.numPages):    # 获取指定页码的Page对象    current_page = reader.getPage(page_num)  # type: PageObject    if page_num % 2 == 0:        # 奇数页顺时针旋转90度        current_page.rotateClockwise(90)    else:        # 偶数页反时针旋转90度        current_page.rotateCounterClockwise(90)    writer.addPage(current_page)# 最后添加一个空白页并旋转90度page = writer.addBlankPage()  # type: PageObjectpage.rotateClockwise(90)# 通过Writer对象的write方法将PDF写入文件with open('resources/xxx.pdf', 'wb') as file:    writer.write(file)

加密PDF文件

使用PyPDF2中的PdfFileWrite对象可以为PDF文档加密,如果需要给一系列的PDF文档设置统一的访问口令,使用Python程序来处理就会非常的方便。

import PyPDF2reader = PyPDF2.PdfFileReader('resources/XGBoost.pdf')writer = PyPDF2.PdfFileWriter()for page_num in range(reader.numPages):    writer.addPage(reader.getPage(page_num))# 通过encrypt方法加密PDF文件,方法的参数就是设置的密码writer.encrypt('foobared')with open('resources/XGBoost-encrypted.pdf', 'wb') as file:    writer.write(file)

创建PDF文件

创建PDF文档需要三方库reportlab的支持,使用 pip install reportlab 命令安装

from reportlab.lib.pagesizes import A4from reportlab.pdfbase import pdfmetricsfrom reportlab.pdfbase.ttfonts import TTFontfrom reportlab.pdfgen import canvaspdf_canvas = canvas.Canvas('resources/python创建.pdf', pagesize=A4)width, height = A4# 绘图image = canvas.ImageReader('resources/xxx.jpg')pdf_canvas.drawImage(image, 20, height - 395, 250, 375)# 显示当前页pdf_canvas.showPage()# 注册字体文件pdfmetrics.reGISterFont(TTFont('Font1', 'resources/fonts/Vera.ttf'))pdfmetrics.registerFont(TTFont('Font2', 'resources/fonts/青呱石头体.ttf'))# 写字pdf_canvas.setFont('Font2', 40)pdf_canvas.setFillColorRGB(0.9, 0.5, 0.3, 1)pdf_canvas.drawString(width // 2 - 120, height // 2, '你好,世界!')pdf_canvas.setFont('Font1', 40)pdf_canvas.setFillColorRGB(0, 1, 0, 0.5)pdf_canvas.rotate(18)pdf_canvas.drawString(250, 250, 'hello, world!')# 保存pdf_canvas.save()

补充

合并PDF

from PyPDF2 import PdfFileReader, PdfFileWriterdef merge_pdfs(paths, output): pdf_writer = PdfFileWriter() for path in paths:  pdf_reader = PdfFileReader(path)  for page in range(pdf_reader.getNumPages()):   # 将每页添加到writer对象   pdf_writer.addPage(pdf_reader.getPage(page)) # 写入合并的pdf with open(output, 'wb') as out:  pdf_writer.write(out)if __name__ == '__main__': paths = ['document1.pdf', 'document2.pdf'] merge_pdfs(paths, output='merged.pdf')

添加水印

from PyPDF2 import PdfFileWriter, PdfFileReaderdef create_watermark(input_pdf, output, watermark): watermark_obj = PdfFileReader(watermark) watermark_page = watermark_obj.getPage(0) pdf_reader = PdfFileReader(input_pdf) pdf_writer = PdfFileWriter() # 给所有页面添加水印 for page in range(pdf_reader.getNumPages()):  page = pdf_reader.getPage(page)  page.mergePage(watermark_page)  pdf_writer.addPage(page) with open(output, 'wb') as out:  pdf_writer.write(out)if __name__ == '__main__': create_watermark(  input_pdf='Jupyter_Notebook_An_Introduction.pdf',    output='watermarked_notebook.pdf',  watermark='watermark.pdf')

关于“Python对PDF文件的常用操作方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Python对PDF文件的常用操作方法有哪些

本文链接: https://lsjlt.com/news/330000.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python对PDF文件的常用操作方法有哪些
    这篇文章主要介绍“Python对PDF文件的常用操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python对PDF文件的常用操作方法有哪些”文章能帮助大家解决问题。工具python3....
    99+
    2023-06-30
  • Python对PDF文件的常用操作方法详解
    目录工具从PDF中提取文本旋转和叠加页面加密PDF文件创建PDF文件补充工具 python3.7 Pycharm PDF PyPDF2 reportlab 从PDF中提取文本 PyP...
    99+
    2024-04-02
  • python文件常用操作方法有哪些
    文件的一般操作步骤打开文件或创建新文件:使用相应的编程语言和对应的库或模块打开一个已经存在的文件或者创建新文件。读取文件内容或向文件中写入内容:通过读取文件内容或向文件中写入内容来实现对文件的操作,可以使用相应的方法和函数来实现。处理文件数...
    99+
    2023-05-20
    Python
  • java中常用的文件操作方法有哪些
    这篇文章将为大家详细讲解有关java中常用的文件操作方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的文件的操作方法public class FileUtility { public stat...
    99+
    2023-06-03
  • Python操作Excel文件的方法有哪些
    本篇内容介绍了“Python操作Excel文件的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据处理是 Python 的一大应用...
    99+
    2023-06-16
  • Python中的文件操作方法有哪些
    这篇文章主要介绍“Python中的文件操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的文件操作方法有哪些”文章能帮助大家解决问题。一、文件的编码计算机中有许多可用编码:U...
    99+
    2023-07-04
  • python中有哪些文件操作方法
    这篇文章给大家介绍python中有哪些文件操作方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮...
    99+
    2023-06-14
  • Python操作Word文档docx的常用方法有哪些
    这篇文章主要介绍Python操作Word文档docx的常用方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!安装docx是一个非标准库,需要在命令行(终端)中使用pip即可安装...
    99+
    2024-04-02
  • bat文件与Vbs文件间的常用操作方法有哪些
    这篇“bat文件与Vbs文件间的常用操作方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“bat文件与Vbs文件间的常...
    99+
    2023-07-04
  • python文件处理的操作方法有哪些
    Python文件处理的操作方法有以下几种: 打开文件:使用内置的open()函数来打开一个文件。可以指定文件路径、打开模式(读取、...
    99+
    2024-02-29
    python
  • python集合常用操作方法有哪些
    本篇内容介绍了“python集合常用操作方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!集合的特性无序、不重复、可迭代常用api创建...
    99+
    2023-07-04
  • PS文件操作的方法有哪些
    本文小编为大家详细介绍“PS文件操作的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“PS文件操作的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。文件操作读到...
    99+
    2024-04-02
  • java文件操作的方法有哪些
    这篇文章主要讲解了“java文件操作的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java文件操作的方法有哪些”吧!文件的建立/检查与删除<%@ page="&q...
    99+
    2023-06-03
  • Python操作CSV格式文件的方法有哪些
    这篇文章主要介绍“Python操作CSV格式文件的方法有哪些”,在日常操作中,相信很多人在Python操作CSV格式文件的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python操作CSV格式文件...
    99+
    2023-06-20
  • Scala文件操作方法有哪些
    本篇内容介绍了“Scala文件操作方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 读取数据在Scala语言的  So...
    99+
    2023-07-05
  • nginx的常用操作方法有哪些
    这篇文章主要介绍“nginx的常用操作方法有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“nginx的常用操作方法有哪些”文章能帮助大家解决问题。nginx启动,重启,关闭命令停止操作停止操作前...
    99+
    2023-06-28
  • Python处理Excel的常用操作方法有哪些
    本篇内容介绍了“Python处理Excel的常用操作方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据是网上找到的销售数据,长这样...
    99+
    2023-07-05
  • 使用Python操作PDF文件
    从PDF读取文本内容和从已经有的文档生成新的PDF。 需要用到的模块是PyPDF2. mstamy2/PyPDF2: A utility to read and write PDFs...
    99+
    2024-04-02
  • Java中对文件的操作有哪些
    这篇文章主要介绍“Java中对文件的操作有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中对文件的操作有哪些”文章能帮助大家解决问题。  java中提供了io类库,可以轻松的用...
    99+
    2023-06-03
  • 常用的JS操作JSON方法有哪些
    这篇文章给大家分享的是有关常用的JS操作JSON方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、概要简介JSON(JavaScript Object Notation...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作