Beispiel #1
0
def main():
    parser = argparse.ArgumentParser(
        prog='ca6fix',
        description=
        "Fix some disappointmented points in Computer Architecture Quantitative Approach 6th Edition Japanese translation PDF file.",
        usage='ca6fix -i ca6.pdf -o ca6_fixed.pdf',
        add_help=True)
    parser.add_argument('-i', '--input', help='input PDF file', required=True)
    parser.add_argument('-o',
                        '--output',
                        help='output PDF file',
                        required=True)
    args = parser.parse_args()

    reader = PdfFileReader(args.input)
    writer = PdfFileWriter()
    for p in range(reader.getNumPages()):
        page = reader.getPage(p)
        writer.addPage(page)

    writer.insertBlankPage(None, None, 4)

    for index in outline:
        add_outline(writer, index, 21)
    writer.setPageLayout('/TwoPageRight')
    writer.addMetadata({
        '/Title':
        'コンピュータアーキテクチャ 定量的アプローチ[第6版]',
        '/Author':
        'ジョン・L・ヘネシー, デイビッド・A・パターソン(著), 中條拓伯, 天野英晴, 鈴木 貢(訳)'
    })

    with open(args.output, 'wb') as fh:
        writer.write(fh)
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
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