pypdf

最全总结!聊聊 Python 操作PDF的几种方法

爷,独闯天下 提交于 2020-10-25 06:47:11
作者 | 陈熹 来源 | 早起Python 前言 本文主要涉及: os 模块综合应用 glob 模块综合应用 PyPDF2 模块操作 基本操作 PyPDF2 导入模块的代码常常是: from PyPDF2 import PdfFileReader, PdfFileWriter 这里导入了两个方法: PdfFileReader 可以理解为读取器 PdfFileWriter可以理解为写入器 接下来通过几个案例进一步认识这两个工具的奇妙之处,用到的示例文件是5个发票的pdf 每个发票的PDF都由两页组成: 合并 第一个工作是将5个发票pdf合并成10页。这里读取器和写入器应该怎么配合呢? 逻辑如下: 读取器将所有pdf读取一遍 读取器将读取的内容交给写入器 写入器统一输出到一个新pdf 这里还有一个重要的知识点:读取器只能将读取的内容一页一页交给写入器。 因此,逻辑中第1步和第2步实际上不是彼此独立的步骤,而是读取器读取完一个pdf后,就将这个pdf全部页循环一遍,挨页交给写入器。最后等读取工作全部结束后再输出。 看一下代码可以让思路更清楚: from PyPDF2 import PdfFileReader, PdfFileWriterpath = r'C:\Users\xxxxxx'pdf_writer = PdfFileWriter()for i in range(1, 6):

付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具

不羁岁月 提交于 2020-08-08 20:01:40
PDF(Portable Document Format),中文名称便携文档格式是我们经常会接触到的一种文件格式,文献、文档...很多都是PDF格式。它以格式稳定的优势,使得我们在打印、分享、传输过程中能够最优的保持原有色彩和格式。 PDF是以PostScript语言图像模型为基础的一种文档格式,它在格式的稳定性方面虽然具有很大优势。但是,在可编辑性方面却为使用者引入了另外一个困扰。 例如,在文档的分割、合并、剪切、转换、编辑等方面PDF就有些捉襟见肘了。 Adobe Reader、福昕阅读器、熊猫PDF...经常用到的PDF工具只能用于文档阅读,但是免费版都不可以用于文档编辑。虽然,网页版PDF工具,例如SmallPDF、I love PDF可以用于PDF的编辑,但是对于文档大小也有限制。 曾经,为了替换PDF中的一页,我几乎试遍了所有市面上主流的PDF工具,最终还是不得不选择使用付费工具来解决问题。 事后想了想,既然这些商业化软件不靠谱,为什么不考虑自己动手开发一款工具呢?明明几十行代码能够解决的问题,为什么要费那么多劲去下载、安装那些没有节操的软件呢? 本文就来介绍一下利用Python轻松开发一款PDF编辑工具,可以用于PDF转TxT、分割、合并、剪切、转换。 PyPDF2 PyPDF2是一个第三方的python PDF库,它能够对PDF文件进行分割、合并、裁剪和转换页面。

How to detect a rotated page in a PDF document in Python?

核能气质少年 提交于 2020-08-05 04:17:21
问题 Given a PDF document with multiple pages, how to check if a given page is rotated (-90, 90 or 180º)? Preferable using Python (pdfminer, pyPDF) ... UPDATE: The pages are scanned, and most of the page is composed by text. 回答1: I used simply /Rotate attribute of the page in PyPDF2 : pdf = PyPDF2.PdfFileReader(open('example.pdf', 'rb')) orientation = pdf.getPage(pagenumber).get('/Rotate') it can be 0 , 90 , 180 , 270 or None 来源: https://stackoverflow.com/questions/34515674/how-to-detect-a-rotated

Can this fillable PDF be automated?

蹲街弑〆低调 提交于 2020-07-10 10:25:23
问题 The bounty expires in 6 days . Answers to this question are eligible for a +50 reputation bounty. Derik81 wants to draw more attention to this question: Just help me get all the fields to get populated with data. Please check out this PDF. It is a fillable PDF form and I wanted to know if there is any way that this pdf can be auto filled, if I have the data to be filled in each box in excel format. I know most of the PDF are in binary format but is that any way to know what is the ID of each

Create outlines/TOC for existing PDF in Python

自古美人都是妖i 提交于 2020-07-05 03:29:28
问题 I'm using pyPdf to merge several PDF files into one. This works great, but I would also need to add a table of contents/outlines/bookmarks to the PDF file that is generated. pyPdf seems to have only read support for outlines. Reportlab would allow me to create them, but the opensource version does not support loading PDF files, so that doesn't work to add outlines to an existing file. Is there any way I can add outlines to an existing PDF using Python, or any library that would allow that?

利用PyPDF2删除PDF文件首页

浪尽此生 提交于 2020-05-02 00:38:26
前话:有个朋友让我给他编辑他们公司的PDF文件,签名的日期时间不对,需要进(nong)行(xu)优(zuo)化(jia)。而我手上只有两个管理pdf的软件,一个福晰阅读器,还有一个福晰编辑器。但是阅读器只能阅读,所以只能用福析编辑器进行编辑了,虽然编辑起来很方便,但是免费版保存下多了一页首页广告。手上也没有其他pdf编辑软件能分页,就想着能不能用python写个小程序。后来发现有个PyPDF2第三方库可以拿来用。 下面以一个代码来说明: # !usr/bin/env python # coding:utf-8 from PyPDF2 import PdfFileReader, PdfFileWriter import time # 生成一个PdfFileWriter对象 pdf_new = PdfFileWriter() # 以交互形式输入需要处理的文件 pri_file = input( ' 请输入你要去掉首页的PDF文件: ' ) # 读取待处理的文件 pdf_input = PdfFileReader(open(pri_file, ' rb ' )) # 算出总页数 page_count = pdf_input.getNumPages() # 去掉首页后,把其余页添加到PdfFileWriter对象中 for i in range(1 , page_count): pdf

python数据处理excel和pdf,并打包成exe

∥☆過路亽.° 提交于 2020-05-01 23:17:17
之前零散的用过一点python做数据处理,这次又遇到一个数据处理的小功能,因此,记录一下整个流程,方便以后查阅。 功能要求:读取excel,找指定的PDF文件的页数是否与excel中记录的一致 整个处理过程包括python环境配置,插件安装,excel和PDF处理,exe打包 1、python环境配置 IDE用的是PyCharm社区版,pyhon环境用的是pandas,它内嵌了很多数据处理的插件,就有我们这次需要的excel处理插件。 安装其他插件,PDF处理采用PyPDF2,exe打包采用pyinstaller 2、excel和PDF处理 整个代码就不贴了,太多了也不想看,下面说一下主要代码块 1)excel读写 import pandas as pd # 读取excel文件,configPath为excel文件路径,configSheetName为excel中sheet表单名称 configTable = pd.read_excel(configPath, configSheetName) # 读取表单中的数据,返回一个数组,数组存储每行的信息,fieldCount为表单数据列总数 configUnit = configTable.iloc[:, range(fieldCount)] configCount = len(configUnit) for k in range

python爬虫处理在线预览的pdf文档

会有一股神秘感。 提交于 2020-04-09 11:24:12
引言 最近在爬一个网站,然后爬到详情页的时候发现,目标内容是用pdf在线预览的 比如如下网站: https://camelot-py.readthedocs.io/en/master/_static/pdf/foo.pdf 根据我的分析发现,这样的在线预览pdf的采用了pdfjs加载预览,用爬虫的方法根本无法直接拿到pdf内的内容的,对的,你注意到了我说的【根本无法直接拿到】中的直接两个字,确实直接无法拿到,怎么办呢?只能把pdf先下载到本地,然后用工具转了,经过我查阅大量的相关资料发现,工具还是有很多:   1.借用第三方的pdf转换网站转出来   2.使用Python的包来转:如:pyPdf,pyPdf2,pyPdf4,pdfrw等工具 这些工具在pypi社区一搜一大把: 但是效果怎么样就不知道了,只能一个一个去试了,到后面我终于找到个库,非常符合我的需求的库 ——camelot camelot可以读取pdf文件中的数据,并且自动转换成pandas库(数据分析相关)里的DataFrame类型,然后可以通过DataFrame转为csv,json,html都行,我的目标要的就是转为html格式,好,废话不多说,开始搞 开始解析 1.安装camelot: pip install camelot-py pip install cv2 (因为camelot需要用到这个库) 2.下载pdf

Pypdf extracts code from one PDF, but not from another?

点点圈 提交于 2020-01-16 08:41:20
问题 I am trying to make a primitive crawler for my own pdf files. For that, I use Pypdf to extract the Data (Customer, Product, Amount, etc.) and use that data. Now, I have the code, its pretty easy, but it doesn't seem to be able to extract anything out of my PDFs while I tried it on some random PDF from google and it works. I tried with multiple of my documents, pdfs, don't work, random pdf off the internet works. I use Spyder. Below is the code I am using: import PyPDF2 as p2 PDFfile=open("pdf