
Convert jpg to pdf merupakan aplikasi yang banyak digunakan selama masa CPNS kemarin lho, yaitu pada proses pemberkasan, nah salah satunya yang paling mudah menggunakan aplikasi berbasis online seperti https://jpg2pdf.com/id/. Saya sering menggunakannya koq tapi saya ada juga alternatif lain yaitu menggunakan coding saya melalui package Pillow, yups. Ternyata library ini bisa juga lho mengkonvert gambar *.png; *.jpg ke pdf! Bagi kalian yang belum tahu apa itu pillow bisa baca disini. Berikut Tahapan Convert Image/gambar ke PDF menggunakan Python
Pastikan kalian sudah install library Pillow melalui perintah pip
Contents
pip install Pillow
Kalian kalau masih bingung cara install package via pip, bisa lihat video ini
Convert Image/gambar ke PDF
Menggunakan kode simple berikut ini
from PIL import Image image1 = Image.open('C:\Users\Ron\Desktop\Test\image1.png') im1 = image1.convert('RGB') im1.save('C:\Users\Ron\Desktop\Test\myFirstImage.pdf')
Kalian bisa melihat hasil nya sebagai berikut
Convert Multiple File Image ke PDF
Jika file gambar yang digunakan banyak alias lebih dari satu, maka kita bisa menggunakan List sehingga menghasilkan beberapa halaman pdf sesuai dengan jumlah file gambar. Berikut misalkan terdapat 4 file gambar.
image1 = Image.open('C:\Users\Ron\Desktop\Test\image1.png') image2 = Image.open('C:\Users\Ron\Desktop\Test\image2.png') image3 = Image.open('C:\Users\Ron\Desktop\Test\image3.png') image4 = Image.open('C:\Users\Ron\Desktop\Test\image4.png')
Lakukan konversi terlebih dahulu
im1 = image1.convert('RGB') im2 = image2.convert('RGB') im3 = image3.convert('RGB') im4 = image4.convert('RGB')
Selanjutnya buat List
imagelist = [im2,im3,im4]
perhatikan bahwa yang dimasukan hanya im2 sampai im4 saja
Langkah selanjutnya gunakan kode berikut untuk menghasilkankan file pdf sekaligus menjadi sekaligus
im1.save('C:\Users\Ron\Desktop\Test\myImages.pdf',save_all=True, append_images=imagelist)
Membuat aplikasi berbasis GUI
Namun kode diatas, rasanya kurang praktis juga ya, kalaupun dibuat berbasis CLI. Kita ubah saja agar bisa menjadi berbasis GUI menggunakan library PySimpleGUI, dengan tampilan sebagai berikut (jangan lupa untuk install Library PySimpleGUI nya ya), misalkan saya buat file imagetopdf.py
Buat function
Untuk membuat otomatisasi membaca folder, kita buat terlebih dahulu sebuah function dengan 2 argument input yaitu lokasi_folder dan file_tujuan. Sebagai contoh, saya akan membaca semua file yang ada didalam folder dengan extension *.png (kalian ntar bisa ubah sendiri)
import PySimpleGUI as sg from PIL import Image import glob def convert(lokasi_folder, file_tujuan): paths = glob.glob(str(lokasi_folder)+'/*.png') #lokasi folder nya paths.sort() imagelist = list() image1 = Image.open(paths[0]) im1 = image1.convert('RGB') for i in range(1,len(paths)): images = Image.open(paths[i]) ims = images.convert('RGB') imagelist.append(ims) im1.save(file_tujuan,save_all=True, append_images=imagelist)
Buat Layout GUI nya
Selanjutnya kita buat layout GUI terdiri dari 2 textfield dan 4 button
layout = [[sg.Text('Sumber File PNG')], [sg.Input(key='sumber_folder'), sg.FolderBrowse('Cari Folder Gambar)], [sg.Text('Hasil File PDF')], [sg.Input(key='target_file'),sg.FileSaveAs('Simpan File PDF',file_types=(('ALL Files', '*.pdf'),))], [sg.OK('Convert PDF'), sg.Exit('Keluar')] ]
Panggil GUI nya
Langkah terakhir panggil kode diatas agar menampilkan aplikasi berbasis GUI
window = sg.Window('Aplikasi Convert Gambar to PDF- www.softscients.com',layout) while True: event,values = window.Read() try : if event in (None,'Keluar'): break if event == 'Convert PDF': folder_input = values['sumber_folder'] text_output = values['target_file'] if folder_input!='' and text_output!='': print(str(folder_input),str(text_output)) convert(folder_input, text_output) sg.Popup('Info', 'Simpan di : '+text_output) else: print('Batal') except ValueError: print(ValueError) print('Terjadi kesalahan') break window.Close()
Sangat simple kan! Kalian bisa ubah saja untuk extension nya seperti *.jpg dan *.png