airtable_agent / src /pdf_generator.py
usama-ismail's picture
pdf download button issues resolved
2ff26c6
Raw
History Blame Contribute Delete
1.18 kB
from reportlab.lib.pagesizes import LETTER
from reportlab.pdfgen import canvas
from io import BytesIO
def pdf_receipt_generator(data_input_api):
# data = data_input_api[0].get("fields", {})
data = data_input_api.get("fields", {})
# Create PDF
# pdf_file = "trip_receipt.pdf"
pdf_buffer = BytesIO()
c = canvas.Canvas(pdf_buffer, pagesize=LETTER)
width, height = LETTER
y_position = height - 50 # start from top
c.setFont("Helvetica-Bold", 14)
c.drawString(50, y_position, "TRIP RECEIPT")
y_position -= 30
c.setFont("Helvetica", 12)
for key, value in data.items():
text_line = f"{key}: {value}"
c.drawString(50, y_position, text_line)
y_position -= 20 # move down for next line
c.save()
pdf_buffer.seek(0)
return pdf_buffer
# testing
# test_data = {
# "trip_id": "12345",
# "passenger_name": "John Doe",
# "pickup": "123 Main St",
# "dropoff": "456 Oak Ave",
# "fare": "$25.00",
# "date": "2025-01-01"
# }
# pdf_buffer = pdf_receipt_generator(test_data)
# with open("test_receipt.pdf", "wb") as f:
# f.write(pdf_buffer.read())