Cara menukar jadual dari PDF ke Excel atau CSV dengan Tabula

Lulus dan tukar pdf ke csv dan cemerlang

Melihat data sejarah yang ditawarkan oleh sebuah balai cerdas meteorologi di bandar saya, saya melihatnya mereka hanya menawarkannya secara grafik dan untuk dimuat turun dalam bentuk PDF. Saya tidak faham mengapa mereka tidak membiarkan anda memuat turunnya dalam csv, yang akan lebih berguna untuk semua orang.

Oleh itu, saya telah mencari satu penyelesaian untuk meneruskan jadual ini dari pdf ke csv atau jika seseorang ingin memformat Excel atau Libre Office. Saya suka csv kerana dengan csv anda boleh melakukan apa sahaja yang anda dapat menangani python dan perpustakaannya atau anda boleh mengimportnya dengan mudah ke mana-mana spreadsheet.

Oleh kerana idenya adalah untuk mencapai proses automatik, apa yang saya mahukan adalah skrip untuk bekerja dengan Python dan di sinilah Tabula masuk.

Tukar pdf ke csv dengan Tabula

Langkah dan operasi sangat mudah. Yang pertama akan pasang perpustakaan Tabula di persekitaran pembangunan kita. Tabula membolehkan kita mengekstrak data dari jadual dalam PDF ke dalam bingkai data Pandas, perpustakaan Python yang dioptimumkan untuk bekerja dengan csv dan array.

Ia juga membenarkan ekstrak dan tukar antara PDF, JSON, CSV dan TSV. Permata. Anda boleh mendapatkan lebih banyak maklumat di dalamnya repositori github

Saya memanfaatkan semua kerja dari hari-hari sebelumnya dan memasangnya di Anaconda. Dalam pautan anda dapat melihat caranya pasang Anaconda.

Kami memasang Tabula

#primero activamos nuestro entorno de desarrollo en nuestro caso sería conda activate comparador
pip install tabula-py

Semasa melaksanakannya, saya memberikan ralat

penyelesaiannya seperti yang ditunjukkan dalam dokumentasi mereka adalah mencopot pemasangan Tabula versi lama dan memasang yang baru.

pip uninstall tabula
pip install tabula-py

Kami membuat .py yang boleh dilaksanakan

baca jadual dari pdf hingga csv

Saya membuat .py yang boleh dilaksanakan yang saya panggil pdftocsv.py Saya memasukkannya ke dalam folder Muat turun / eltiempo saya dan ia adalah fail dengan kod berikut

import tabula
# Extaer los datos del pdf al DataFrame
df = tabula.read_pdf("inforatge.pdf")
# lo convierte en un csv llamdo out.csv codificado con utf-8
df.to_csv('out.csv', sep='\t', encoding='utf-8')

Pdf untuk dibaca dipanggil inforatge.pdf dan saya mengatakan bahawa output dipanggil keluar.csv dan ia akan tetap berada di folder di mana kita sedang bekerja.

Kami pergi ke direktori di mana kami mempunyai kedua-dua yang boleh dilaksanakan dan pdf yang ingin kami tukar. Ini penting kerana jika anda akan memberitahu kami bahawa anda tidak dapat mencari fail tersebut.

cd Descargas/eltiempo

Dalam direktori ini kita mempunyai PDF, fail .py yang telah kita buat dan di sana ia akan mengembalikan csv yang kita mahukan.

Kami melaksanakan kod

python pdftocsv.py

Perhatikan bahawa saya telah menggunakan python, iaitu, saya menyuruhnya menjalankannya dengan python 2 dan bukan dengan python3 yang gagal. Dan itu sekiranya ia tidak mengembalikan kesilapan, kami sudah memilikinya.

jalankan Tabula di persekitaran pembangunan Anaconda kami

Kami telah menambah 3 baris lagi ke fail untuk kawalan runtime. pada akhirnya kami telah meninggalkan fail pdftocsv.py kami sebagai

import tabula
import time

start_time = time.time()

df = tabula.read_pdf("inforatge.pdf")
df.to_csv('out.csv', sep='\t', encoding='utf-8')

print("--- %s seconds ---" % (time.time() - start_time))

Lebih banyak pilihan dari Tabula

Lebih banyak contoh perkara yang boleh kita lakukan. Terdapat banyak pilihan, yang terbaik adalah melalui repositori rasmi Github yang saya tinggalkan

# Leer PDF remotos y convertirlos en DataFrame
df2 = tabula.read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

# Convertir un PDF en CSV
tabula.convert_into("test.pdf", "output.csv", output_format="csv")

Dan tanpa keraguan salah satu perkara yang paling berguna untuk menukar semua fail PDF, JSON, dll dalam direktori.

tabula.convert_into_by_batch("input_directory", output_format='csv')

Dengan ini kita dapat mengotomatisasi tugas yang akan lama dan membosankan. Pada akhirnya ini adalah salah satu sebab untuk menggunakan perpustakaan ini.

Tukar pdf menjadi cemerlang dalam talian

Sekiranya yang kita mahukan hanyalah menukar fail, mengekstrak data dari jadual dari PDF ke Excel, Librecalc atau yang serupa, tidak perlu menyulitkannya. Terdapat alat yang tersedia untuk melakukan ini, beberapa untuk dipasang dan beberapa untuk menyelesaikan tugas dalam talian.

Saya telah mencuba dua alat dalam talian ini dan ia berfungsi dengan baik.

Perlu diingat bahawa ini bukan pekerjaan automatik, dan oleh itu kajian alat ini belum lengkap. Saya hanya mengulasnya untuk mereka yang mungkin berminat.

Kaedah klasik

Dan kami selalu mempunyai kaedah klasik, yang paling ceroboh dan mahal tetapi pada akhirnya adalah pilihan jika ada sedikit kerja.

Salin sel jadual dari pdf dan tampalkannya ke dalam hamparan kami.

Leave a comment