# -*- coding: utf-8 -*-
from docx import Document
from docx.shared import Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

FONT = "Tahoma"
LANG = "th-TH"

doc = Document()

# 默认字体 + 泰语语言标记（关键：让 Word/WPS 按泰语规则断行）
style = doc.styles["Normal"]
style.font.name = FONT
style.font.size = Pt(12)
style.element.rPr.rFonts.set(qn("w:cs"), FONT)


def set_lang(run):
    rPr = run._element.get_or_add_rPr()
    lang = rPr.find(qn("w:lang"))
    if lang is None:
        lang = OxmlElement("w:lang")
        rPr.append(lang)
    lang.set(qn("w:val"), LANG)
    lang.set(qn("w:eastAsia"), LANG)
    lang.set(qn("w:cs"), LANG)


def add_para(text, bold=False, indent=False, size=12, align=None):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.bold = bold
    run.font.size = Pt(size)
    run.font.name = FONT
    run._element.rPr.rFonts.set(qn("w:cs"), FONT)
    set_lang(run)
    if indent:
        p.paragraph_format.left_indent = Pt(24)
    if align:
        p.alignment = align
    return p

def add_heading(text):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.bold = True
    run.font.size = Pt(14)
    run.font.name = FONT
    run._element.rPr.rFonts.set(qn("w:cs"), FONT)
    set_lang(run)
    p.paragraph_format.space_before = Pt(10)
    p.paragraph_format.space_after = Pt(4)
    return p

# ---- 标题 ----
t = doc.add_paragraph()
tr = t.add_run("การใช้ภาษาไทยในการติดต่อสื่อสาร")
tr.bold = True
tr.font.size = Pt(18)
tr.font.name = FONT
tr._element.rPr.rFonts.set(qn("w:cs"), FONT)
set_lang(tr)
t.alignment = WD_ALIGN_PARAGRAPH.CENTER
t.paragraph_format.space_after = Pt(12)

# ---- 开头（示例修正） ----
add_para("“ผู้เขียนบทความควรใช้ภาษาที่ถูกต้องตามหลักไวยากรณ์และง่ายต่อการทำความเข้าใจ”", indent=True)
add_para("“ง่ายต่อการ” เป็นการใช้ภาษาเลียนแบบภาษาอังกฤษ “easy to” ควรแก้เป็น “เข้าใจง่าย”")
add_para("“ผู้เขียนบทความควรใช้ภาษาที่ถูกต้องตามหลักไวยากรณ์และเข้าใจง่าย”", indent=True)
add_para("ข้อบกพร่องดังกล่าวข้างต้นจะลดน้อยลงอย่างมาก ถ้าข้าราชการระมัดระวังและมีความสังเกตในการใช้ภาษาไทย")

# ---- ข้อแนะนำในการเลือกใช้คำ ----
add_heading("ข้อแนะนำในการเลือกใช้คำ")
add_para("การเลือกใช้คำในการติดต่อสื่อสารระหว่างปฏิบัติการ มีแนวทางดังนี้")

add_para("๑. ใช้คำที่ตรงและถูกต้องตามที่ผู้ใช้ต้องการ ผู้ใช้ภาษาต้องมีความระมัดระวังในการเลือกใช้คำเพราะคำบางคำมีหลายความหมาย เมื่อเปลี่ยนหน้าที่ไปก็เปลี่ยนความหมายไปด้วย เช่น จะทำอะไรก็ทำเสีย ถ้าเป็นการเขียนไม่มีการเน้นเสียงเหมือนกับการพูด ผู้อ่านอาจไม่เข้าใจ เพราะอาจจะหมายความว่าจะทำอะไรก็เสียหายไปหมดหรืออาจจะหมายความว่าจะทำอะไรก็ให้รีบทำเพราะเวลาไม่คอยท่าก็ได้ นอกจากนี้คำที่มีรูปและความหมายใกล้เคียงกัน มักมีผู้ใช้ผิดบ่อย ๆ เช่น ซ่อมแซมกับปฏิสังขรณ์ ทั้งสองคำนี้มีความหมายว่า ปรับปรุง ตกแต่ง ทำให้สมบูรณ์ ทำให้ดีขึ้น แต่ทั้งสองคำนี้มีที่ใช้ต่างกัน กล่าวคือ ถ้าใช้ซ่อมแซมต้องใช้กับสิ่งของเครื่องใช้ ถ้าใช้ปฏิสังขรณ์ต้องใช้กับสถานที่สำคัญหรือวัดวาอาราม")
add_para("อีกตัวอย่างหนึ่งคือ คำว่า แน่นหนา กับ หนาแน่น ทั้งสองคำมีรูปคล้ายกันเพียงแต่สับหลังกันเท่านั้นแต่ความหมายต่างกัน เพราะคำว่าแน่นหนาหมายถึงแข็งแรง ใช้กับประตูหน้าต่าง แต่คำว่าหนาแน่นหมายถึงคับคั่ง แออัด ใช้กับกลุ่มคน เป็นต้น")
add_para("ถ้าผู้สื่อสารรู้จักใช้คำที่ตรงและถูกต้องตามความหมายจะช่วยให้สื่อสารได้รวดเร็ว ที่สำคัญคือผู้สื่อสารไม่ควรใช้คำที่ตนเองไม่เข้าใจดีพอ เพราะถ้าหากตนเองไม่เข้าใจแล้ว ผู้อื่นจะยิ่งไม่เข้าใจมากขึ้น")

add_para("๒. ใช้คำให้ถูกต้องตามหลักภาษา เช่น คำราชาศัพท์ คำลักษณนามและอื่น ๆ การใช้คำเหล่านี้ควรใช้ให้ถูกหลักเกณฑ์ของภาษาไทย และคำที่เลือกมาทุกคำต้องเป็นคำที่แจ่มแจ้ง ชัดเจน ไม่ก่อให้เกิดความสงสัยแก่ผู้ฟังหรือผู้อ่าน")

add_para("๓. ใช้คำที่อยู่ในภาษาปัจจุบัน หมายถึงใช้คำที่อยู่ในความนิยมในปัจจุบัน ไม่ควรใช้คำเกิดใหม่หรือคำที่พ้นสมัยไปแล้ว เพราะคำเหล่านี้คนส่วนใหญ่อาจไม่รู้จักหรือไม่ยอมรับ ทำให้สื่อความหมายไม่ได้ นอกจากนี้คำหยาบ คำที่หรูหราเกินไป คำยาก คำย่อที่ผู้ใช้ย่อเองตามใจชอบ ไม่ควรนำมาใช้ ผู้ใช้ควรเป็นตัวของตัวเองในการเลือกคำ ไม่ควรเอาอย่างผู้ใดผู้หนึ่งจนเกินไป ต้องนึกถึงผู้ฟังหรือผู้อ่านด้วยว่าถ้อยคำที่ใช้น่าฟังหรือน่าอ่านหรือไม่")

add_para("๔. ใช้คำไทยให้มากที่สุด ไม่ควรใช้คำหรือสำนวนต่างประเทศปนกับภาษาไทย ยกเว้นคำต่างประเทศนั้นไม่มีคำไทยใช้")

add_para("๕. ใช้พจนานุกรม ปทานุกรม สารานุกรมให้เป็นประโยชน์ ในการเลือกใช้คำนั้น หนังสือเหล่านี้จะเป็นประโยชน์เพราะรวบรวมคำที่ใช้ในภาษาไทยไว้มากมาย โดยจะบอกความหมาย ชนิด และสิ่งที่ควรรู้เกี่ยวกับการใช้คำไว้ด้วย ถ้าหากมีข้อสงสัยเกี่ยวกับคำใดควรค้นคว้าจากหนังสือเหล่านี้ หรืออาจค้นจากคอมพิวเตอร์ซึ่งจะบรรจุข้อมูลเกี่ยวกับคำไว้")
add_para("การที่ข้าราชการระมัดระวังในการใช้ถ้อยคำจะทำให้สื่อสารได้เข้าใจอย่างรวดเร็วเพราะคำเป็นส่วนประกอบสำคัญในการใช้ภาษา")

# ---- ข้อแนะนำในการใช้ประโยค ----
add_heading("ข้อแนะนำในการใช้ประโยค")
add_para("คำเป็นหน่วยที่เล็กที่สุดที่สามารถสื่อความหมายได้ แต่การสื่อความหมายจะชัดเจนยิ่งขึ้นเมื่อประกอบกันเป็นประโยค ประโยคควรมีลักษณะที่ถูกไวยากรณ์ ไม่กำกวม กะทัดรัด สละสลวย และคำในประโยคมีความสัมพันธ์กัน (นววรรณ พันธุเมธา ๒๕๒๒ : ๑๑๒) ข้อแนะนำสำหรับข้าราชการในการใช้ประโยคมีดังนี้")

add_para("๑. ประโยคที่ใช้ถูกไวยากรณ์ หรือถูกต้องตามหลักภาษา นั่นก็คือประโยคจะต้องไม่ขาดคำหรือมีคำเกินมา หรือเรียงคำผิดลำดับ เช่น")
add_para("“ถ้าแม้นว่าประชาชนทุกคนควรรู้จักรักษาความสะอาด กรุงเทพฯ คงจะไม่สกปรกอย่างนี้”", indent=True)
add_para("ประโยคนี้มีคำว่า “ควร” เกินเข้ามาทำให้อ่านไม่ได้ความ เพราะ “ถ้าแม้นว่า” เป็นเงื่อนไข “ควร” เป็นข้อแนะนำ ประโยคนี้จึงต้องตัดคำว่า “ควร” ออก ประโยคที่ถูกต้องควรเป็น")
add_para("“ถ้าแม้นว่าประชาชนทุกคนรู้จักรักษาความสะอาด กรุงเทพฯ คงจะไม่สกปรกเช่นนี้”", indent=True)
add_para("“เราจะทำอย่างไรจึงจะชักชวนประชาชนมาเลือกตั้งลงคะแนนเสียงในวันอาทิตย์นี้ให้ได้มากที่สุด”", indent=True)
add_para("ประโยคนี้เรียงคำผิดลำดับเพราะประชาชนจะต้องลงคะแนนเสียงก่อนแล้วจึงจะเลือกตั้งผู้แทนราษฎรได้ ควรแก้ไขเป็น")
add_para("“เราจะทำอย่างไรจึงจะชักชวนประชาชนมาลงคะแนนเสียงเลือกตั้งในวันอาทิตย์นี้ให้ได้มากที่สุด”", indent=True)

add_para("๒. ประโยคกะทัดรัด หมายความว่า ประโยคไม่ควรจะมีคำซ้ำคำไม่จำเป็น หรือเป็นประโยคที่ยาวจนเกินไป เช่น")
add_para("“ข้าพเจ้าทำการศึกษาค้นคว้าเกี่ยวกับการปลูกยูคาลิปตัสมากว่า ๒๐ ปี แต่ก็ยังไม่ประสบความสำเร็จ”", indent=True)
add_para("คำว่า “ทำการ” และ “ประสบความ” ที่เพิ่มเข้ามา ไม่ได้ทำให้ข้อความชัดเจนขึ้น จึงไม่จำเป็นต้องใช้ ควรเป็น")
add_para("“ข้าพเจ้าศึกษาค้นคว้าเกี่ยวกับการปลูกยูคาลิปตัสมากว่า ๒๐ ปี แต่ก็ยังไม่สำเร็จ”", indent=True)

add_para("๓. ประโยคชัดเจน ความไม่ชัดเจนอาจเกิดจากการใช้ถ้อยคำที่ไม่กระจ่าง หรือการใช้ถ้อยคำกำกวม ดังนั้นผู้ส่งสารจึงต้องหลีกเลี่ยง เช่น")
add_para("“สหรัฐอเมริกานำเข้าสินค้าไทยเท่ากับการสั่งซื้อจากสหภาพยุโรป”", indent=True)
add_para("ประโยคนี้ตีความหมายได้หลายอย่าง คือ สหรัฐอเมริกานำเข้าสินค้าไทยเท่ากับที่สหรัฐอเมริกาสั่งซื้อสินค้าจากสหภาพยุโรป หรือสหรัฐอเมริกานำเข้าสินค้าไทยเท่ากับสหภาพยุโรปสั่งซื้อสินค้าจากไทย ฉะนั้นจึงควรเขียนให้กระจ่าง ประโยคต่อไปนี้จะให้ความหมายที่ชัดเจนกว่า")
add_para("“สหรัฐอเมริกาและสหภาพยุโรปนำเข้าสินค้าไทยเท่ากัน”", indent=True)

add_para("๕. ประโยคสัมพันธ์กัน การส่งสารด้วยถ้อยคำหลาย ๆ ประโยค ประโยคที่ใช้ควรจะเกี่ยวเนื่องสัมพันธ์กัน เพราะถ้าไม่สัมพันธ์กันแล้วผู้รับสารจะรวบรวมความคิดได้ยาก เช่น")
add_para("“เกิดเพลิงไหม้ที่โรงเรียนเมื่อคืนนี้ ผู้อำนวยการโรงเรียนไปกรุงเทพฯ”", indent=True)
add_para("ประโยคนี้ไม่มีความสัมพันธ์กันแต่อย่างใด ประโยคทั้งสองนี้อาจสัมพันธ์กันในทางขัดแย้ง หรือในทางเป็นเหตุเป็นผลต่อกันก็ได้ แล้วแต่ความประสงค์ของผู้ส่งสาร ผู้ส่งสารจึงควรทำให้สัมพันธ์กันเพื่อให้ผู้รับสารเข้าใจได้ง่าย การทำให้สัมพันธ์กันอาจใช้สันธานเข้าช่วย เช่น")
add_para("“เกิดเพลิงไหม้ที่โรงเรียนเมื่อคืนนี้ แต่ผู้อำนวยการโรงเรียนไปกรุงเทพฯ” (สัมพันธ์ในทางขัดแย้ง)", indent=True)
add_para("“เกิดเพลิงไหม้ที่โรงเรียนเมื่อคืนนี้ ผู้อำนวยการโรงเรียนจึงไปกรุงเทพฯ เพื่อรายงานเหตุการณ์” (สัมพันธ์ในทางที่เป็นเหตุผล)", indent=True)
add_para("การทำให้ประโยคสัมพันธ์กัน ไม่เกิดความสับสนแก่ผู้รับสาร ผู้ส่งสารจะต้องเริ่มคิดให้เป็นลำดับและชัดเจนก่อน แล้วจึงใช้ภาษาส่งความคิดออกมา")

# ---- 结尾 ----
add_para("เป็นที่ยอมรับกันว่าผู้ที่ใช้ภาษาได้ดีย่อมได้เปรียบในการทำงาน ข้าราชการทุกคนจึงควรฝึกฝนทักษะทางภาษา ได้แก่ ทักษะการฟัง ทักษะการพูด ทักษะการอ่าน และทักษะการเขียน จนสามารถใช้ได้ดังใจนึก อย่างไรก็ตามทักษะทั้ง ๕ ประการนี้ ต้องประสานสัมพันธ์กับทักษะการคิดด้วย ในเมื่อภาษามีความสำคัญอย่างมากเพราะเป็นสะพานเชื่อมความคิดของมนุษย์ ข้าราชการซึ่งใช้ภาษาติดต่อสื่อสารกันเพื่อประสิทธิภาพของงาน จึงต้องพัฒนาสมรรถภาพการใช้ภาษาไทยของตนอยู่ตลอดเวลา")

out = "/home/mi/.openclaw/workspace/tha_ocr/การใช้ภาษาไทย.docx"
doc.save(out)
print("SAVED:", out)
