Exstraksi Tabel dari PDF ke CSV

Dapat kiriman file tabel data dalam bentuk PDF berpassword. Padahal kita mempunyai kebutuhan untuk mengambil data untuk dimasukkan ke Google Address Book,

Jika kita mendapatkan file demikian maka kita akan melakukan lankah berikut:

  1. Mendecrypt file pdf dengan password yang diberikan menggunakan PyPDF2
  2.  Melakukan scrapping tabel dan mengkonverinya ke csv

Silahkan …

# Decrypt password-protected PDF in Python.
# 
# Requirements:
# pip install PyPDF2
# pip install camelot-py[cv]

from PyPDF2 import PdfFileReader, PdfFileWriter
# import camelot
import camelot.io as camelot

def decrypt_pdf(input_path, output_path, password):
  with open(input_path, 'rb') as input_file, \
    open(output_path, 'wb') as output_file:
    reader = PdfFileReader(input_file)
    reader.decrypt(password)

    writer = PdfFileWriter()

    for i in range(reader.getNumPages()):
      writer.addPage(reader.getPage(i))

    writer.write(output_file)


# Decrypt PDF
decrypt_pdf('encrypt.pdf', 'decrypted.pdf', 'password')
file_path = "decrypted.pdf"
pdf_archive = camelot.read_pdf(file_path, pages="1", flavor="stream")

# Save to Excel
for page, pdf_table in enumerate(pdf_archive):             
    df = pdf_archive[page].df
    # check print(df)
    df.to_excel('decrypted.xlsx', index=False)
    

Menggunakan camelot memang simpel, tapi kadang hasilnya tidak perfect. Tapi lumayanlah hasilnya daripada ketik manual 🙂

Full Stack Developer

Dapat gambar di group KLUG. Tidak tahu siapa yang membuat gambar ini, namun memberikan gambaran mudah tentang Full Stack Developer.

Saya banyak menguasai diantaranya karena saya bisa dibilang menyaksikan lahirnya teknologi-teknologi itu. Atau bisa dikatakan banyak teknologi itu yang lahir dalam timeline hidup saya.

Walaupun kelihatannya rumit, asal sering digunakan saya kira tetal bisa dikuasai. Oke, mulai darimana?