จัดการข้อความ และรูป จากไฟล์ PDF ด้วย PDFBox

สวัสดีผู้อ่านทุกท่านครับ วันนี้ผมจะพาผู้อ่านไปเขียนโปรแกรมภาษา 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

Last updated