เครื่องมือภายใน · the-harmony-projects
แปลง PDF เป็น Markdown บนเครื่องตัวเอง ทำมาเพื่อเอกสารไทยโดยเฉพาะ — ซึ่งเป็นงานที่เครื่องมือฝรั่งส่วนใหญ่อ่านไม่ออก
ปัญหาที่แก้
PDF ที่ export จาก Canva, Figma หรือ Illustrator มักฝังฟอนต์แบบ subset ที่วางวรรณยุกต์และสระไว้ในช่องรหัสของตัวอักษรละติน พอดึงข้อความออกมาจึงได้แบบนี้
สิ่งทีcเราคิด อาจเปqน “ความคิดเห็น” แบบนัfน · ปaญหา · ฝdาย · เปgาหมาย · ปvก
สิ่งที่เราคิด อาจเป็น “ความคิดเห็น” แบบนั้น · ปัญหา · ฝ่าย · เป้าหมาย · ปีก
ทดสอบกับหนังสือ Enneagram ไทย 66 หน้า · ซ่อม 741 จุด · ตกค้าง 4 ตัวจาก 88,000
เส้นทางการทำงาน
จัดประเภทเอกสารและดึงหน้าที่อ่านออก ได้ตารางและหัวข้อครบ เร็วระดับมิลลิวินาที ใช้ extract_pages_markdown() เท่านั้น
รับช่วงหน้าที่ชั้นแรกอ่านไม่ออก ซึ่งกับเอกสารไทยคือเกือบทั้งเล่ม พร้อมเดาโครงสร้างจากขนาดฟอนต์และซ่อมวรรณยุกต์
ข้ามและรายงานเลขหน้าให้ทราบ หน้าพวกนั้นต้อง OCR เท่านั้น ซึ่งเครื่องมือนี้ไม่ทำโดยตั้งใจ
ห้ามใช้ process_pdf().markdown กับเอกสารไทย
มันคืนข้อความมั่ว 103,000 ตัวมาเงียบๆ โดยไม่มี error — ธงเตือนซ่อนอยู่ที่ .has_encoding_issues ส่วน extract_pages_markdown() ยอมคืนค่าว่างพร้อมเหตุผล suspected_garbled_text แทนที่จะเดามั่ว
ผลวัดจริง · หนังสือไทย 66 หน้า
| วิธี | หน้าที่อ่านได้ | อักษรไทย | เวลา |
|---|---|---|---|
extract_pages_markdown() | 1 / 66 | 24 | 877 ms |
process_pdf().markdown | มั่วทั้งเล่ม | — | 877 ms |
| PyMuPDF ชั้น 2 | 66 / 66 | 88,117 | 331 ms |
| pymupdf4llm | 66 / 66 | เสีย 2,933 ตัว | 9,718 ms |
pymupdf4llm จัดโครงสร้างสวยกว่า แต่แปลงวรรณยุกต์ที่แมปผิดเป็น U+FFFD ซึ่งกู้กลับไม่ได้ จึงไม่ใช้
thaifix.py
ไม่มีตารางตายตัวให้ตั้งค่า เพราะ PDF แต่ละเจ้าวางวรรณยุกต์คนละช่อง ตัวโปรแกรมหาคำตอบเองสามชั้น
ฟอนต์ subset ที่ยังเก็บชื่อแบบ uni0E48 บอกคำตอบตรงๆ แม่นที่สุดและฟรี — แต่เล่มทดสอบนี้ชื่อเป็น glyph00148 จึงใช้ไม่ได้
ลองแทนวรรณยุกต์ทุกตัว แล้วเลือกอันที่ได้คำจริงมากที่สุด
เก็บที่เดาได้แล้ว ไฟล์ถัดไปที่ใช้ฟอนต์ชุดเดียวกันข้ามขั้นตอนหาไปเลย
จุดที่ทำให้แม่นจาก 4/7 เป็น 7/7
พจนานุกรมอย่างเดียวไม่พอ เพราะ ปvก เดาได้ทั้ง ปีก · ปัก · ปึก ซึ่งเป็นคำจริงทั้งหมด ตัวตัดสินคือใช้เอกสารเป็นพยานตัวเอง — นับว่าคำที่เดาได้เคยโผล่แบบสะกดถูกอยู่แล้วในเล่มเดียวกันกี่ครั้ง เล่มนี้มี “ปีก” ถูกอยู่ 10 ครั้ง ซึ่งสมเหตุสมผลเพราะปีกเป็นศัพท์หลักของ Enneagram
วิธีใช้
pip install pdf-inspector pymupdf pythainlp fonttools
pdf2md.cmd "C:\Users\Asus\Downloads\ไฟล์.pdf"
pdf2md.cmd "C:\Users\Asus\Downloads" -o "C:\Users\Asus\Documents\md"
ใส่โฟลเดอร์ = ไล่โฟลเดอร์ย่อยให้ด้วย · ไม่ใส่ -o = วางไฟล์ .md ข้างไฟล์ต้นทาง · เติม --json ถ้าจะให้สคริปต์อื่นอ่านผลต่อ
ไฟล์ในโครงการ
ข้อจำกัดที่รู้อยู่
ที่อยู่ของหน้านี้
โดเมน the-harmony-projects.com ใช้ร่วมกันหลายคน และ FTP ของเราเห็นไม่ครบทั้งบัญชี ทุกโปรเจกต์จึงอยู่ในโฟลเดอร์ที่มีตัวอักษรสุ่มต่อท้าย เพื่อให้ไม่มีทางไปทับของเดิมที่มองไม่เห็น
| ชั้น | ที่อยู่ | สถานะ |
|---|---|---|
| Macaly | b37p2sbfjf9vkbqf5zjubkd1.macaly.app | ขึ้นแล้ว |
| โดเมนหลัก | the-harmony-projects.com/thp-pdf2md/ | ไฟล์พร้อมอัป |
เลิกใช้ subdomain แล้วตั้งแต่ 9 ก.ย. 2026 — subfolder อัปเองได้ทันทีด้วย FTP ไม่ต้องรอแอดมินโฮสต์ ส่วนตัวอักษรสุ่มกันชื่อชน ทะเบียนที่อยู่ทั้งหมดอยู่ที่ content/url-system/registry.json