6

我试图只删除多个 PDF 文件的第一页并合并为一个文件。(我每天收到150个PDF文件,第一页是我需要的发票,后面3到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()
4

2 回答 2

2

尝试这个:

import PyPDF2, 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)

        else:
            pass


pdf_files.sort(key=str.lower)
pdfWriter = PyPDF2.PdfFileWriter()


for files_address in pdf_files:
    pdfFileObj = open(files_address, 'rb')
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

    pageObj = pdfReader.getPage(0)
    pdfWriter.addPage(pageObj)


with open("CombinedFirstPages.pdf", "wb") as output:
    pdfWriter.write(output)

祝你好运 ..

于 2017-11-05T21:48:12.337 回答
0

此脚本获取所有 PDF 文件并将第一页转换为 png。在当前执行目录中

#pip install pdf2image
import os
import tempfile
from pdf2image import convert_from_path
output_folder=os.getcwd() #current work directory

def pdf_to_png(pdf_name,source,destino):
    with tempfile.TemporaryDirectory() as path:
            images_from_path = convert_from_path(pdf_path=source+"/"+pdf_name,
            dpi=100,
            output_folder=destino,
            fmt="png",
            output_file=pdf_name[:-4],
            single_file=True)
            
for filename in os.listdir(output_folder):
    if filename.endswith(".pdf"):
        pdf_to_png(filename,output_folder,output_folder)

print("ok!")
于 2020-09-18T05:36:36.820 回答