首页 > 其他分享 >pypdf2用法

pypdf2用法

时间:2023-04-22 16:45:05浏览次数:40  
标签:文件 PyPDF2 用法 file PDF pdf pypdf2 page

import PyPDF2
# 打开PDF文件
with open("example.pdf", "rb") as pdf_file:
    # 创建PDF文件对象
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    # 获取PDF文件中第一页
    page = pdf_reader.getPage(0)
    # 提取文本
    text = page.extractText()
    # 输出文本
    print(text)

import PyPDF2
# 打开两个PDF文件
pdf_file1 = open("file1.pdf", "rb")
pdf_file2 = open("file2.pdf", "rb")
# 创建PDF文件对象
pdf_reader1 = PyPDF2.PdfFileReader(pdf_file1)
pdf_reader2 = PyPDF2.PdfFileReader(pdf_file2)
# 创建PDF文件写入对象
pdf_writer = PyPDF2.PdfFileWriter()
# 将第一个PDF文件的所有页面添加到写入对象中
for page in range(pdf_reader1.numPages):
    pdf_writer.addPage(pdf_reader1.getPage(page))
# 将第二个PDF文件的所有页面添加到写入对象中
for page in range(pdf_reader2.numPages):
    pdf_writer.addPage(pdf_reader2.getPage(page))
# 创建新的PDF文件
output_file = open("merged.pdf", "wb")
# 将写入对象中的页面写入到新的PDF文件中
pdf_writer.write(output_file)
# 关闭文件
pdf_file1.close()
pdf_file2.close()
output_file.close()

import PyPDF2
# 打开PDF文件
with open("example.pdf", "rb") as pdf_file:
    # 创建PDF文件对象
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    # 分割PDF文件
    for page in range(pdf_reader.numPages):
        # 创建PDF文件写入对象
        pdf_writer = PyPDF2.PdfFileWriter()
        # 获取页面
        page_object = pdf_reader.getPage(page)
        # 将页面添加到写入对象中
        pdf_writer.addPage(page_object)
        # 创建新的PDF文件
        output_file_name = f"page_{page+1}.pdf"
        output_file = open(output_file_name, "wb")
        # 将写入对象中的页面写入到新的PDF文件中
        pdf_writer.write(output_file)
        # 关闭文件
        output_file.close()

import PyPDF2
# 打开PDF文件
with open("example.pdf", "rb") as pdf_file:
    # 创建PDF文件对象
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    # 创建PDF文件写入对象
    pdf_writer = PyPDF2.PdfFileWriter()
    # 将所有页面添加到写入对象中
    for page in range(pdf_reader.numPages):
        pdf_writer.addPage(pdf_reader.getPage(page))
    # 设置加密密码
    pdf_writer.encrypt("password")
    # 创建新的PDF文件
    output_file = open("encrypted.pdf", "wb")
    # 将写入对象中的页面写入到新的PDF文件中
    pdf_writer.write(output_file)
    # 关闭文件
    output_file.close()

import PyPDF2
# 打开PDF文件
with open("example.pdf", "rb") as pdf_file:
    # 创建PDF文件对象
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    # 创建PDF文件写入对象
    pdf_writer = PyPDF2.PdfFileWriter()
    # 将所有页面旋转90度并添加到写入对象中
    for page in range(pdf_reader.numPages):
        page_object = pdf_reader.getPage(page)
        page_object.rotateClockwise(90)
        pdf_writer.addPage(page_object)
    # 创建新的PDF文件
    output_file = open("rotated.pdf", "wb")
    # 将写入对象中的页面写入到新的PDF文件中
    pdf_writer.write(output_file)
    # 关闭文件
    output_file.close()

import PyPDF2
# 打开PDF文件
with open("example.pdf", "rb") as pdf_file:
    # 创建PDF文件对象
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    # 创建PDF文件写入对象
    pdf_writer = PyPDF2.PdfFileWriter()
    # 打开水印文件
    watermark_file = open("watermark.pdf", "rb")
    # 创建水印文件对象
    watermark_reader = PyPDF2.PdfFileReader(watermark_file)
    # 获取水印文件的第一页
    watermark_page = watermark_reader.getPage(0)
    # 将所有页面添加到写入对象中,并添加水印
    for page in range(pdf_reader.numPages):
        page_object = pdf_reader.getPage(page)
        page_object.mergePage(watermark_page)
        pdf_writer.addPage(page_object)
    # 创建新的PDF文件
    output_file = open("watermarked.pdf", "wb")
    # 将写入对象中的页面写入到新的PDF文件中
    pdf_writer.write(output_file)
    # 关闭文件
    output_file.close()
    watermark_file.close()

import PyPDF2
import pytesseract
from PIL import Image
# 打开PDF文件
with open("example.pdf", "rb") as pdf_file:
    # 创建PDF文件对象
    pdf_reader = PyPDF2.PdfFileReader(pdf_file)
    # 遍历PDF文件中的所有页面
    for page in range(pdf_reader.numPages):
        # 获取当前页面
        pdf_page = pdf_reader.getPage(page)
        # 将当前页面转换为图像
        img = pdf_page['/Resources']['/XObject'].getObject()[0]
        img_data = img._data
        img_mode = 'RGB' if img['/ColorSpace'] == '/DeviceRGB' else 'P'
        img_size = (img['/Width'], img['/Height'])
        img = Image.frombytes(img_mode, img_size, img_data)
        # 使用pytesseract识别图像文字
        text = pytesseract.image_to_string(img, lang='eng')
        # 输出识别结果
        print(text)

标签:文件,PyPDF2,用法,file,PDF,pdf,pypdf2,page
From: https://www.cnblogs.com/full-stack-linux-new/p/17343353.html

相关文章

  • string的使用方法和高级用法
    字符串的定义和初始化#include<string>usingnamespacestd;stringstr1;//定义一个空的字符串stringstr2="helloworld";//使用字符串字面量进行初始化stringstr3("helloworld");//使用构造函数进行初始化stringstr4(str2);//使用拷贝构造函数进行初始化字符串......
  • pandas高级用法
    importpandasaspd#创建多级索引index=pd.MultiIndex.from_arrays([['A','A','A','B','B','B'],[1,2,3,1,2,3]],names=['group','number'])#创建DataFramedata={'value1&......
  • python-docx高级用法
    fromdocximportDocumentfromdocx.enum.sectionimportWD_SECTION#创建一个新文档doc=Document()#添加页眉header=doc.sections[0].headerheader.add_paragraph('Headertext')#添加页脚footer=doc.sections[0].footerfooter.add_paragraph('Footertext')#......
  • python-pptx用法
    frompptximportPresentation#创建一个新PPT文档prs=Presentation()#添加幻灯片slide=prs.slides.add_slide(prs.slide_layouts[0])#保存PPT文档prs.save('example.pptx')frompptx.utilimportInches#添加文本框slide=prs.slides.add_slide(prs.slide_layouts[1])t......
  • email用法
    importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.mime.imageimportMIMEImage#设置发件人和收件人sender='[email protected]'password='password'receiver='[email protected]'......
  • openpyxl高级用法
    fromopenpyxl.stylesimportFont,Alignment,PatternFill#设置字体样式font=Font(name='Calibri',size=12,bold=True,italic=False,underline='single')ws['A1'].font=font#设置单元格对齐方式alignment=Alignment(horizontal='center......
  • C语言和C++的switch语句用法
    C语言和C++的switch语句用法是相似的,但在一些细节上有所不同。在C语言中,switch语句的用法如下:switch(expression){  caseconstant1:    //dosomething    break;  caseconstant2:    //dosomething    break;  //...  ......
  • MySQL 时间类型 date、datetime 和 timestamp 的用法与区别
    时间范围datetime和timestamp区别时间范围不一样,TIMESTAMP要小很多,且最大范围为2038-01-1903:14:07.999999,到期也不远了。datetime与时区无关、timestamp与时区有关。对于timestamp,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户......
  • Markdown基本用法学习
    **@author:Noiimplant@data:2023-4-20*/一、Markdown的基本介绍1.1markdown背景markdown是一种轻量级标记语言,她与徐人们使用易读易写的纯文本格式编写文档。Markdown语言在2004由约翰·格鲁伯(英语:JohnGruber)创建。Markdown编写的文档可以导出HTML、Word、图像......
  • C++11之std::future对象的基本用法
    1、//futureexample#include<iostream>//std::cout#include<future>//std::async,std::future#include<chrono>//std::chrono::milliseconds//anon-optimizedwayofcheckingforprimenumbers:boolis_prime......