Chào mọi người, dạo gần đây mình có làm việc nhiều với các file PDF chứa dữ liệu quan trọng và việc trích xuất thủ công tốn rất nhiều thời gian. Sau khi tìm hiểu, mình phát hiện ra Python có thể giúp tự động hóa việc này một cách hiệu quả. Hôm nay mình muốn chia sẻ với các bạn một hướng dẫn chi tiết về cách sử dụng thư viện PyMuPDF (fitz) để đọc file PDF và trích xuất văn bản, sau đó lưu vào file Excel.
Đầu tiên, các bạn cần cài đặt thư viện:
pip install PyMuPDF pandas openpyxl
Tiếp theo là đoạn code mẫu:
import fitz # PyMuPDF
import pandas as pd
def extract_text_from_pdf(pdf_path):
text = ""
try:
doc = fitz.open(pdf_path)
for page_num in range(len(doc)):
page = doc.load_page(page_num)
text += page.get_text()
doc.close()
except Exception as e:
print(f"Lỗi khi đọc file {pdf_path}: {e}")
return text
def save_to_excel(data, output_path):
df = pd.DataFrame(data)
df.to_excel(output_path, index=False)
print(f"Dữ liệu đã được lưu vào {output_path}")
# --- Ví dụ sử dụng ---
pdf_file = "du_lieu_cua_ban.pdf"
excel_output = "ket_qua_trich_xuat.xlsx"
# Giả sử bạn muốn trích xuất toàn bộ văn bản
total_text = extract_text_from_pdf(pdf_file)
# Nếu bạn muốn xử lý văn bản để trích xuất các trường cụ thể, bạn cần thêm logic ở đây
# Ví dụ: tách dòng, tìm kiếm theo mẫu regex...
# Ở đây mình chỉ lưu toàn bộ văn bản vào một cột đơn giản
data_to_save = {'VanBanTrichXuat': [total_text]}
save_to_excel(data_to_save, excel_output)
Lưu ý, đoạn code trên chỉ là ví dụ cơ bản để trích xuất toàn bộ văn bản. Nếu file PDF của bạn có cấu trúc phức tạp, bạn sẽ cần tùy chỉnh phần xử lý văn bản (ví dụ: sử dụng biểu thức chính quy - regex) để trích xuất chính xác các thông tin bạn cần.
Hy vọng chia sẻ này hữu ích cho các bạn đang làm việc với file PDF và Excel!