วิธีแปลงตารางจาก PDF เป็น Excel หรือ CSV ด้วย Tabula

ส่งผ่านและแปลง pdf เป็น csv และ excel

เมื่อดูข้อมูลทางประวัติศาสตร์ที่นำเสนอโดยหอดูดาวในเมืองของฉันฉันเห็นว่า พวกเขาเสนอให้เป็นกราฟิกและดาวน์โหลดเป็น PDF เท่านั้น. ฉันไม่เข้าใจว่าทำไมพวกเขาไม่ให้คุณดาวน์โหลดใน csv ซึ่งจะมีประโยชน์มากกว่าสำหรับทุกคน

ฉันจึงมองหามัน วิธีการส่งผ่านตารางเหล่านี้จาก pdf เป็น csv หรือหากมีคนต้องการจัดรูปแบบ Excel หรือ Libre Office. ฉันชอบ csv เพราะด้วย csv คุณสามารถทำทุกอย่างที่คุณสามารถจัดการกับ python และไลบรารีของมันหรือคุณสามารถนำเข้าในสเปรดชีตใดก็ได้

ตามแนวคิดคือเพื่อให้บรรลุกระบวนการอัตโนมัติสิ่งที่ฉันต้องการคือสคริปต์เพื่อทำงานกับ Python และนี่คือสิ่งที่ Tabula เข้ามา

แปลง pdf เป็น csv ด้วย Tabula

ขั้นตอนและการใช้งานง่ายมาก ครั้งแรกจะเป็น ติดตั้งไลบรารี Tabula ในสภาพแวดล้อมการพัฒนาของเรา. Tabula ช่วยให้เราสามารถดึงข้อมูลจากตารางในรูปแบบ PDF ไปยัง Pandas dataframes ซึ่งเป็นไลบรารี Python ที่ปรับให้เหมาะกับการทำงานกับ csv และอาร์เรย์

ยังช่วยให้ แยกและแปลงระหว่าง PDF, JSON, CSV และ TSV. อัญมณี คุณสามารถค้นหาข้อมูลเพิ่มเติมได้ใน ที่เก็บ github

สมัครรับข้อมูลรายชื่ออีเมลของเรา

ฉันใช้ประโยชน์จากงานทั้งหมดจากวันก่อน ๆ และติดตั้งใน Anaconda ในลิงค์คุณสามารถดูวิธีการ ติดตั้ง Anaconda.

เราติดตั้ง Tabula

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

เมื่อดำเนินการมันทำให้ฉันมีข้อผิดพลาด

วิธีแก้ปัญหาตามที่ระบุในเอกสารประกอบคือการถอนการติดตั้ง Tabula เวอร์ชันเก่าและติดตั้งใหม่

pip uninstall tabula
pip install tabula-py

เราสร้างไฟล์. py ที่เรียกใช้งานได้

อ่านตารางจาก pdf เป็น csv

ฉันสร้าง. py ที่เรียกใช้งานได้ที่ฉันเรียกว่า pdftocsv.py ฉันวางไว้ในโฟลเดอร์ Downloads / eltiempo ของฉันและเป็นไฟล์ที่มีรหัสต่อไปนี้

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 ที่จะอ่านเรียกว่า inforatge.pdf และฉันบอกว่าเอาต์พุตเรียกว่า out.csv และจะอยู่ในโฟลเดอร์ที่เรากำลังทำงานอยู่

เราไปที่ไดเร็กทอรีที่เรามีทั้งไฟล์ปฏิบัติการและ pdf ที่เราต้องการแปลง เป็นสิ่งสำคัญเพราะถ้าคุณจะบอกเราว่าคุณไม่พบไฟล์

cd Descargas/eltiempo

ในไดเร็กทอรีนี้เรามีไฟล์ PDF ไฟล์. py ที่เราสร้างขึ้นและที่นั่นจะส่งคืน csv ที่เราต้องการ

เรารันโค้ด

python pdftocsv.py

สังเกตว่าฉันใช้ python นั่นคือฉันบอกให้รันด้วย python 2 ไม่ใช่กับ python3 ที่ล้มเหลว และนั่นก็คือถ้ามันไม่ส่งคืนข้อผิดพลาดใด ๆ เราก็มีอยู่แล้ว

เรียกใช้ Tabula ในสภาพแวดล้อมการพัฒนา Anaconda ของเรา

เราได้เพิ่มอีก 3 บรรทัดในไฟล์สำหรับการควบคุมรันไทม์ ในตอนท้ายเราได้ทิ้งไฟล์ pdftocsv.py เป็นไฟล์

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))

ตัวเลือกเพิ่มเติมจาก Tabula

ตัวอย่างเพิ่มเติมของสิ่งต่างๆที่เราทำได้ มีตัวเลือกมากมายที่ดีที่สุดคือไปที่ที่เก็บ Github อย่างเป็นทางการที่ฉันทิ้งไว้

# 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")

และไม่ต้องสงสัยเลยว่าหนึ่งในสิ่งที่มีประโยชน์ที่สุดในการแปลงไฟล์ PDF, JSON และอื่น ๆ ทั้งหมดในไดเร็กทอรี

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

ด้วยวิธีนี้เราสามารถทำงานโดยอัตโนมัติซึ่งอาจจะยาวและน่าเบื่อ ท้ายที่สุดนี่คือหนึ่งในเหตุผลของการใช้ไลบรารีนี้

แปลง pdf เป็น excel ออนไลน์

หากสิ่งที่เราต้องการคือเพียงแค่แปลงไฟล์แยกข้อมูลจากตารางจาก PDF เป็น Excel, Librecalc หรือที่คล้ายกันก็ไม่จำเป็นต้องซับซ้อนมากนัก มีเครื่องมือให้ทำบางอย่างติดตั้งและบางอย่างเพื่อให้งานเสร็จทางออนไลน์

ฉันได้ลองใช้เครื่องมือออนไลน์ทั้งสองนี้แล้วและทำงานได้ดีมาก

โปรดทราบว่านี่ไม่ใช่งานอัตโนมัติดังนั้นการศึกษาเครื่องมือเหล่านี้จึงยังไม่ครบถ้วนสมบูรณ์ ฉันแสดงความคิดเห็นสำหรับผู้ที่อาจสนใจเท่านั้น

วิธีการแบบคลาสสิก

และเรามักจะมีวิธีคลาสสิกคือเลอะเทอะและแพงที่สุด แต่สุดท้ายมันก็เป็นทางเลือกหนึ่งหากมีงานน้อย

คัดลอกเซลล์ตารางจาก pdf แล้ววางลงในสเปรดชีตของเรา

แสดงความคิดเห็น