你们一定都熟悉PDF是什么。实际上,它们是最重要且使用最广泛的数字媒体之一。 PDF代表可移植文档格式。 它使用.pdf扩展名。 它用于可靠地显示和交换文档,而与软件,硬件或操作系统无关。
 
ASP站长网PDF由Adobe发明,现在是国际标准化组织(ISO)维护的开放标准。 PDF可以包含链接和按钮,表单字段,音频,视频和业务逻辑。
 
在本文中,我们将学习如何执行各种操作,例如:
 
从PDF提取文本
旋转PDF页面
分割PDF
使用简单的Python脚本!
 
安装
 
我们将使用第三方模块PyPDF2。
 
PyPDF2是一个构建为PDF工具包的python库。 它具有以下能力:
 
提取文档信息(标题,作者等)
逐页拆分文档
逐页合并文档
裁剪页面
将多个页面合并为一个页面
加密和解密PDF文件
以及更多!
要安装PyPDF2,请从命令行运行以下命令:
 
pip install PyPDF2
 
在Python中使用PDF文件
 
此模块名称区分大小写,因此请确保y为小写,其他所有内容均为大写。 本教程/文章中使用的所有代码和PDF文件都在这里。
 
1.从PDF文件中提取文本
 
# 导入所需的模块
import PyPDF2
 
# 创建一个pdf文件对象
pdfFileObj = open('linuxidc.pdf', 'rb')
 
# 创建一个PDF阅读器对象
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
 
# 在pdf文件中打印页数
print(pdfReader.numPages)
 
# 创建页面对象
pageObj = pdfReader.getPage(0)
 
# 从页面提取文本
print(pageObj.extractText())
 
# 关闭pdf文件对象
pdfFileObj.close()
 
让我们尝试以块的形式理解上面的代码:
 
pdfFileObj = open('linuxidc.pdf', 'rb')
 
我们以二进制模式打开linuxidc.pdf。并将文件对象另存为pdfFileObj。
 
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
 
在这里,我们创建PyPDF2模块的PdfFileReader类的对象,并传递pdf文件对象并获得pdf阅读器对象。
 
print(pdfReader.numPages)
 
numPages属性提供pdf文件中的页数。例如,在我们的例子中,它是455(请参见输出的第一行)。
 
pageObj = pdfReader.getPage(0)
 
现在,我们创建一个PyPDF2模块的PageObject类的对象。 pdf阅读器对象具有getPage()函数,该函数将页码(起始索引为0)作为参数并返回该页对象。
 
print(pageObj.extractText())
 
Page object具有函数extractText(),用于从pdf页面中提取文本。
 
pdfFileObj.close()
 
最后,我们关闭pdf文件对象。
 
注意:虽然PDF文件非常适合以易于人们打印和阅读的方式来布置文本,但要用软件将其解析为纯文本并不是一件容易的事。因此,从PDF提取文本时,PyPDF2可能会出错,甚至根本无法打开某些PDF。不幸的是,您对此无能为力。 PyPDF2可能无法使用某些特定的PDF文件。
 
2、旋转PDF页面
 
# 导入所需的模块
import PyPDF2
 
def PDFrotate(origFileName, newFileName, rotation):
 
    # 创建原始pdf的pdf文件对象
    pdfFileObj = open(origFileName, 'rb')
     
    # 创建一个pdf阅读器对象
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
 
    # 为新pdf创建pdf写入器对象
    pdfWriter = PyPDF2.PdfFileWriter()
     
    # 旋转每一页
    for page in range(pdfReader.numPages):
 
        # 创建旋转的页面对象
        pageObj = pdfReader.getPage(page)
        pageObj.rotateClockwise(rotation)
 
        # 将旋转后的页对象添加到pdf写入器
        pdfWriter.addPage(pageObj)
 
    # 新的pdf文件对象
    newFile = open(newFileName, 'wb')
     
    # 将旋转的页面写入新文件
    pdfWriter.write(newFile)
 
    # 关闭原始的pdf文件对象
    pdfFileObj.close()
     
    # 关闭新的pdf文件对象
    newFile.close()
     
 
def main():
 
    # 原始pdf文件名
    origFileName = 'linuxidc.pdf'
   
    # 新的pdf文件名
    newFileName = 'linuxidc.com.pdf'
     
    #旋转角度
    rotation = 270
     
    #调用PDFrotate函数
    PDFrotate(origFileName, newFileName, rotation)
     
if __name__ == "__main__": 
    # 调用main函数
    main()

dawei

【声明】:九江站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。