仅选择PDF的首页pypdf2

mik*_*ran 5 python pdf merge split pypdf2

我正在尝试只剥离多个PDF文件的第一页,然后合并为一个文件。(我每天收到150个PDF文件,第一页是我需要的发票,接下来的三到12页只是我不需要的备份),因此输入的是150个大小不同的PDF文件,而我想要的输出是1个PDF文件,仅包含150个文件中每个文件的首页。

我似乎要做的是合并除第一页以外的所有页面(这是我唯一需要的页面)。

import PyPDF2, os

pdfFiles = []
for filename in os.listdir('.'):
    if filename.endswith('.pdf'):
        pdfFiles.append(filename)
pdfFiles.sort(key=str.lower)
pdfWriter = PyPDF2.PdfFileWriter()

for filename in pdfFiles:
    pdfFileObj = open(filename, 'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

for pageNum in range(1 , pdfReader.numPages):
    pageObj = pdfReader.getPage(pageNum)
    pdfWriter.addPage(pageObj)


pdfOutput = open('CombinedFirstPages.pdf', 'wb')
pdfWriter.write(pdfOutput)
pdfOutput.close()
Run Code Online (Sandbox Code Playgroud)

DRP*_*RPK 2

尝试这个:

# Get all PDF documents in current directory
import os

your_target_folder = "."
pdf_files = []
for dirpath, _, filenames in os.walk(your_target_folder):
    for items in filenames:
        file_full_path = os.path.abspath(os.path.join(dirpath, items))
        if file_full_path.lower().endswith(".pdf"):
            pdf_files.append(file_full_path)
pdf_files.sort(key=str.lower)

# Take first page from each PDF
from PyPDF2 import PdfFileReader, PdfFileWriter

writer = PdfFileWriter()

for file_path in pdf_files:
    reader = PdfFileReader(file_path)
    page = reader.getPage(0)
    writer.addPage(page)

with open("CombinedFirstPages.pdf", "wb") as output:
    writer.write(output)
Run Code Online (Sandbox Code Playgroud)