def frasers2up(inputPdfFileWriter):

    edited_file = Pdfwrite()
    blank_file = Pdfwrite()
    leftpage = inputPdfFileWriter.getPage(0)
    leftx = leftpage.mediaBox.upperRight[0]
    lefty = leftpage.mediaBox.upperRight[1]

    for page in range(0, inputPdfFileWriter.getNumPages() - 1, 2):
        leftpage = inputPdfFileWriter.getPage(page)
        rightpage = inputPdfFileWriter.getPage(page + 1)
        leftx = leftpage.mediaBox.upperRight[0]
        lefty = leftpage.mediaBox.upperRight[1]
        blank_file.insertBlankPage(leftx, lefty, 0)
        blank_page = blank_file.getPage(0)
        blank_page.mergeTranslatedPage(rightpage, leftx, 0, 1)
        blank_page.mergePage(leftpage)
        edited_file.addPage(blank_page)
    #     leftpage, leftx, 0, True)
    return edited_file
Beispiel #2
0
def encrypt_single_pdf(input_file, output_file, password):
    """Encrypt single pdf as another file

    Args:
        input_file: input file path name
        output_file: output file path name
        password: password used when encryption 

    Return: None
    """
    with open(input_file, 'rb') as input_stream:
        reader = PdfFileReader(input_stream)
        writer = PdfFileWriter()
        #writer.appendPagesFromReader(reader)
        for page in range(reader.getNumPages()):
            writer.addPage(reader.getPage(page))
        writer.encrypt(password)
        for page in range(reader.getNumPages()):
            a = writer.getPage(page)
            #a.scaleTo(480, 270)
        with open(output_file, 'wb') as output_stream:
            writer.write(output_stream)
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