จัดการข้อความ และรูป จากไฟล์ PDF ด้วย PDFBox
Last updated
Last updated
สวัสดีผู้อ่านทุกท่านครับ วันนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมภาษา Python สำหรับดึงข้อความจากไฟล์ PDF ด้วย PDFBox กัน Apache PDFBox เป็นชุดคำสั่งสำหรับจัดการกับไฟล์ PDF โดยสามารถใช้สร้าง อ่าน แก้ไข แบ่ง รวม ไฟล์ PDF พัฒนาบนภาษา Java และแน่นอนว่าใช้ Apache License 2.0
สำหรับการใช้งานกับ Python เราสามารถดึงข้อความออกจากไฟล์ PDF ได้โดยใช้โมดูลที่ชื่อว่า python-pdfbox การติดตั้ง ก่อนอื่นให้ผู้อ่านติดตั้ง JAVA JDK ก่อน และตั้งค่า path ชื่อ JAVA_HOME ให้เรียบร้อย แล้วโหลด Apache PDFBox เป็นไฟล์ pdfbox-app.jar จาก https://pdfbox.apache.org/download.cgi วางไว้ในโฟลเดอร์ แล้วสร้าง path ชื่อ PDFBOX ชี้ไปยังโฟลเดอร์ที่เก็บไฟล์ Apache PDFBox นามสกุล jar
จากนั้นให้ติดตั้ง python-pdfbox ด้วยคำสั่ง
pip install python-pdfbox
เรามาลองดึงไฟล์ PDF กัน
ผมต้องการดึงข้อความจาก รายงานสถานการณ์โรคติดเชื้อไวรัสโคโรนา 2019 ฉบับที่ 95 วันที่ 7 เมษายน 2563 ของกรมควบคุมโรค ที่เป็นไฟล์ PDF
ผมโหลดไฟล์ situation-no95-070463.pdf มา แล้วลองเขียนโปรแกรมดึงข้อความจากไฟล์ PDF ดังนี้
import pdfbox
p = pdfbox.PDFBox()
p.extract_text('situation-no95-070463.pdf',output = "data.txt") # ดึงออกมาเป็นไฟล์ txt ชื่อ data.txt
ผลลัพธ์
เราจะได้ข้อความที่อยู่ในไฟล์ PDF ออกมา ค่อนข้างเกือบสมบูรณ์
อธิบายคำสั่ง extract_text(input_path, output_path='', password=None, encoding=None, html=False, sort=False, ignore_beads=False, start_page=1, end_page=None, console=False)
input_path - เป็นที่ตั้งไฟล์ PDF
output_path - เป็นที่ตั้งผลลัพธ์ไฟล์
password - รหัสผ่าน PDF
encoding - encoding ของไฟล์
html - output เป็น html ถ้าเป็็น True
sort - จัดเรียงข้อความ
ignore_beads - ignore separation โดย bead
start_page - หน้าที่เริ่ม
end_page - หน้าที่สิ้นสุด
console - ถ้า True จะโชว์หน้า console
นอกจากนั้นยังมีคำสั่ง
p.pdf_to_images('situation-no95-070463.pdf') # แปลง pdf แต่ละหน้าเป็นรูปภาพ
p.extract_images('situation-no95-070463.pdf') # ดึงภาพจาก PDF
ลองเล่น Colab บทความนี้ได้ที่ https://colab.research.google.com/drive/1G5jTALHlGE9e7dFjJ40JQax39tY3yKsI
อ่านเอกสารการใช้งาน python-pdfbox ได้ที่ https://github.com/lebedov/python-pdfbox
Reference : https://python3.wannaphong.com/2020/04/pdf-pdfbox-python.html