python编程pdf,
本文主要介绍Python代码实现一个永久免费的PDF编辑工具,通过示例代码介绍的非常详细,对大家的学习或工作有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。
00-1010py PDF 2删除PDF页面合并PDF旋转添加水印加密pdfminerPDF到TxT摘要PDF是我们经常接触到的文件格式,很多文档,文档.都是PDF格式。具有格式稳定的优势,使我们在打印、共享和传输过程中,能够最佳地保持原有的颜色和格式。
PDF是基于PostScript语言图像模型的文档格式,虽然在格式稳定性上有很大优势。然而,就可编辑性而言,它给用户带来了另一个难题。
例如,在文档分割、合并、剪切、转换和编辑方面,PDF有些捉襟见肘。
Adobe Reader,福信阅读器,熊猫PDF.常用的PDF工具只能用于文档阅读,免费版不能用于文档编辑。虽然基于网络的PDF工具,如SmallPDF和I love PDF,可以用来编辑PDF,但也有对文档大小的限制。
有一次,为了替换一个PDF中的一个页面,我尝试了市面上几乎所有主流的PDF工具,最后不得不选择使用付费工具来解决问题。
想了想,既然这些商业软件都不靠谱,为什么不考虑自己开发一个工具呢?几十行代码就能解决问题,为什么还要大费周章下载安装毫无节操的软件?
本文介绍了如何使用Python轻松开发一个PDF编辑工具,可以用来将PDF转换成TxT,拆分、合并、剪切、转换。
目录
Py2是第三方python PDF库,可以对PDF文件的页面进行分割、合并、裁剪和转换。
此外,它还可以为PDF文件添加自定义数据、水印和密码,还可以从PDF文件中检索文本和元数据。
固定
使用pip直接安装:
$ pip安装PyPDF2
下面是几个PDF编辑函数的演示,代码的含义会逐行解释。
PyPDF2
先给出实现代码,
从PyPDF2导入PdfFileWriter、PdfFileReader
output=PdfFileWriter() //1
input 1=PdfFileReader(open( example . pdf , Rb )//2
def delete_pdf(索引):
pages=input1.getNumPages() //3
对于范围内的I(页数):
如果我在索引:中
继续
output . add page(input 1 . get page(I))//4
output stream=open( py pdf 2-output . pdf , wb )
output.write(输出流)//5
删除_pdf([2,3,4])
以下是代码中的一些要点:
声明用于输出PDF的实例;读取本地PDF文件;获取PDF文档的页数;读取PDF的第一页,并将其添加到output输出实例;在本地保存编辑过的文档;
删除PDF页
现在PDF页面已经删除,让我们看看如何将另一个PDF中的页面合并到当前PDF中。
方法1:
您可以通过删除PDF页面来扩展和合并PDF。
从PyPDF2导入PdfFileWriter、PdfFileReader
output=PdfFileWriter()
input 1=PdfFileReader(open( example . pdf , rb ))
input 2=PdfFileReader(open( simple 2 . pdf , Rb )//
1
def merge_pdf(add_index, origin_index):
pages = input1.getNumPages()
k = 0
for i in range(pages):
if i+1 in add_index:
output.addPage(input2.getPage(origin_index[k])) // 2
pages += 1
k += 1
output.addPage(input1.getPage(i))
outputStream = open("PyPDF2-output.pdf", "wb")
output.write(outputStream)
merge_pdf([2,3,4], [0, 0, 0])
- 读取需要合并的源文件;
- 遍历到指定页,合并源PDF的页面;
方法2:
除了方法1,还有另外一种方法可以合并PDF:
from PyPDF2 import PdfFileMerger // 1merger = PdfFileMerger()
input1 = open("document1.pdf", "rb") // 2
input2 = open("document2.pdf", "rb")
input3 = open("document3.pdf", "rb")
merger.append(fileobj = input1, pages = (0,3)) // 3
merger.merge(position = 2, fileobj = input2, pages = (0,1)) // 4
merger.append(input3) // 5
output = open("document-output.pdf", "wb")
merger.write(output)
- 导入PyPDF2合并模块PdfFileMerger;
- 读取需要处理和合并的PDF文档;
- 从第一个PDF文档中取出需要合并的前3页;
- 把第二个PDF文档的第一页插入到文档中;
- 把第三个PDF文档附到输出文档末尾;
除了上述介绍的2项主要功能,PyPDF2也有一些其他小功能:
旋转
input1.getPage(1).rotateClockwise(90)
使得页面1旋转90度。
添加水印
page = input1.getPage(3)watermark = PdfFileReader(open("watermark.pdf", "rb"))
page.mergePage(watermark.getPage(0))
其中,水印存储在另外一个PDF文档watermark.pdf中。
加密
password = "secret"output.encrypt(password)
首先给一个secret密码,然后使用encrypt对输出文档进行加密。
pdfminer
前面介绍的PyPDF2主要擅长于PDF页面级编辑,而对于文本和源数据级别编辑能力较弱。
所以,这里就来介绍另外一款Python库来弥补它的不足。
PDFMiner是一个PDF文档的文本提取工具,它具有如下特性:
- 能够准确获取文本的位置和布局信息;
- 可以将PDF转换为HTML/XML等格式;
- 可以提取目录;
- 可以提取标签内容;
- 支持各种字体类型(Type1、TrueType、Type3和CID);
- 支持中、日、韩语言和垂直书写文本;
安装
$ pip install pdfminer
PDF转TxT
pdfminer在GitHub的托管项目中,在目录tools下给出了一些实用的工具集,例如,PDF转HTML、PDF转HTML、PDF转TXT。我们可以直接通过使用下面命令提出PDF文档中的文本信息。
$ pdf2txt.py samples/simple1.pdf
总结
通过上述2款Python库,就可以实现从页面到文本元数据的编辑,本文只是简单的介绍了每项的基本用法。关于详细的用法和函数列表,可以阅读官方文档,或者阅读GitHub上项目源码进行了解。此外,可以在这些基本的用法基础上进行发散思维,发掘更多有价值的应用场景,例如,提出文本数据之后调用翻译API进行文献翻译。也可以,对软件进行封装,开发成一款通用的PDF编辑工具。
20行Python代码就轻松解决了困扰很多同学已久的PDF编辑问题,可见Python的作用和价值是不可忽视的。
到此这篇关于20行Python代码实现一款永久免费PDF编辑工具的文章就介绍到这了,更多相关Python PDF编辑工具内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。