Python3检验pdf文件是否有效

【基本原理】

  利用PyPDF2的PdfFileReader模块打开pdf文件,如果不抛异常,就认为此pdf文件有效。

【情形一】

  pdf文件在磁盘上。

import traceback
from PyPDF2 import PdfFileReader    

#参数为pdf文件全路径名
def isValidPDF_pathfile(pathfile):
    bValid = True
    try:
        #PdfFileReader(open(pathfile, ‘rb‘))
        PdfFileReader(pathfile)
    except:
        bValid = False
        print(‘*‘ + traceback.format_exc())
        
    return bValid

【情形二】

  pdf是来自网络的bytes数据。由于PdfFileReader的参数为文件名或文件对象,所以需要做一下转换。

方法一:

import traceback, tempfile
from PyPDF2 import PdfFileReader    

#参数为bytes类型数据。利用临时文件。
def isValidPDF_bytes(pdfBytes):
    bValid = True
    try:
        fp = tempfile.TemporaryFile()
        fp.write(pdfBytes)
        PdfFileReader(fp)
        fp.close()
    except:
        bValid = False
        print(‘*‘ + traceback.format_exc())
        
    return bValid

方法二:

import io, traceback
from PyPDF2 import PdfFileReader    

#参数为bytes类型数据。利用BytesIO转换。
def isValidPDF_bytes(pdfBytes):
    bValid = True
    try:
        b = io.BytesIO(pdfBytes)
        PdfFileReader(b)
    except:
        bValid = False
        print(‘*‘ + traceback.format_exc())
        
    return bValid

参考文档:

1、The PdfFileReader Class

2、tempfile — Generate temporary files and directories

3、io — Core tools for working with streams

*** walker ***

时间: 2024-10-17 15:46:24

Python3检验pdf文件是否有效的相关文章

从pdf 文件中抽取特定的页面

前段时间买了一个kindle 电子书阅读器.我想用它来读的pdf文档.当然最主要是用来读python标准库&mysql的官方文档. 问题就来了.这两个都是大头书.之前用mac看还好.用kindle就真的不方便了:主要是kindle对pdf的支持不太好.不能 目录导航:于是我就想把大的pdf文件按章节分解成小的pdf文件 一.安装PyPDF2这个python包: pip3 install PyPDF2 二.从源pdf文件中抽取页面: #/usr/local/python/bin/python3 f

在网页中插入pdf文件

由于要做的个人主页的需求,突然想在网页中可不可以插入pdf文件来阅读呢?于是开始查资料, 一种说用<embed>标签,但是没能实行成功 <embed width="800" height="600" src="test_pdf.pdf"> </embed> 通过的浏览器:360.Firefox.IE.Chrome 一种说可以用<object>标签,这种方法经检验可行 这段代码可以在网页中查看pdf文

提取论文标题并自动重命名pdf文件

在我们确定一个研究课题之后,我们总是会先下载一堆相关的paper,看看这个领域现在已经做到一个什么地步,也看看别人是怎么做的,后面自己写paper的时候可以参考参考.当我们把相关的文章都下载到一个文件夹之后,有一个问题,一般我们从IEEE或是ACM相关站点下载的PDF文件的文件名不是相应文章的标题.我们希望文件名尽量能够反映文件的主要内容,文章的标题显然是最能概括文张内容的.昨天上午,一个小时的时间就花在把下载下来的文件重命名上了.因为太费时间,想自己写个简单的小程序来完成这个工作.上网一找,嗬

robotframework 测试工具添加PDF文件内容匹配插件

robotframework  这个需要了解的请度娘.本文实现的是一个小功能.大体分为如下几个步骤 1)给定一个pdf文件. 2)读取pdf文件内容,并解析为文本内容. 3)通过给定的内容,比对pdf文件内容. 4)输出测试结果. 5)发送结果到指定邮件. 其中读取pdf文件内容,使用的是pdfminer 其他的就是自己包装. 涉及到部分隐私内容,部分代码如下: # -*- coding: UTF-8 -*- # coding=utf-8 #from __future__ import unic

pdf文件怎么转换成word文档

网上到处都可以见到精彩的pdf电子书,这样的电子书阅读比较方便,若是编辑的话就比较困难了.尤其需要把pdf电子文档中的内容进行编辑的时 候,难坏的不仅仅是专业编辑人员,也难坏了那些电脑高手.其实只需要把pdf电子文档转换成一种可以编辑的格式就行了,比如最为常用的word格式.目前 有很多pdf转换成word转换器,但是真正实用,好用,简单的转换器却并不多见. 想要一款既能够识别图像,保持图像以及超链接,还有就是不 会导致排版的错乱保持原始版面,以及不会出现乱码的转换器,还真的不好找.今天小编要给

使用Python批量合并PDF文件(带书签功能)

网上找了几个合并pdf的软件,发现不是很好用,一般都没有添加书签的功能. 在网上查找了python合并pdf的脚本,发现也没有添加书签的功能.于是自己动手编写了一个小工具,代码如下: 1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 ''' 4 #文件名:pdfmerge.py 5 本脚本用来合并pdf文件,输出的pdf文件按输入的pdf文件名生成书签 6 使用示例如下: 7 python pdfmerge.py -p "D:\pdf-fi

php如何利用python实现对pdf文件的操作(读写、合并分割)

php如何利用python实现对pdf文件的操作 需求:在PHP里实现了把8.pdf的前4页pdf文件截取出来生成新的pdf文件. 详细步骤如下: 1. 安装python第三方库PyPDF2 前提:python必须是3.x版本以上,必要时需要升级pip3,命令如下:pip3 install --upgrade pipPyPDF 自 2010年 12月开始就不在更新了,PyPDF2 接棒 PyPDF, 在此使用PyPDF2. 安装命令:pip install PyPDF2 2.编写python脚本

深入学习python解析并读取PDF文件内容的方法

这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应用.主要参考了一些已有的博客内容,代码. 主要思路是首先利用一个做项目的形式,描述所做的问题,运行环境,和需要安装的库,然后写代码,此代码是在python2.7中运行,然后写出在python3.6中运行的代码,并详细解释python2.7和python3.6中python库的一些不同之处,最后详细的

记一次为解决Python读取PDF文件的Shell操作

目录 一.背景 二.问题 三.解决 四.一顿分析及 Shell 操作 五.后续 一.背景 本想将 PDF 文件转换为 Word 文档,然后网上搜索了一下发现有挺多转换的软件.有的是免费的.收费,咱也不知哪个好使,还得一个个安装试用.先不说能不解决问题,就这安装试用想想就脑壳疼.便想起了"Python 大法",随即搜了几篇看起来比较完整的博客,二话不说粘贴复制,改改运行试试.使用环境(python3.6+pdfminer3k),代码这里就不放出来了. 二.问题 运气不好,这一试就报错WA