LoginSignup
6
6

More than 3 years have passed since last update.

PythonでPDF結合GUIを作る その1

Posted at

はじめてのQiita投稿です。
備忘録的にPython初心者の私が作成したものなどを公開していきたいと思います。

なるべく1回の投稿を簡潔にまとめたいので以下の3回に分けて投稿します。

 その1 TkinterでUI作成
 その2 PyPDF2でPDF操作
 その3 pyinstallerでexe化+アイコンを付ける

背景

 ・「いきなりPDF」や「PDF Mergy」を使わずにPDFファイルを結合したい
 ・PythonでUI作成したい

Tkinterでウィンドウ作成

import tkinter
import PyPDF2
import os

root = tkinter.Tk()
root.title('PDFMerger')
root.geometry("800x700")
ver = '1.0.0' #バージョン

root.mainloop()

image.png

テキストボックス、ボタンを配置

以下5つのアイテムから構成する
 1. テキストボックス「パス」:結合するファイルのフォルダパス
 2. テキストボックス「ファイル名」:結合後の保存ファイル名
 3. ボタン「Open」:結合するファイルを表示
 4. ボタン「Merge」:結合してファイル保存
 5. テキストボックス(ラベルなし):色々な表示

以下のコードをroot.mainloop()の上に書く
(commandはまだ設定していないのでコメントアウトしています)

# Openボタン
button = tkinter.Button(root, text="Open", width=8, height=2, font=(u'Meiryo', 8), bg='#add8e6', fg='#000000')
#button = tkinter.Button(root, text="Open", command=clicked, width=8, height=2, font=(u'Meiryo', 8), bg='#add8e6', fg='#000000')
button.place(x=80, y=120)

# Mergeボタン
button = tkinter.Button(root, text="Merge", width=8, height=2, font=(u'Meiryo', 8), bg='#4169e1', fg='#ffffff')
#button = tkinter.Button(root, text="Merge", command=merge, width=8, height=2, font=(u'Meiryo', 8), bg='#4169e1', fg='#ffffff')
button.place(x=200, y=120)

# ラベル1 パス
lbl = tkinter.Label(text='パス', font=(u'Meiryo', 8))
lbl.place(x=25, y=30)

# テキストボックス1 パス
txt1 = tkinter.Entry(width=80)
txt1.insert(tkinter.END,"パスを入力してください")
txt1.place(x=80, y=30)

# ラベル2 保存ファイル名
lbl = tkinter.Label(text='ファイル名', font=(u'Meiryo', 8))
lbl.place(x=5, y=75)

# テキストボックス2 保存ファイル名
txt2 = tkinter.Entry(width=80)
txt2.insert(tkinter.END,"merged")
txt2.place(x=80, y=75)

# テキストボックス3 ファイル
txt3 = tkinter.Text(width=80, font=(u'Meiryo', 8))
txt3.place(x=80, y=200)
txt3.insert('1.0','version ' + ver + '\n\n1.結合するPDFファイルのパスを入力\n\n2.Openボタンでファイル確認\n\n3.Mergerボタンでデスクトップに  ファイル名.pdf  を作成\n')

できました!
image.png

参考

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6