pypdf2用法

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)

posted @   code星  阅读(326)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示