fork download
  1. from fpdf import FPDF
  2.  
  3. # สร้างไฟล์ PDF และตั้งค่าฟอนต์ภาษาไทย
  4. pdf = FPDF()
  5. pdf.add_page()
  6.  
  7. # เพิ่มฟอนต์ภาษาไทย
  8. pdf.add_font("THSarabun", "", "/usr/share/fonts/truetype/thai/THSarabunNew.ttf", uni=True)
  9. pdf.set_font("THSarabun", size=14)
  10.  
  11. # หัวข้อ
  12. pdf.cell(200, 10, txt="รายงานดัชนีมวลกายเด็กอายุ 7-8 ปี", ln=True, align='C')
  13. pdf.ln(5)
  14.  
  15. # หัวตาราง
  16. columns = ["เลขที่", "เลขประจำตัว", "ชื่อ-สกุล", "น้ำหนัก", "ส่วนสูง", "BMI", "หมายเหตุ"]
  17. col_widths = [10, 20, 60, 15, 15, 20, 40]
  18.  
  19. for col, width in zip(columns, col_widths):
  20. pdf.cell(width, 8, col, border=1, align='C')
  21. pdf.ln()
  22.  
  23. # เพิ่มข้อมูลลงตาราง
  24. for _, row in df.iterrows():
  25. pdf.cell(10, 8, str(row["เลขที่"]), border=1, align='C')
  26. pdf.cell(20, 8, str(row["เลขประจำตัว"]), border=1, align='C')
  27. pdf.cell(60, 8, row["ชื่อ-สกุล"], border=1, align='L')
  28. pdf.cell(15, 8, str(row["น้ำหนัก"]), border=1, align='C')
  29. pdf.cell(15, 8, str(row["ส่วนสูง"]), border=1, align='C')
  30. pdf.cell(20, 8, f"{row['BMI']:.2f}", border=1, align='C')
  31. pdf.cell(40, 8, row["หมายเหตุ"], border=1, align='C')
  32. pdf.ln()
  33.  
  34. # บันทึกไฟล์ PDF
  35. pdf_filename = "/mnt/data/BMI_Report.pdf"
  36. pdf.output(pdf_filename)
  37.  
  38. pdf_filename
  39.  
Success #stdin #stdout 0.02s 25552KB
stdin
Standard input is empty
stdout
from fpdf import FPDF

# สร้างไฟล์ PDF และตั้งค่าฟอนต์ภาษาไทย
pdf = FPDF()
pdf.add_page()

# เพิ่มฟอนต์ภาษาไทย
pdf.add_font("THSarabun", "", "/usr/share/fonts/truetype/thai/THSarabunNew.ttf", uni=True)
pdf.set_font("THSarabun", size=14)

# หัวข้อ
pdf.cell(200, 10, txt="รายงานดัชนีมวลกายเด็กอายุ 7-8 ปี", ln=True, align='C')
pdf.ln(5)

# หัวตาราง
columns = ["เลขที่", "เลขประจำตัว", "ชื่อ-สกุล", "น้ำหนัก", "ส่วนสูง", "BMI", "หมายเหตุ"]
col_widths = [10, 20, 60, 15, 15, 20, 40]

for col, width in zip(columns, col_widths):
    pdf.cell(width, 8, col, border=1, align='C')
pdf.ln()

# เพิ่มข้อมูลลงตาราง
for _, row in df.iterrows():
    pdf.cell(10, 8, str(row["เลขที่"]), border=1, align='C')
    pdf.cell(20, 8, str(row["เลขประจำตัว"]), border=1, align='C')
    pdf.cell(60, 8, row["ชื่อ-สกุล"], border=1, align='L')
    pdf.cell(15, 8, str(row["น้ำหนัก"]), border=1, align='C')
    pdf.cell(15, 8, str(row["ส่วนสูง"]), border=1, align='C')
    pdf.cell(20, 8, f"{row['BMI']:.2f}", border=1, align='C')
    pdf.cell(40, 8, row["หมายเหตุ"], border=1, align='C')
    pdf.ln()

# บันทึกไฟล์ PDF
pdf_filename = "/mnt/data/BMI_Report.pdf"
pdf.output(pdf_filename)

pdf_filename