fork download
  1. # เพิ่มฟอนต์ก่อนเรียกใช้ add_page เพื่อหลีกเลี่ยง error
  2. from fpdf import FPDF
  3.  
  4. class PDF(FPDF):
  5. def header(self):
  6. self.set_font("THSarabun", "B", 20)
  7. self.cell(0, 10, "สรุปขั้นตอนการทำฮัจย์ อุมเราะห์ ตอวาฟ และสะอี", ln=True, align="C")
  8. self.ln(5)
  9.  
  10. def chapter_title(self, title):
  11. self.set_font("THSarabun", "B", 18)
  12. self.set_fill_color(230, 230, 250)
  13. self.cell(0, 10, title, ln=True, fill=True)
  14. self.ln(2)
  15.  
  16. def chapter_body(self, body):
  17. self.set_font("THSarabun", "", 16)
  18. self.multi_cell(0, 10, body)
  19. self.ln()
  20.  
  21. pdf = PDF()
  22.  
  23. # เพิ่มฟอนต์ภาษาไทยก่อนเพิ่มหน้า
  24. font_path_regular = "/mnt/data/THSarabunNew.ttf"
  25. font_path_bold = "/mnt/data/THSarabunNew-Bold.ttf"
  26. pdf.add_font("THSarabun", "", font_path_regular, uni=True)
  27. pdf.add_font("THSarabun", "B", font_path_bold, uni=True)
  28.  
  29. pdf.add_page()
  30.  
  31. # ข้อมูลเนื้อหา
  32. sections = {
  33. "1. ฮัจย์": """
  34. - เป็นภาคบังคับสำหรับผู้ที่มีความสามารถ
  35. - ทำเฉพาะวันที่ 8–13 ซุลฮิจญะฮ์
  36. - ขั้นตอนหลัก: เอี๊ยะห์รอม > ตอวาฟ > สะอี > ยืนอะรอฟะห์ > ขว้างหิน > ตะฮัลลุล > ตอวาฟวะดาอ์
  37. """,
  38. "2. อุมเราะห์": """
  39. - เป็นซุนนะห์มุอักกะดะห์ ทำได้ตลอดปี
  40. - ขั้นตอน: เอี๊ยะห์รอม > ตอวาฟ > สะอี > ตะฮัลลุล (ตัดผม/โกนหัว)
  41. """,
  42. "3. ตอวาฟ": """
  43. - เริ่มที่หะญัร อัสวัด กล่าว 'บิสมิลลาฮ์ วัลลอฮุอักบัร'
  44. - เวียนรอบกะอ์บะฮ์ 7 รอบ ทวนเข็มนาฬิกา กะอ์บะฮ์อยู่ด้านซ้าย
  45. - แตะรุกนุลยะมานี (ถ้าทำได้) และกล่าวดุอาอ์ระหว่างทาง
  46. - หลังจบ 7 รอบ ละหมาด 2 รอกาอะห์หลังมักกอมอิบรอฮีม และดื่มน้ำซัมซัม
  47. """,
  48. "4. สะอี": """
  49. - เริ่มที่เนินซอฟา หันหน้าไปทางกะอ์บะฮ์ กล่าวดุอาอ์
  50. - เดินไปมัรวะห์ (1 รอบ) และกลับซอฟา (2 รอบ) ทำครบ 7 รอบ (จบที่มัรวะห์)
  51. - ผู้ชายให้วิ่งเบาๆ ที่ระหว่างไฟเขียว (ไมละนีน)
  52. - เสร็จแล้วตัดผมหรือโกนหัว (ตะฮัลลุล)
  53. """
  54. }
  55.  
  56. # สร้างเนื้อหา
  57. for title, body in sections.items():
  58. pdf.chapter_title(title)
  59. pdf.chapter_body(body)
  60.  
  61. # บันทึกไฟล์ PDF
  62. pdf_path = "/mnt/data/สรุปขั้นตอนฮัจย์_อุมเราะห์_ตอวาฟ_สะอี.pdf"
  63. pdf.output(pdf_path)
  64.  
  65. pdf_path
Success #stdin #stdout 0.02s 25736KB
stdin
Standard input is empty
stdout
# เพิ่มฟอนต์ก่อนเรียกใช้ add_page เพื่อหลีกเลี่ยง error
from fpdf import FPDF

class PDF(FPDF):
    def header(self):
        self.set_font("THSarabun", "B", 20)
        self.cell(0, 10, "สรุปขั้นตอนการทำฮัจย์ อุมเราะห์ ตอวาฟ และสะอี", ln=True, align="C")
        self.ln(5)

    def chapter_title(self, title):
        self.set_font("THSarabun", "B", 18)
        self.set_fill_color(230, 230, 250)
        self.cell(0, 10, title, ln=True, fill=True)
        self.ln(2)

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

pdf = PDF()

# เพิ่มฟอนต์ภาษาไทยก่อนเพิ่มหน้า
font_path_regular = "/mnt/data/THSarabunNew.ttf"
font_path_bold = "/mnt/data/THSarabunNew-Bold.ttf"
pdf.add_font("THSarabun", "", font_path_regular, uni=True)
pdf.add_font("THSarabun", "B", font_path_bold, uni=True)

pdf.add_page()

# ข้อมูลเนื้อหา
sections = {
    "1. ฮัจย์": """
- เป็นภาคบังคับสำหรับผู้ที่มีความสามารถ
- ทำเฉพาะวันที่ 8–13 ซุลฮิจญะฮ์
- ขั้นตอนหลัก: เอี๊ยะห์รอม > ตอวาฟ > สะอี > ยืนอะรอฟะห์ > ขว้างหิน > ตะฮัลลุล > ตอวาฟวะดาอ์
""",
    "2. อุมเราะห์": """
- เป็นซุนนะห์มุอักกะดะห์ ทำได้ตลอดปี
- ขั้นตอน: เอี๊ยะห์รอม > ตอวาฟ > สะอี > ตะฮัลลุล (ตัดผม/โกนหัว)
""",
    "3. ตอวาฟ": """
- เริ่มที่หะญัร อัสวัด กล่าว 'บิสมิลลาฮ์ วัลลอฮุอักบัร'
- เวียนรอบกะอ์บะฮ์ 7 รอบ ทวนเข็มนาฬิกา กะอ์บะฮ์อยู่ด้านซ้าย
- แตะรุกนุลยะมานี (ถ้าทำได้) และกล่าวดุอาอ์ระหว่างทาง
- หลังจบ 7 รอบ ละหมาด 2 รอกาอะห์หลังมักกอมอิบรอฮีม และดื่มน้ำซัมซัม
""",
    "4. สะอี": """
- เริ่มที่เนินซอฟา หันหน้าไปทางกะอ์บะฮ์ กล่าวดุอาอ์
- เดินไปมัรวะห์ (1 รอบ) และกลับซอฟา (2 รอบ) ทำครบ 7 รอบ (จบที่มัรวะห์)
- ผู้ชายให้วิ่งเบาๆ ที่ระหว่างไฟเขียว (ไมละนีน)
- เสร็จแล้วตัดผมหรือโกนหัว (ตะฮัลลุล)
"""
}

# สร้างเนื้อหา
for title, body in sections.items():
    pdf.chapter_title(title)
    pdf.chapter_body(body)

# บันทึกไฟล์ PDF
pdf_path = "/mnt/data/สรุปขั้นตอนฮัจย์_อุมเราะห์_ตอวาฟ_สะอี.pdf"
pdf.output(pdf_path)

pdf_path