def addBlankpage(): # PDF写入操作 readFile = './01.pdf' outFile = './01_new.pdf' pdfFileWriter = PdfFileWriter() # 获取 PdfFileReader 对象 pdfFileReader = PdfFileReader(readFile) # 或者这个方式:pdfFileReader = PdfFileReader(open(readFile, 'rb')) numPages = pdfFileReader.getNumPages() for index in range(0, numPages): pageObj = pdfFileReader.getPage(index) pdfFileWriter.addPage(pageObj) # 根据每页返回的 PageObject,写入到文件 pdfFileWriter.write(open(outFile, 'wb')) pdfFileWriter.addBlankPage() # 在文件的最后一页写入一个空白页,保存至文件中 pdfFileWriter.write(open(outFile, 'wb'))
def add_page(self, path: str): """ 添加空白页面 path:文件完整路径 """ pdf_writer = PdfFileWriter() pdf_reader = PdfFileReader(path) for page in range(pdf_reader.getNumPages()): pdf_writer.addPage(pdf_reader.getPage(page)) pdf_writer.addBlankPage() # 插入空白页面 with open("./processed/add_blank.pdf", "wb") as f: pdf_writer.write(f) # print("加入空白页完成!") return "添加空白页完成!"
def SaveButton(self, event): input_filename = Path(self.input_file) dlg = wx.FileDialog(self, message="Save file as...", defaultDir=os.getcwd(), defaultFile=(f"{input_filename.with_suffix('')}+" f"{self.no_pages.GetValue()}"), wildcard=pdfs, style=wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT) if not self.input_path: self.error_message("Please select a pdf") elif dlg.ShowModal() == wx.ID_OK: output_path = dlg.GetPath() pdf_writer = PdfFileWriter() pdf_reader = PdfFileReader(self.input_path) try: blank_pages = int(self.no_pages.GetValue()) except ValueError: self.error_message( "The number of pages added must be an integer") pdf_writer.appendPagesFromReader(pdf_reader) for _ in range(blank_pages): pdf_writer.addBlankPage() with open(output_path, 'wb') as output: pdf_writer.write(output) success_dlg = wx.MessageDialog( self, f"""You created {dlg.GetFilename()} and saved it at {dlg.GetPath()}.""", "Success!", wx.OK | wx.ICON_INFORMATION) success_dlg.ShowModal() success_dlg.Destroy() dlg.Destroy() self.clear_func()
def process_the_pdf(): confirm = tk.messagebox.askyesno("Doing the thing", "Are you sure you want to do the thing?") if confirm == True: try: pdf = Pdfread(pdf_path.get()) wf = Pdfwrite() wf.appendPagesFromReader(pdf) for i in range(blank_start.get()): wf.insertBlankPage(0) for i in range(end_blank_pages.get()): wf.addBlankPage() # ! --> here's where the shuffle goes, pos save temp pdf here? list_pages = [] for i in range(wf.getNumPages()): list_pages.append(i) list_sigs_pages = [] for group in chunker(list_pages, sig_thickness_x4.get()): list_sigs_pages.append(group) newpageorder = shufoutput(list_sigs_pages) newpdf = Pdfwrite() for page in newpageorder: newpdf.addPage(wf.getPage(page)) temp = Pdfwrite() # up2 = turninto2up(newpdf) temp = newpdf destpath = pdf_output_path.get() with open(destpath, 'wb+') as out: temp.write(out) up2in = Pdfread(destpath) up2 = Pdfwrite() for i in range(up2in.getNumPages()): temp = up2in.getPage(i) up2.addPage(temp) up2 = frasers2up(up2) # up2 = turninto2up(up2in) with open(destpath, "wb+") as up2out: up2.write(up2out) tk.messagebox.showinfo( "Finished", "Finished, and maybe it even worked this time!") except FileNotFoundError: tk.messagebox.showerror( "File not found", "Either the input file or the output files is wrong.\nOr both of them. Who knows?" ) pass else: pass