Membuat aplikasi berbasis GUI
3,100 Views
Sinopsis
Contents
Terasa bosan juga membuat aplikasi di Python berbasis CLI (command line interface), apalagi untuk orang yang terbiasa dengan aplikasi berbasis GUI (graphic user interface), maka di Python kalian bisa koq membuat aplikasi berbasis GUI menggunakan Tkinter sebagai code base nya yang telah di extend secara lebih baik. Kalian bisa install via PIP yaitu modul PySimpleGUI, berikut sketsa GUI nya yang dibuat sangat sederhana sesuai dengan judul diatas yaitu merge file pdf menjadi satu file. Pembuatan Sketsa bisa menggunakan Evolus Pencils yang ringan.
Aplikasi diatas membutuhkan juga modul PyPDF2 (https://pypi.org/project/PyPDF2/) untuk operasi yang kalian perlukan seperti
- extracting document information (title, author, …)
- splitting documents page by page
- merging documents page by page
- cropping pages
- merging multiple pages into a single page
- encrypting and decrypting PDF files
Install Package/Modul
Seperti biasanya kalian harus pakai pip untuk lakukan instalasi package/modul di Python. Gunakan perintah berikut
pip install pysimplegui pip install PyPDF2
Pembuatan Kode untuk Merge File PDF
Cara kerjanya cukup mudah yaitu menggabungkan file pdf menjadi 1 file utuh, misalkan ada 5 file pdf akan dijadikan 1 file pdf. Untuk mempermudah hal tersebut biasanya 5 file pdf tersebut dikumpulkan dalam 1 folder tersendiri kemudian di looping isi folder sebagai urutan file yang kemudian di proses merge menjadi 1 kesatuan file utuh. Agar kalian tidak bingung, pelajari secara kode dibawah ini terlebih dahulu yang dapat kalian gunakan secara mudah.
import glob from PyPDF2 import PdfFileMerger def merger(output_path, input_paths): pdf_merger = PdfFileMerger() for path in input_paths: pdf_merger.append(path) with open(output_path, 'wb') as fileobj: pdf_merger.write(fileobj) if __name__ == '__main__': paths = glob.glob('C:/Users/bejo pamungkas/Desktop/hasil/*.pdf') #lokasi folder nya paths.sort() print(paths) merger('pdf_merger2.pdf', paths) #nama file yang telah di merged
Pembuatan GUI menggunakan PySimpleGUI
Sangat simple sekali kode diatas tidak perlu ribet, tapi alangkah baiknya kalau kode diatas dikembangkan menjadi versi GUI. Sebelum mengenal PySimpleGUI membuat aplikasi GUI menggunakan Tkinter terkadang cukup ribet karena mengatur layoutnya secara manual, sangat berbeda dengan PySimpleGUI by code, lagian juga PySimpleGUI sesuai dengan tujuannya yang simple menjadikan kode yang kita buat menjadi sangat sedikit sekali, hanya tidak lebih dari 30 baris saja lho, maka dengan beberapa kelebihan tersebut patut kalian coba dan menjadikan PySimpleGUI menjadi base GUI di Python yang terbaik dan ringan untuk saat ini. Daripada menggunakan PyQT yang rentan dengan error karena kebutuhan third party nya. PySimpleGUI dikembangkan dari Tkinter sehingga nggak perlu repot dan takut tidak compliance dengan Tkinter. Berikut kalian pelajari Pemrograman Python-Aplikasi GUI Python Merge File PDF.
import PySimpleGUI as sg import glob from PyPDF2 import PdfFileMerger def merger(output_path, input_paths): pdf_merger = PdfFileMerger() for path in input_paths: pdf_merger.append(path) with open(output_path, 'wb') as fileobj: pdf_merger.write(fileobj) layout = [[sg.Text('Sumber Folder PDF')], [sg.Input(key='sumber_folder'),sg.FolderBrowse('Lokasi Folder')], [sg.Text('Hasil File PDF')], [sg.Input(key='target_file'), sg.FileSaveAs('Simpan File PDF',file_types=(('ALL Files', '*.pdf'),))], [sg.OK('Merge PDF'), sg.Exit('Keluar')] ] window = sg.Window('Aplikasi Merge PDF- www.softscients.web.id',layout) while True: event,values = window.Read() try : if event in (None,'Keluar'): break if event == 'Merge PDF': print('split pdf') text_input = values['sumber_folder'] text_output = values['target_file'] if text_input!='' and text_output!='': paths = glob.glob(str(text_input)+'/*.pdf') #lokasi folder nya paths.sort() merger(str(text_output),paths) sg.Popup('Info', 'Simpan di : '+text_output) else: print('Batal') except : break window.Close()