fork download
  1. from fpdf import FPDF
  2.  
  3. # สร้าง PDF class พร้อมตั้งค่าฟอนต์ภาษาไทย (ใช้ THSarabun)
  4. class PDF(FPDF):
  5. def header(self):
  6. self.set_font("THSarabun", "B", 20)
  7. self.cell(0, 10, "ตารางข้อมูลที่ดินและการผ่อนชำระ", 0, 1, "C")
  8.  
  9. def chapter_title(self, title):
  10. self.set_font("THSarabun", "B", 18)
  11. self.cell(0, 10, title, 0, 1, "L")
  12. self.ln(2)
  13.  
  14. def chapter_body(self, body):
  15. self.set_font("THSarabun", "", 16)
  16. self.multi_cell(0, 8, body)
  17. self.ln()
  18.  
  19. def add_table(self, data, col_widths):
  20. self.set_font("THSarabun", "B", 16)
  21. for col in data[0]:
  22. self.cell(col_widths, 10, col, 1, 0, "C")
  23. self.ln()
  24. self.set_font("THSarabun", "", 16)
  25. for row in data[1:]:
  26. for col in row:
  27. self.cell(col_widths, 10, str(col), 1, 0, "C")
  28. self.ln()
  29.  
  30. # สร้าง PDF และเพิ่มฟอนต์ภาษาไทย
  31. pdf = PDF()
  32. pdf.add_page()
  33. pdf.add_font("THSarabun", "", "/usr/share/fonts/truetype/thai/Sarabun-Regular.ttf", uni=True)
  34. pdf.add_font("THSarabun", "B", "/usr/share/fonts/truetype/thai/Sarabun-Bold.ttf", uni=True)
  35.  
  36. # เนื้อหาตาราง 1: รายละเอียดราคาที่ดิน
  37. pdf.chapter_title("รายละเอียดราคาที่ดิน")
  38. land_info = (
  39. "ขนาดที่ดิน: 64.7 ตร.วา (2 แปลง)\n"
  40. "ราคาตารางวาละ: 9,000 บาท\n"
  41. "ราคาต่อแปลง: 582,300 บาท\n"
  42. "ทำสัญญา: 10,000 บาท ต่อแปลง\n"
  43. "เงินดาวน์: 48,300 บาท ต่อแปลง\n"
  44. "ค่าโอนกรรมสิทธิ์รวม (2 แปลง): ประมาณ 9,000 บาท\n"
  45. "ค่าจดจำนอง 1% ของยอดกู้ (10,963 บาท ต่อแปลง)"
  46. )
  47. pdf.chapter_body(land_info)
  48.  
  49. # เนื้อหาตาราง 2: ผ่อนรายเดือน
  50. pdf.chapter_title("ตารางผ่อนรายเดือน (หลังจดจำนอง)")
  51. table_data = [
  52. ["ระยะเวลาผ่อน", "แปลงที่ 1", "แปลงที่ 2", "หมายเหตุ"],
  53. ["5 ปี", "11,665", "12,731", "ผ่อนสั้น ดอกเบี้ยน้อย"],
  54. ["10 ปี", "7,518", "8,211", "ผ่อนกลาง"],
  55. ["15 ปี", "6,290", "6,869", "ยอดผ่อนต่ำ"],
  56. ["20 ปี", "5,770", "6,302", "วางแผนระยะยาว"],
  57. ["25 ปี", "5,519", "6,027", "ภาระเบา"],
  58. ["30 ปี", "5,390", "5,887", "ผ่อนยาว ค่างวดต่ำสุด"]
  59. ]
  60. pdf.add_table(table_data, 45)
  61.  
  62. # คำอธิบายเพิ่มเติม
  63. explanation = (
  64. "หมายเหตุ:\n"
  65. "- ตัวเลขเป็นการประมาณจากยอดหลังดาวน์ โดยรวมค่าจดจำนองไว้แล้ว\n"
  66. "- ลูกค้าสามารถเลือกผ่อนระยะเวลาได้ตามรายได้\n"
  67. "- ผ่อนครบ รับโฉนดทันที\n"
  68. "- ทำสัญญาที่สำนักงาน ถูกต้องตามกฎหมาย พร้อมพาไปดูที่จริง"
  69. )
  70. pdf.chapter_body(explanation)
  71.  
  72. # บันทึกไฟล์ PDF
  73. output_path = "/mnt/data/ตารางที่ดินและการผ่อน.pdf"
  74. pdf.output(output_path)
  75. output_path
Success #stdin #stdout 0.03s 26028KB
stdin
Standard input is empty
stdout
from fpdf import FPDF

# สร้าง PDF class พร้อมตั้งค่าฟอนต์ภาษาไทย (ใช้ THSarabun)
class PDF(FPDF):
    def header(self):
        self.set_font("THSarabun", "B", 20)
        self.cell(0, 10, "ตารางข้อมูลที่ดินและการผ่อนชำระ", 0, 1, "C")

    def chapter_title(self, title):
        self.set_font("THSarabun", "B", 18)
        self.cell(0, 10, title, 0, 1, "L")
        self.ln(2)

    def chapter_body(self, body):
        self.set_font("THSarabun", "", 16)
        self.multi_cell(0, 8, body)
        self.ln()

    def add_table(self, data, col_widths):
        self.set_font("THSarabun", "B", 16)
        for col in data[0]:
            self.cell(col_widths, 10, col, 1, 0, "C")
        self.ln()
        self.set_font("THSarabun", "", 16)
        for row in data[1:]:
            for col in row:
                self.cell(col_widths, 10, str(col), 1, 0, "C")
            self.ln()

# สร้าง PDF และเพิ่มฟอนต์ภาษาไทย
pdf = PDF()
pdf.add_page()
pdf.add_font("THSarabun", "", "/usr/share/fonts/truetype/thai/Sarabun-Regular.ttf", uni=True)
pdf.add_font("THSarabun", "B", "/usr/share/fonts/truetype/thai/Sarabun-Bold.ttf", uni=True)

# เนื้อหาตาราง 1: รายละเอียดราคาที่ดิน
pdf.chapter_title("รายละเอียดราคาที่ดิน")
land_info = (
    "ขนาดที่ดิน: 64.7 ตร.วา (2 แปลง)\n"
    "ราคาตารางวาละ: 9,000 บาท\n"
    "ราคาต่อแปลง: 582,300 บาท\n"
    "ทำสัญญา: 10,000 บาท ต่อแปลง\n"
    "เงินดาวน์: 48,300 บาท ต่อแปลง\n"
    "ค่าโอนกรรมสิทธิ์รวม (2 แปลง): ประมาณ 9,000 บาท\n"
    "ค่าจดจำนอง 1% ของยอดกู้ (10,963 บาท ต่อแปลง)"
)
pdf.chapter_body(land_info)

# เนื้อหาตาราง 2: ผ่อนรายเดือน
pdf.chapter_title("ตารางผ่อนรายเดือน (หลังจดจำนอง)")
table_data = [
    ["ระยะเวลาผ่อน", "แปลงที่ 1", "แปลงที่ 2", "หมายเหตุ"],
    ["5 ปี", "11,665", "12,731", "ผ่อนสั้น ดอกเบี้ยน้อย"],
    ["10 ปี", "7,518", "8,211", "ผ่อนกลาง"],
    ["15 ปี", "6,290", "6,869", "ยอดผ่อนต่ำ"],
    ["20 ปี", "5,770", "6,302", "วางแผนระยะยาว"],
    ["25 ปี", "5,519", "6,027", "ภาระเบา"],
    ["30 ปี", "5,390", "5,887", "ผ่อนยาว ค่างวดต่ำสุด"]
]
pdf.add_table(table_data, 45)

# คำอธิบายเพิ่มเติม
explanation = (
    "หมายเหตุ:\n"
    "- ตัวเลขเป็นการประมาณจากยอดหลังดาวน์ โดยรวมค่าจดจำนองไว้แล้ว\n"
    "- ลูกค้าสามารถเลือกผ่อนระยะเวลาได้ตามรายได้\n"
    "- ผ่อนครบ รับโฉนดทันที\n"
    "- ทำสัญญาที่สำนักงาน ถูกต้องตามกฎหมาย พร้อมพาไปดูที่จริง"
)
pdf.chapter_body(explanation)

# บันทึกไฟล์ PDF
output_path = "/mnt/data/ตารางที่ดินและการผ่อน.pdf"
pdf.output(output_path)
output_path