word转pdf怎么保持格式字体_PDF怎么免费转word

admin|
95

在日常工作中,常常要把文档转格式,比如常见pdf转word,pdf转ppt等,如果数量少的话还好,可以直接去网上找网站解决,多了的话就比较麻烦了,因为很多网站都是限制一天只能转几个,再多就得冲vip。

那么用python脚本来说应该怎么办呢?办法非常简单,几行代码就可以搞定。

python有专门针对PDF,word,txt,ppt,excel 的包。

我们今天就试着把pdf分别转为这四种格式。

先来看怎么把pdf 转为txt,这里说一个前提,pdf是可以编辑的,如果是影印的可以先转为图片然后再文字识别。

首先你需要安装pdf的包,pdfplumber。

直接

pip install pdfplumber

然后,就可以提取了,首先来看怎么提取单页文字,随便找了一份文档:

#提取文字import pdfplumberwith pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f: page = f.pages[2] textdata = page.extract_text() print(textdata)

这样的话就能提取了,效果还不错:

然后保存成txt,另外加上多页提取:

#多页提取文字import pdfplumberwith pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f:for i in range(1,5): page = f.pages[i] textdata = page.extract_text() print(textdata) data = open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\txt提取.text',"a",encoding='utf-8') data.write(textdata)

格式保存得还不错,也没有什么乱码的出现。

​依据这个原理可以,继续把pdf转成word,这里的pdf限制是只有文字格式,跟刚才的原理一样,是利用的extract_text()函数。

首先需要在终端安装docx这个包。

然后可以执行下面的代码:

下面展示的是单页提取,如果想展示多页提取,可以直接把pages改成[2-5]这种。

#多页提取文字import pdfplumberwith pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f:for i in range(1,5): page = f.pages[i] textdata = page.extract_text() print(textdata) data = open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\txt提取.text',"a",encoding='utf-8') data.write(textdata)

结果如下:有些符号没有提取出来,有些字体不统一,后期需要进行一个调整。

下面一个,就是pdf提取表格放在excel中。

这个来讲的话就比较实用,因为我们如果一个个复制的话真的比较麻烦,还不容易复制完全。这个脚本的限制也有,就是只能提取表格,pdf其他的文字则不能提取。我随意编了一些数据,提取了两页:

我刚试了下,如果直接用pdf复制出来,就是这样的效果:

​代码实现:

import pdfplumberfrom openpyxl import Workbookwith pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\练习.pdf') as f: workbook = Workbook() #新建工作薄 sheet = workbook.active #激活工作表for i in range(1,3): page = f.pages[i] table = page.extract_table()for row in table: print(row) sheet.append(row) workbook.save(r"C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\excel.xlsx") i +=1 print("第%d页pdf提取完成"%i)

关注我 @秋语棠,带你学好玩的python编程。

0条大神的评论

发表评论