我试图仅剥离多个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()
答案 0 :(得分: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)
祝你好运..
答案 1 :(得分: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!")