当前位置:首页 » 编程语言 » python处理pdf文件

python处理pdf文件

发布时间: 2022-09-19 04:05:09

python怎样读取pdf文件的内容

1,引言
晚上翻看《Python网络数据采集》这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓取。神奇之处要归功于Firefox解析PDF的能力,能够把pdf格式转换成html标签,比如,div之类的标签,从而用GooSeeker网页抓取软件像抓普通网页一样抓取结构化内容。
从而产生了一个问题:用Python爬虫的话,能做到什么程度。下面将讲述一个实验过程和源代码。
2,把pdf转换成文本的Python源代码
下面的python源代码,读取pdf文件内容(互联网上的或是本地的),转换成文本,打印出来。这段代码主要用了一个第三方库PDFMiner3K把PDF读成字符串,然后用StringIO转换成文件对象。(源代码下载地址参看文章末尾的GitHub源)
复制代码
from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdfFile)
device.close()
content = retstr.getvalue()
retstr.close()
return content
pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
复制代码
如果PDF文件在你的电脑里,那就把urlopen返回的对象pdfFile替换成普通的open()文件对象。
3,展望
这个实验只是把pdf转换成了文本,但是没有像开头所说的转换成html标签,那么在Python编程环境下是否有这个能力,留待今后探索。
4,集搜客GooSeeker开源代码下载源
1. GooSeeker开源Python网络爬虫GitHub源
5,文档修改历史
2016-05-26:V2.0,增补文字说明
2016-05-29:V2.1,增加第六章:源代码下载源,并更换github源的网址

② 怎样利用python将pdf转换成jpg格式

可以用第三方库wand实现(我的环境:win10、python3)

需要安装wand 、imagemagick和ghostscript

wand的安装很简单:直接cmd 运行pip install wand

然后安装imagemagick ,从这里下载网页链接,注意是32位还是64位,这个需要和python的位数一致。

安装过程注意勾选Install development headers and libraries for C and C++ 。安装后设置MAGICK_HOME环境变量,值为imagemagick的安装路径,并将安装路径加入path。

详情可参照此页面网页链接。

最后安装ghostscript,这里下载网页链接,选择AGPL release,注意32位还是64位。

安装过程很简单,一路点击next,如果不想安装在c盘,可以改变安装路径,这个没有影响。

最后上代码(很简单):

#-*-coding:utf-8-*-

fromwand.imageimportImage

withImage(filename="pdf_file_name",resolution=300)asimg:
img.format='jpeg'
img.save(filename='converted.jpg')

上面的pdf_file_name输入要处理的pdf文件名,最后会在当前目录下生成converted.jpg

说明:这几行代码比较简单,处理页数较少的pdf还行,页数太多会卡住。但是可以用pyPDF2分割pdf然后转换,这是一种思路,关于pyPDF2的教程自行网络吧。

③ python怎么合并pdf

<
用下面的方法可以把多个pdf合并成一个PDF文件。
方法一:
1、运行Aaobe acrobat ,然后点击“创建”—“合并文件到单个PDF”,或者点击“ 创建”右侧的“合并”—“合并文件到单个PDF”。
2、弹出“合并文件”的界面,点击“添加文件”—选择“添加文件”/“添加文件夹”/“重新使用文件”来进行添加要合并的PDF文件。
3、弹出“添加文件”的界面,选择好要合并的PDF文件后,点击“添加文件”,完成要合并pdf文件的添加。
4、看到文件已添加完成,如果要调整合并文件的顺序,可以选中该文件然后用左下角的“向上”、“向下”按键来进行顺序的调整,调整完毕后点击右下角的“合并文件”按键。如果只想合并已添加单个pdf文件中的某几个页面可以通过“选择页面”选取想要添加的页面。
5、合并完成以后,会直接打开合并好的文件,名字一般为“组合1”,并自动弹出“另存为”窗口,根据需要变更文件点击保存即可把合并好的文件保存下来。
方法二:
运行PDF Binder,弹出PDF合并器功能界面,点击“添加文件”,添加要合并的PDF文件。
在打开界面选择好要合并的PDF文件后,点击“打开”,完成要合并pdf文件的添加。
下图可以看到文件已添加完成,如果要调整合并文件的顺序,可以选中该文件然后用功能区的“向上”、“向下”按键来进行顺序的调整,调整完毕后点击“合并!”按键。
在弹出的“另存为”界面输入文件名,点击保存完成文件合并,打开文档可以看到文档已合并成功。
方法三,其他如Ap PDF Split-Merge等软件合并文件。

④ 如何把pdf文件转换成word文件 Python文件处理之文件指针

对于不允许做修改的PDF文件——就是加密加了权限的PDF,首先要去除密码或者去除数字证书,推荐用PDF Password Remove,然后再按照下面的方法进行转换为word文件:
方法一:用软件PDF To Word Converter,使用之后然后有两种结果
1、转化出来的就是想要的word,这种情况最理想了;
2、转化出来的word上都是图片,需要上网找“ABBYY finereader v9”一类的文字识别软件。ABBYY finereader v9是我见过的最强大的PDF(图片格式或者是扫描件)转word的软件。它是一款OCR软件,界面比较简洁明,9.0和以上版本有简体中文版的,支持100语言的识别,特别是混合多种语言识别效果也非常好:安装完毕之后,首先把图片上的文字识别出来,然后再对照图片把识别错误的地方改过来,这样就实现了,从JPEG文件到word的格式转换。
方法二:在线PDF转Word共有以下几个步骤:
• 点击浏览按钮选择需要转换的PDF文件。
• 输入需要转换的页码,以逗号分割开,如果转换所有的页面可以跳过这一步。
• 点击按钮上传文件,然后等着就可以了。
• 点击下载链接把做好的文件下载到本地就可以了;
方法三:用其他软件Wondershare PDFelement等处理。

⑤ Python可以用来自动化办公 实现批量Word转pdf吗

这里需要导入几个模块
from win32com.client import Dispatch # 没有的话输入pip install pywin32命令 即可安装
from os import walk
import os

os是用于文件处理常用的模块,至于Dispatch,它是提供了一个接口, win32提供了多种word转换为其他文件的接口,其中FileFormat=17是转换为pdf格式.
之后转换文件逻辑也很简单,首先需要提取出文件名,word文件的后缀是doc或docx,那么将后缀名替换为pdf即可转换,这里用到replace方法,即replace(‘docx’,‘pdf’).replace(‘doc’,‘pdf’)因为有可能后缀是doc,所以需要2次判断。
值得注意的是,转换的文件夹事先要存在,否则会报错误。
下面是项目的源代码
复制代码
from win32com.client import Dispatch # pip install pywin32
from os import walk
import os
wdFormatPDF = 17 # win32提供了多种word转换为其他文件的接口,其中FileFormat=17是转换为pdf
def doc2pdf(input_file, input_file_name, output_dir):
try:
word = Dispatch('Word.Application')
doc = word.Documents.Open(input_file)
except Exception as e:
print("word无法打开, 发生如下错误:\n{}".format(e))
try:
pdf_file_name = input_file_name.replace(".docx", ".pdf").replace(".doc", ".pdf")
pdf_file = os.path.join(output_dir, pdf_file_name)
doc.SaveAs(pdf_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
print("成功转换\"{}\"".format(input_file_name))
print()
except Exception as e:
print("文件保存失败, 发生如下错误:\n{}".format(e))
if __name__ == "__main__":
path_in=input("请输入word文件夹的路径(绝对路径) 要保证存在 建议复制粘贴")
path_out=input("请输入pdf文件夹的路径(绝对路径) 要保证存在 建议复制粘贴")
doc_files = []
directory = path_in# word文件夹
output_dir =path_out # pdf文件夹
for root, _, filenames in walk(directory): # 第2个返回值是dirs, 用不上使用_占位
for file in filenames:
if file.endswith(".doc") or file.endswith(".docx"):
print("转换{}中......".format(file))
doc2pdf(os.path.join(root, file), file, output_dir)
复制代码

⑥ python 遍历文件夹PDF并转换成图片

这种图片的也可以转换成图片的形式,一般文件夹要进行一个转化才可以变成图片。

⑦ python将pdf转图片

方法1:打开pdf文件,选择菜单命令“文件” → “另存为” ,弹出另存为对话框,选择保存类型为“jpg”,保存即可;
方法2:打开pdf文档,选择命令 “另存为其它” → “图像” → “JPEG或JPEG2000”;
方法3:打开pdf文档,选择“编辑”菜单下的“拍快照”(注:选中后,在拍快照前面会有个√显示),同时鼠标变成十字光标,此时拖动鼠标框选你要变换的区域,松开鼠标,弹出确认对话框,点击确认,此时框选的部分已经保存到剪贴板,然后打开系统自带的画图工具,粘贴后保存为jpg文档。方法不适合图片过多的情况,不建议使用!
方法4:试试在线PDF转图片共有以下几个步骤:
• 点击浏览按钮选择需要转换的PDF文件。
输入需要转换的页码,以逗号分割开,如果转换所有的页面可以跳过这一步。
• 点击按钮上传文件,然后等着就可以了。
• 点击下载链接把做好的文件下载到本地就可以了。仅适合低于2MB的文件转换!
方法5:借助pdf转换器。选中pdf转图片功能,然后右下角选择“上传文件或文件夹”,即可一键开始转换,此外还支持转word、excel、ppt等格式。

⑧ python怎么转成pdf

方法一:使用虚拟打印机pdf factory即可,而且其他格式文件只要是能够打印,选择这个虚拟打印机,都可以做成PDF文件,很简单实用;
方法二:用其他虚拟打印机转成PDF文件。
方法三:使用专门的转换软件,把文件转成PDF文件。

⑨ python将pdf转成excel

方法一:ABBYY finereader v9是我见过的最强大的PDF(图片格式或者是扫描件)转excel的软件。它是一款OCR软件,界面比较简洁明,9.0和以上版本有简体中文版的,支持100语言的识别,特别是混合多种语言识别效果也非常好。
国内的OCR软件仅仅是对中文的识别比较好而已。而且,这款软件只要你设置好识别文件所用的语言然后打开PDF文件(支持直接打开的)然后其他的工作就交给软件了,识别完后 文件------另存为excel格式就可以了。而且版面的保持能力是我见过的OCR软件里面最好的一个,识别率也是最高的一个,就是转换识别的速度比较慢。只要PDF文件比较清晰,准确率基本可以达到95%以上(除了数学公式、计算式、化学式、分子式、三角函数等专业的内容之外),强力推荐大家使用。
方法二:在线PDF转Excel共有以下几个步骤:
• 点击浏览按钮选择需要转换的PDF文件。
• 点击按钮上传文件,然后等着就可以了。
• 点击下载链接把做好的文件下载到本地就可以了。
方法三:用其他软件Wondershare PDFelement等处理。

热点内容
电脑改文档服务器 发布:2025-01-11 16:41:14 浏览:868
编译汇编语言实例 发布:2025-01-11 16:36:55 浏览:669
海康ntp校时服务器地址 发布:2025-01-11 16:34:35 浏览:742
服务器运行超时怎么办 发布:2025-01-11 16:34:32 浏览:298
人妖迅雷种子ftp 发布:2025-01-11 16:33:04 浏览:915
python将列表转化为字符串 发布:2025-01-11 16:32:11 浏览:191
大疆稳定器wifi连接初始密码多少 发布:2025-01-11 16:25:36 浏览:889
专线服务器运行的项目如何访问 发布:2025-01-11 16:15:13 浏览:720
小米智能摄像机云存储 发布:2025-01-11 16:12:08 浏览:555
lnmpphp升级 发布:2025-01-11 16:12:07 浏览:326