【Python学習用アプリ(コピペ可)】PDFページ分割

scissorsPythonアプリ

こちらの記事では、Pythonを使った

PDFを扱う、分割プログラム

をご紹介します。

元々はAdobeの有料プランで分割をしていたのですが、会社の予算の関係で有料プランがなくなりました

そのため、自作した次第です

是非ご覧ください!

pyPDF2のインストール

$ pip install pyPDF2

コード

import tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog, os

from tkinter import *	

import PyPDF2

root = Tk()
root.title = 'PDFページ毎の分割'

def split_pdf_pages(src_path, dst_basepath):
    src_pdf = PyPDF2.PdfFileReader(src_path)
    file_name = e.get()
    saveFilePath = dst_basepath + '/' + file_name
    for i in range(src_pdf.numPages):
        dst_pdf = PyPDF2.PdfFileWriter()
        dst_pdf.addPage(src_pdf.getPage(i))
        with open('{}_{}.pdf'.format(saveFilePath, i), 'wb') as f:
            dst_pdf.write(f)

def choose_file():
	fTyp = [("","*.pdf")]
	global iDir
	iDir = os.path.abspath(os.path.dirname(__file__))
	global img_path
	img_path = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir, title="分割するファイルの選択")

def choose_saveDir():
	global iDir
	global saveDir
	saveDir = tkinter.filedialog.askdirectory(title="保存先を選んで下さい", initialdir=iDir)
	label = Label(root, text=saveDir.title)

choose_btn = Button(root, text="選択", command=choose_file)
choose_btn.pack()

saving_btn = Button(root, text="保存フォルダの選択", command=choose_saveDir)
saving_btn.pack()

e = Entry(root, width=10)
e.pack()

lbl = Label(root, text="ファイル名の入力")
lbl.pack()

finishup_btn = Button(root, text='分割する', command=lambda: split_pdf_pages(img_path, saveDir))
finishup_btn.pack()

root.mainloop()

おわりに

以上が、PDF分割プログラムの全容となります

いかがでしたでしょうか?

pyPDF2ライブラリでは、まだまだできることがたくさんあるようです

他にもプログラムを作成しましたら共有します

当ブログでは、日報アプリ開発を通じて、Webアプリを一から開発し公開するまでを初学者の方でもわかるようにと記事を連載しています

「Djangoでのアプリ開発を学びたい!」
「Djangoで開発したアプリをWebで公開するにはどうするの?」

という方は必見です!

【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!
タイトルとURLをコピーしました