fork download
  1. from fpdf import FPDF
  2.  
  3. # สร้าง PDF ตารางฝึกวอลเลย์บอล
  4. class PDF(FPDF):
  5. def header(self):
  6. self.set_font("Arial", "B", 14)
  7. self.cell(0, 10, "ตารางฝึกวอลเลย์บอลคนเดียว (เน้นแก้ไม่ยกแขนตอนกระโดดตบ)", 0, 1, "C")
  8. self.ln(5)
  9.  
  10. def chapter_title(self, day, title):
  11. self.set_font("Arial", "B", 12)
  12. self.cell(0, 10, f"{day}: {title}", 0, 1, "L")
  13.  
  14. def chapter_body(self, activities):
  15. self.set_font("Arial", "", 11)
  16. for act, amount in activities:
  17. self.multi_cell(0, 8, f"- {act} ({amount})")
  18. self.ln(3)
  19.  
  20. # สร้างข้อมูลสำหรับ 7 วัน
  21. training_schedule = [
  22. ("Day 1", "เริ่มต้นเบา ๆ", [
  23. ("วอร์มร่างกาย + ยืดกล้ามเนื้อ", "5 นาที"),
  24. ("ชูแขนท่าตบเฉย ๆ", "20 ครั้ง"),
  25. ("เดาะบอลด้วยปลายนิ้ว", "50 ครั้ง"),
  26. ("กระโดดยกแขน (ไม่มีบอล)", "10 ครั้ง"),
  27. ("เซตใส่ผนัง", "30 ครั้ง")
  28. ]),
  29. ("Day 2", "ฝึกจังหวะเข้าตบ", [
  30. ("วิ่ง 3 ก้าว + กระโดดยกแขน", "10 รอบ"),
  31. ("เดาะบอลด้วยแขน", "30 ครั้ง"),
  32. ("เซตบอลเอง + ตบเบา ๆ", "10 ครั้ง"),
  33. ("เสิร์ฟใส่เป้า", "20 ครั้ง")
  34. ]),
  35. ("Day 3", "เสริมกล้ามเนื้อ", [
  36. ("กระโดดยกแขนสวิงเร็ว", "10 ครั้ง"),
  37. ("ท่าตบช้า ๆ หน้ากระจก", "10 รอบ"),
  38. ("กระโดดตบใส่กำแพง", "15 ครั้ง"),
  39. ("Plank + Sit-up", "2 เซต")
  40. ]),
  41. ("Day 4", "พักฟื้นเบา ๆ", [
  42. ("เดาะบอลด้วยปลายนิ้ว", "100 ครั้ง"),
  43. ("เซตบอลขึ้นสูง", "50 ครั้ง"),
  44. ("รับบอลจากกำแพง", "30 ครั้ง"),
  45. ("ยกแขนหมุนตัวกลางอากาศ", "10 ครั้ง")
  46. ]),
  47. ("Day 5", "ทบทวนท่าตบ", [
  48. ("วิ่งเข้า + กระโดดตบเบา", "15 รอบ"),
  49. ("กระโดดตบจริง", "5 ครั้ง × 3 เซต"),
  50. ("ท่าตบหน้ากระจก", "20 ครั้ง"),
  51. ("เสิร์ฟใส่เป้า", "30 ครั้ง")
  52. ]),
  53. ("Day 6", "เพิ่มความเร็ว", [
  54. ("เข้าจังหวะเร็ว + กระโดด", "10 ครั้ง"),
  55. ("กระโดดตบจริง", "20 ครั้ง"),
  56. ("เดาะบอล + ยกแขนตบ", "20 ครั้ง"),
  57. ("เซต + วิ่งเข้าตบ", "10 รอบ")
  58. ]),
  59. ("Day 7", "ประเมินและรวมทุกทักษะ", [
  60. ("วอร์ม + ยืด", "5 นาที"),
  61. ("เดาะบอล (แขน/นิ้ว)", "50 ครั้ง"),
  62. ("กระโดดยกแขนตบ", "20 ครั้ง"),
  63. ("ถ่ายวิดีโอตัวเอง", "1 คลิป"),
  64. ("สรุปข้อดี-ข้อปรับปรุง", "10 นาที")
  65. ]),
  66. ]
  67.  
  68. # สร้าง PDF และใส่ข้อมูล
  69. pdf = PDF()
  70. pdf.add_page()
  71.  
  72. for day, title, activities in training_schedule:
  73. pdf.chapter_title(day, title)
  74. pdf.chapter_body(activities)
  75.  
  76. # บันทึกไฟล์
  77. output_path = "/mnt/data/ตารางฝึกวอลเลย์บอลคนเดียว_7วัน.pdf"
  78. pdf.output(output_path)
  79.  
  80. output_path
  81.  
  82. }
Success #stdin #stdout 0.03s 25436KB
stdin
Standard input is empty
stdout
from fpdf import FPDF

# สร้าง PDF ตารางฝึกวอลเลย์บอล
class PDF(FPDF):
    def header(self):
        self.set_font("Arial", "B", 14)
        self.cell(0, 10, "ตารางฝึกวอลเลย์บอลคนเดียว (เน้นแก้ไม่ยกแขนตอนกระโดดตบ)", 0, 1, "C")
        self.ln(5)

    def chapter_title(self, day, title):
        self.set_font("Arial", "B", 12)
        self.cell(0, 10, f"{day}: {title}", 0, 1, "L")

    def chapter_body(self, activities):
        self.set_font("Arial", "", 11)
        for act, amount in activities:
            self.multi_cell(0, 8, f"- {act} ({amount})")
        self.ln(3)

# สร้างข้อมูลสำหรับ 7 วัน
training_schedule = [
    ("Day 1", "เริ่มต้นเบา ๆ", [
        ("วอร์มร่างกาย + ยืดกล้ามเนื้อ", "5 นาที"),
        ("ชูแขนท่าตบเฉย ๆ", "20 ครั้ง"),
        ("เดาะบอลด้วยปลายนิ้ว", "50 ครั้ง"),
        ("กระโดดยกแขน (ไม่มีบอล)", "10 ครั้ง"),
        ("เซตใส่ผนัง", "30 ครั้ง")
    ]),
    ("Day 2", "ฝึกจังหวะเข้าตบ", [
        ("วิ่ง 3 ก้าว + กระโดดยกแขน", "10 รอบ"),
        ("เดาะบอลด้วยแขน", "30 ครั้ง"),
        ("เซตบอลเอง + ตบเบา ๆ", "10 ครั้ง"),
        ("เสิร์ฟใส่เป้า", "20 ครั้ง")
    ]),
    ("Day 3", "เสริมกล้ามเนื้อ", [
        ("กระโดดยกแขนสวิงเร็ว", "10 ครั้ง"),
        ("ท่าตบช้า ๆ หน้ากระจก", "10 รอบ"),
        ("กระโดดตบใส่กำแพง", "15 ครั้ง"),
        ("Plank + Sit-up", "2 เซต")
    ]),
    ("Day 4", "พักฟื้นเบา ๆ", [
        ("เดาะบอลด้วยปลายนิ้ว", "100 ครั้ง"),
        ("เซตบอลขึ้นสูง", "50 ครั้ง"),
        ("รับบอลจากกำแพง", "30 ครั้ง"),
        ("ยกแขนหมุนตัวกลางอากาศ", "10 ครั้ง")
    ]),
    ("Day 5", "ทบทวนท่าตบ", [
        ("วิ่งเข้า + กระโดดตบเบา", "15 รอบ"),
        ("กระโดดตบจริง", "5 ครั้ง × 3 เซต"),
        ("ท่าตบหน้ากระจก", "20 ครั้ง"),
        ("เสิร์ฟใส่เป้า", "30 ครั้ง")
    ]),
    ("Day 6", "เพิ่มความเร็ว", [
        ("เข้าจังหวะเร็ว + กระโดด", "10 ครั้ง"),
        ("กระโดดตบจริง", "20 ครั้ง"),
        ("เดาะบอล + ยกแขนตบ", "20 ครั้ง"),
        ("เซต + วิ่งเข้าตบ", "10 รอบ")
    ]),
    ("Day 7", "ประเมินและรวมทุกทักษะ", [
        ("วอร์ม + ยืด", "5 นาที"),
        ("เดาะบอล (แขน/นิ้ว)", "50 ครั้ง"),
        ("กระโดดยกแขนตบ", "20 ครั้ง"),
        ("ถ่ายวิดีโอตัวเอง", "1 คลิป"),
        ("สรุปข้อดี-ข้อปรับปรุง", "10 นาที")
    ]),
]

# สร้าง PDF และใส่ข้อมูล
pdf = PDF()
pdf.add_page()

for day, title, activities in training_schedule:
    pdf.chapter_title(day, title)
    pdf.chapter_body(activities)

# บันทึกไฟล์
output_path = "/mnt/data/ตารางฝึกวอลเลย์บอลคนเดียว_7วัน.pdf"
pdf.output(output_path)

output_path

}