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
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)