from tkinter import filedialog as fd
import tkinter as tk
from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger
import os
mother = tk.Tk()
base_pdf = fd.askopenfilename(filetypes=[('PDF files', '.pdf')], title='W?hlen Sie bitte die Basis-PDF-Datei aus')
part_pdf = fd.askopenfilenames(title='W?hlen Sie bitte die zugeh?rigen PDF-Dateien aus')
pdfs = [base_pdf, part_pdf]
x = os.path.basename(base_pdf)
y = x.split('.')[0]
for pdf in mother.splitlist(pdfs):
pdf_writer = PdfFileWriter
pdf_reader = PdfFileReader(pdf)
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))
with open(y '_Beipack.pdf', 'wb') as target:
pdf_writer = PdfFileWriter()
pdf_writer.write(target)
print('My PDF Merger', 'Glückwunsch, die PDF-Datei wurde erfolgreich erstellt!')
我得到的 TypeError 是一個缺失的引數:'page'
我嘗試了很多東西,但沒有任何效果。我嘗試將多個 pdf 檔案合并為一個,但我看不到我的錯誤
uj5u.com熱心網友回復:
您的代碼中有幾個問題:
- 在選擇或更改為時使用
fd.askopenfilename()而不是fd.askopenfilenames()part_pdfpdfs = [base_pdf, part_pdf]pdfs = [base_pdf, *part_pdf] - 應該在回圈
pdf_writer之前創建for - 不應在塊
pdf_writer內再次創建with
下面是修改后的代碼:
import tkinter as tk
from tkinter import filedialog as fd
from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger
import os
mother = tk.Tk()
base_pdf = fd.askopenfilename(filetypes=[('PDF files', '.pdf')], title='W?hlen Sie bitte die Basis-PDF-Datei aus')
part_pdf = fd.askopenfilenames(filetypes=[('PDF files', '.pdf')], title='W?hlen Sie bitte die zugeh?rigen PDF-Dateien aus')
pdfs = [base_pdf, *part_pdf]
x = os.path.basename(base_pdf)
y = x.split('.')[0]
# create the pdf_writer
pdf_writer = PdfFileWriter()
for pdf in mother.splitlist(pdfs):
pdf_reader = PdfFileReader(pdf)
for page in range(pdf_reader.getNumPages()):
pdf_writer.addPage(pdf_reader.getPage(page))
with open(y '_Beipack.pdf', 'wb') as target:
# removed: pdf_writer = PdfFileWriter()
pdf_writer.write(target)
print('My PDF Merger', 'Glückwunsch, die PDF-Datei wurde erfolgreich erstellt!')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497217.html
下一篇:使用容器類從父級獲取變數
