Пример #1
0
    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'))
Пример #2
0
    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 "添加空白页完成!"
Пример #3
0
    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