Files
julius_baer_onboarding/utils/parsers/account_parser.py

38 lines
1.1 KiB
Python
Raw Normal View History

2025-04-12 10:51:07 +02:00
import base64
2025-04-12 18:52:08 +02:00
import pymupdf
2025-04-12 10:51:07 +02:00
def process_account(account_b64: str) -> str:
"""
Traite l'account :
- Décodage du PDF encodé en base64.
2025-04-12 18:52:08 +02:00
- Extraction du texte et des champs de formulaire directement depuis le PDF.
2025-04-12 10:51:07 +02:00
:param account_b64: Chaîne base64 représentant le PDF.
2025-04-12 18:52:08 +02:00
:return: Texte extrait de chaque page du PDF, incluant les champs du formulaire.
2025-04-12 10:51:07 +02:00
"""
2025-04-12 18:52:08 +02:00
# Décodage du PDF en base64
2025-04-12 10:51:07 +02:00
pdf_bytes = base64.b64decode(account_b64)
2025-04-12 18:52:08 +02:00
# Ouverture du PDF avec PyMuPDF
pdf_document = pymupdf.open(stream=pdf_bytes, filetype="pdf")
# Traitement de chaque page
for i in range(len(pdf_document)):
page = pdf_document[i]
# Extraction des champs de formulaire
fields = page.widgets()
form_fields_text = []
for field in fields:
field_name = field.field_name
field_value = field.field_value
form_fields_text.append(f"Field: {field_name}, Value: {field_value}")
combined_text = ""
if form_fields_text:
combined_text += "\n\nForm Fields:\n" + "\n".join(form_fields_text)
pdf_document.close()
return "\n".join(combined_text)