Knowledge Hub

PDFMathTranslate: แปลเอกสารวิชาการ PDF โดยคงสูตรและเลย์เอาต์

เรียนรู้วิธีติดตั้ง เลือกบริการแปล และตั้งค่า pdf2zh เพื่อแปล PDF วิชาการให้ได้ไฟล์ที่ยังมีสูตร ตาราง และรูปอยู่ที่เดิม พร้อมรู้ข้อจำกัดและความเสี่ยงก่อนใช้งานจริง

AI และเทคโนโลยีอ่าน 13 นาทีเผยแพร่ 21 ตุลาคม 2569

แก่นของเรื่อง

ความคิดหลัก: เครื่องมือนี้ไม่ได้แปลทั้งไฟล์เป็นก้อนเดียว แต่แยกส่วนที่เป็นข้อความออกมาแปล ส่วนสูตร รูป และตารางปล่อยไว้ที่เดิม แล้วประกอบกลับเป็น PDF ที่เลย์เอาต์เหมือนต้นฉบับ

ทำไมถึงได้ผล (ตีความ): สูตรและสัญลักษณ์ที่ผ่านตัวแปลทั่วไปมักเพี้ยน ถ้าตรวจพบว่าเป็นสูตรแล้วข้ามการแปล ความหมายทางคณิตศาสตร์ก็คงเดิม การข้ามอาศัยกฎจากชื่อฟอนต์และตัวอักษร (ดูตัวเลือก -f และ -c) และอาศัยโมเดลตรวจเลย์เอาต์ DocLayout-YOLO แบบ ONNX ในโหมดปกติ (อ่านจาก repo, 2026-10-21)

20% ที่สำคัญที่สุดในทางปฏิบัติ

ต้องรู้ รอได้
pip install pdf2zh แล้ว pdf2zh file.pdf ติดตั้ง Docker, Zotero, MCP
-s เลือกบริการแปล และตั้ง API key ผ่าน environment variable บริการแปลที่ไม่ได้ใช้ ซึ่งมีรายการยาว
-lo ภาษาปลายทาง และ -p เลือกหน้า --onnx, --prompt, --config
ผลลัพธ์มี 2 ไฟล์: -mono (แปลล้วน) และ -dual (สองภาษา) OCR และโหมด precise ที่ยังเป็น experimental

ช่วยให้ดีขึ้นอย่างไร

สถานการณ์ ถ้าไม่มีเครื่องมือ เมื่อใช้ วัดอย่างไร หลักฐาน
อ่านเปเปอร์ภาษาอังกฤษ คัดลอกข้อความไปแปลเอง สูตรและเลย์เอาต์พัง ได้ PDF ที่สูตร รูป ตารางอยู่ที่เดิม จำนวนหน้าที่เลย์เอาต์เพี้ยนจากทั้งหมด ตีความ (README ระบุว่าคงเลย์เอาต์ แต่ไม่มีตัวเลขวัดผล)
เทียบคำแปลกับต้นฉบับ เปิดสองไฟล์สลับกัน ไฟล์ -dual มีสองภาษาในไฟล์เดียว เวลาที่ใช้เทียบหนึ่งหน้า อ่านจาก repo (2026-10-21) ว่ามีไฟล์ -dual แต่ไม่มีตัวเลขเวลา
แปลหลายไฟล์ สั่งทีละไฟล์ --dir แปลทั้งโฟลเดอร์ เวลารวมต่อไฟล์ ยังไม่ทดสอบ
PDF ที่มีข้อความดิจิทัลอยู่แล้ว ต้องรันโมเดลตรวจเลย์เอาต์ทุกหน้า --ultrafast ข้ามการตรวจด้วย ONNX และ OCR เวลาต่อไฟล์ อ่านจาก repo: ข้ามขั้นตอนเหล่านี้ ไม่มีเลขความเร็ว; ไฟล์ใหญ่ขึ้น (trade-off)
ตารางและสูตรซับซ้อน - --ultrafast ไม่เหมาะ ต้องใช้โหมดปกติ ตรวจด้วยตาเทียบต้นฉบับ อ่านจาก repo (ADVANCED.md)

ลองใช้

ตัวอย่างประกอบ: แปลเปเปอร์ 20 หน้า (ตัวเลขเป็นตัวอย่างที่เราตั้งเอง)

เปเปอร์ paper.pdf ยาว 20 หน้า ต้องการอ่านแค่หน้า 1-3 และ 5 เป็นภาษาไทย

pip install pdf2zh
pdf2zh paper.pdf -p 1-3,5 -li en -lo th -o out

หน้าที่แปลคือ 3 + 1 = 4 หน้า จาก 20 หน้า คิดเป็น 4/20 = 20% ของเอกสาร ผลลัพธ์อยู่ใน out/ เป็น paper-mono.pdf และ paper-dual.pdf (ชื่อไฟล์ตามที่ README อธิบายสำหรับ example) ส่วนรหัสภาษาไทยคือ th ซึ่งเป็นความรู้ทั่วไป README ไม่ได้ระบุ ให้ลองและตรวจก่อน

ใช้ LLM แทน Google:

export OPENAI_API_KEY=sk-...
export OPENAI_BASE_URL=https://api.openai.com/v1
pdf2zh paper.pdf -s openai:gpt-4o-mini -lo th

ค่า OPENAI_BASE_URL ต้องลงท้ายด้วย /v1 ไม่เช่นนั้นจะได้ error 404 (อ่านจาก repo, 2026-10-21)

เมื่อไรควรใช้ / ไม่ควรใช้

สถานการณ์ ใช้ ข้อควรตรวจก่อน
เปเปอร์ที่มีข้อความดิจิทัลและสูตรมาก ✅ โหมดปกติ Python 3.11-3.12
ต้องการแปลเร็วและไฟล์มีข้อความดิจิทัล ✅ --ultrafast ติดตั้ง pdf2zh[ultrafast] และไม่มีตารางหรือสูตรซับซ้อน
เอกสารสแกน 🟡 ลอง pdf2zh[ocr] เป็น experimental ใช้ได้ดีกับพื้นขาว
เอกสารลับหรือมีข้อมูลส่วนบุคคล ❌ กับบริการแปลออนไลน์ ใช้ ollama ที่รันในเครื่องแทน หรือไม่แปล
ต้องการผลระดับตีพิมพ์โดยไม่ตรวจ ❌ ผลแปลจากเครื่องต้องมีคนตรวจ

ก้าวแรกที่เล็กที่สุด

  1. pip install pdf2zh
  2. pdf2zh your.pdf -p 1
  3. เปิด your-dual.pdf ดูหน้า 1

การทดสอบก่อน/หลังที่รันซ้ำได้

รายการ ค่า
ตัวชี้วัด จำนวนจุดที่ผิด (สูตรหาย ข้อความทับกัน ศัพท์เฉพาะแปลผิด) ในหน้าที่เลือก 3 หน้า
ค่าฐาน แปลด้วย -s google ที่เป็นค่าเริ่มต้น
ทดลอง แปลหน้าเดียวกันด้วยบริการอื่น เช่น -s openai:gpt-4o-mini
เงื่อนไขผ่าน (กำหนดก่อนรัน) จำนวนจุดผิดลดลงอย่างน้อย 30% และไม่มีสูตรหาย

เกณฑ์ 30% เป็นตัวเลขที่เราตั้ง ปรับตามความเหมาะสมได้ แต่ต้องกำหนดก่อนรัน

ภาพรวมโครงการ

โครงการนี้เป็นของ PDFMathTranslate/PDFMathTranslate ใบอนุญาต AGPL-3.0 ได้รับการตอบรับใน EMNLP 2025 System Demonstrations (หน้า 918-924) ผู้เขียนงานวิชาการคือ Rongxin Ouyang, Chang Chu, Zhikuang Xin และ Xiangyao Ma (อ่านจาก repo, 2026-10-21)

รายการ รายละเอียด
คำสั่งหลัก pdf2zh
ผลลัพธ์ *-mono.pdf (แปลล้วน) และ *-dual.pdf (สองภาษา)
บริการแปลเริ่มต้น Google
สิ่งที่คงไว้ สูตร รูป ตาราง สารบัญ และ annotation
โมเดลตรวจเลย์เอาต์ wybxc/DocLayout-YOLO-DocStructBench-onnx
สาขาพัฒนา PDFMathTranslate-next ไม่รับ community contribution
สาขารุ่นเสถียร Byaidu/PDFMathTranslate ตามที่ README ระบุ

ไทม์ไลน์ฟีเจอร์ที่ README ระบุ

เวลา การเปลี่ยนแปลง
ต.ค. 2026 --ultrafast และการเว้นวรรคอัตโนมัติระหว่างตัวอักษร CJK กับละติน
ก.ย. 2026 OCR แบบทดลอง จัดย่อหน้าใหม่ และจัดวางแบบปรับตัว
มี.ค. 2026 kernel แปลรุ่นทดลอง v2.0 (--mode precise) และรองรับ MiniMax
พ.ค. 2025 พรีวิว pdf2zh 2.0 สายนี้ย้ายไป PDFMathTranslate-next

วิธีติดตั้งและใช้งาน

เลือกวิธีติดตั้ง

วิธี คำสั่งหรือขั้นตอน เหมาะกับ
uv pip install uv แล้ว uv tool install --python 3.12 pdf2zh ต้องการแยกสภาพแวดล้อม
pip pip install pdf2zh ง่ายที่สุด
GUI pdf2zh -i แล้วเปิด http://localhost:7860/ ไม่ถนัดบรรทัดคำสั่ง
Windows โหลด pdf2zh-version-win64.zip จาก release ถ้าเปิดไม่ได้ ลง vc_redist.x64.exe ผู้ใช้ Windows ทั่วไป
Docker docker run -d -p 7860:7860 byaidu/pdf2zh รันเป็นเซิร์ฟเวอร์
Zotero ปลั๊กอิน guaguastandup/zotero-pdf2zh จัดการเปเปอร์ใน Zotero

ถ้าเข้า Docker Hub ไม่ได้ ใช้ ghcr.io/byaidu/pdfmathtranslate แทน (อ่านจาก repo, 2026-10-21)

ตัวเลือกที่ใช้บ่อย

ตัวเลือก หน้าที่ ตัวอย่าง
-p เลือกหน้า pdf2zh f.pdf -p 1-3,5
-li / -lo ภาษาต้นทาง / ปลายทาง -li en -lo zh
-s บริการแปล -s deepl หรือ -s openai:gpt-4o-mini
-t จำนวน thread (โหมดปกติค่าเริ่มต้น 4) -t 1
-o โฟลเดอร์ผลลัพธ์ -o output
--dir แปลทั้งโฟลเดอร์ --dir /path/
--ignore-cache ไม่ใช้ cache คำแปล --ignore-cache
--config ไฟล์ตั้งค่า JSON --config config.json
--prompt prompt เอง (ตัวแปร lang_in, lang_out, text) --prompt prompt.txt
-f / -c regex ชื่อฟอนต์สูตร / ตัวอักษรที่ต้องคงไว้ ดูตัวอย่างใน ADVANCED.md
--mode fast (ค่าเริ่มต้น) หรือ precise (ทดลอง) --mode precise
--mcp โหมด MCP STDIO pdf2zh --mcp

บริการแปลที่รองรับ (อ่านจาก repo)

กลุ่ม บริการ ต้องตั้งค่า
ไม่ต้องใช้ key google, bing, argos ไม่ต้อง
LLM แบบ OpenAI openai, openailiked, azure-openai, deepseek, grok, groq, gemini ฯลฯ *_API_KEY, *_MODEL
แปลเฉพาะทาง deepl, deeplx, azure, tencent, qwen-mt key ของแต่ละเจ้า
รันในเครื่อง ollama, xinference OLLAMA_HOST, OLLAMA_MODEL

ลำดับค่าตั้ง: โปรแกรมอ่านไฟล์ config ก่อน แล้วอ่าน environment variable ถ้ามีการตั้งตัวแปรสภาพแวดล้อม ค่านั้นจะมีผลเหนือกว่าและอัปเดตไฟล์ (ไฟล์เริ่มต้นอยู่ที่ ~/.config/PDFMathTranslate/config.json)

โหมดการทำงาน

flowchart TD
    A[PDF] --> B{ข้อความดิจิทัลหรือภาพสแกน}
    B -->|ดิจิทัล เลย์เอาต์ง่าย| C[--ultrafast]
    B -->|ดิจิทัล มีสูตรหรือตารางซับซ้อน| D[โหมดปกติ fast]
    B -->|ภาพสแกน| E[pdf2zh ocr แบบทดลอง]
    B -->|ต้องการคุณภาพสูงสุด| F[--mode precise แบบทดลอง]
    C --> G[mono และ dual PDF]
    D --> G
    E --> G
    F --> G
โหมด วิธีทำงาน ข้อจำกัด
ปกติ (fast) ใช้โมเดล ONNX ตรวจเลย์เอาต์ ต้องดาวน์โหลดโมเดล
--ultrafast ใช้ตำแหน่งข้อความเดิมจาก pdf-inspector ข้าม ONNX และ OCR มี worker 16 ตัว ใช้ร่วมกับ precise, --babeldoc, GUI/server, --onnx ไม่ได้ ไฟล์ใหญ่ขึ้น
OCR ติดตั้ง pip install 'pdf2zh[ocr]' ทำงานกับหน้าที่เป็นภาพล้วน ทดลอง เหมาะกับพื้นขาว
--mode precise kernel รุ่น 2.0 ทดลอง

ข้อเท็จจริง ความเห็น และสิ่งที่ยังไม่ยืนยัน

ประเภท เนื้อหา
ข้อเท็จจริง (อ่านจาก repo) มีไฟล์ mono/dual, บริการแปลหลายเจ้า, ultrafast ข้าม ONNX และ OCR, AGPL-3.0
คำกล่าวอ้างของโครงการ "คงสูตร กราฟ สารบัญ และ annotation" ไม่มีตัวเลขความแม่นยำใน README
ตีความ คุณภาพการแปลขึ้นกับบริการที่เลือกและความซับซ้อนของเอกสาร
ยังไม่ทดสอบ ความเร็วเทียบระหว่างโหมด และคุณภาพของ OCR ภาษาไทย
ไม่มีข้อมูล ขั้นตอนภายในของโหมดปกติ ADVANCED.md ไม่ได้อธิบายทีละขั้น

ข้อควรระวังและข้อผิดพลาดที่พบบ่อย

ปัญหา สาเหตุ วิธีแก้
ดาวน์โหลดโมเดลไม่ได้ เข้า HuggingFace ไม่ได้ ตั้ง HF_ENDPOINT=https://hf-mirror.com (อ่านจาก repo)
ได้ error 404 กับ API แบบ OpenAI base URL ไม่ลงท้าย /v1 เติม /v1
ไฟล์ผลลัพธ์ใหญ่ผิดปกติ --ultrafast ข้าม font subsetting ใช้โหมดปกติ หรือยอมรับขนาดไฟล์
Windows เปิดโปรแกรมไม่ได้ ขาด runtime ติดตั้ง vc_redist.x64.exe
สูตรบางตัวถูกแปล ชื่อฟอนต์ไม่ตรงกฎที่คงไว้ ปรับ -f และ -c
เข้าใจว่า ultrafast ดีกว่าเสมอ ความเร็วไม่เท่ากับคุณภาพ ใช้โหมดปกติกับตารางและสูตรซับซ้อน

Risks

⚠️ Warning การใช้บริการแปลออนไลน์ (Google, DeepL, OpenAI ฯลฯ) หมายถึงข้อความในเอกสารถูกส่งออกไปนอกเครื่อง ห้ามใช้กับเอกสารลับ ถ้าจำเป็นให้ใช้ ollama ที่รันในเครื่อง

  • ใบอนุญาต AGPL-3.0 มีเงื่อนไขเมื่อนำไปให้บริการผ่านเครือข่าย ควรอ่านไฟล์ LICENSE ก่อนนำไปใช้เชิงพาณิชย์ (ตีความ ไม่ใช่คำแนะนำทางกฎหมาย)
  • ฟีเจอร์ OCR, --mode precise และ --babeldoc ยังเป็น experimental
  • ผลแปลจากเครื่องอาจผิด โดยเฉพาะศัพท์เฉพาะทางและเนื้อหาที่คลุมเครือ
  • GUI แบบ --share สร้างลิงก์สาธารณะ อย่าเปิดทิ้งไว้ถ้าไม่จำเป็น
  • ข้อมูลทั้งหมดอ่านจาก repo วันที่ 2026-10-21 โปรเจกต์อัปเดตบ่อย ควรตรวจ README ล่าสุด และไม่ได้เปิดอ่านซอร์สโค้ดภายในหรือรันเครื่องมือจริง

เช็กลิสต์ก่อนแปล

ขั้นตอน สถานะ
เอกสารไม่เป็นความลับ หรือใช้บริการที่รันในเครื่อง ⚪
Python เป็นรุ่น 3.11-3.12 ⚪
ตั้ง API key ให้บริการที่เลือก ⚪
ทดสอบด้วยหน้าเดียวก่อน (-p 1) ⚪
ตรวจว่าเป็นข้อความดิจิทัลหรือภาพสแกน เพื่อเลือกโหมด ⚪
เปิด -dual เทียบสูตรและตารางกับต้นฉบับ ⚪

ทดสอบความเข้าใจ

คำถาม คำตอบ คำตอบที่มักผิด
ทำไมสูตรจึงไม่เพี้ยนหลังแปล ระบบตรวจสูตรจากฟอนต์และอักขระ แล้วข้ามการแปล (ตีความจากตัวเลือก -f/-c) ตัวแปลเข้าใจคณิตศาสตร์ได้เอง
เปเปอร์เต็มไปด้วยตารางซับซ้อน ควรเลือก --ultrafast ไหม ไม่ ADVANCED.md แนะนำโหมดปกติสำหรับตารางและสูตรซับซ้อน เลือกเพราะเร็วกว่า
ตั้ง OPENAI_BASE_URL เป็น https://api.example.com แล้วได้ 404 สาเหตุคืออะไร base URL ต้องลงท้ายด้วย /v1 API key ผิด
--ultrafast กับ --mode precise ใช้ด้วยกันได้ไหม ไม่ได้ และใช้กับ GUI/server, --babeldoc, --onnx ไม่ได้เช่นกัน ใช้ได้ทุกตัวเลือกร่วมกัน
ต้องการแปลเอกสารสัญญาลับของบริษัท ควรใช้ -s google ไหม ไม่ ข้อความถูกส่งออกนอกเครื่อง ใช้บริการในเครื่อง เช่น ollama ใช้ได้เพราะเป็นค่าเริ่มต้น
README ระบุว่า "คงเลย์เอาต์" แปลว่าผลแปลถูกต้องทุกหน้าใช่ไหม ไม่ เป็นคำกล่าวอ้างที่ไม่มีตัวเลขวัดผล ต้องตรวจเทียบกับต้นฉบับเอง ใช่ เพราะเป็นโครงการระดับ EMNLP

Sources

รายการ รายละเอียด
Repo PDFMathTranslate/PDFMathTranslate
Commit 6aa87bf (บนสาขา main)
วันที่อ่าน 2026-10-21
ไฟล์ที่อ่าน README.md, docs/ADVANCED.md และข้อมูล repo ผ่าน GitHub API
ข้อจำกัด อ่านผ่าน WebFetch ไม่ใช่ gh ไม่ได้ clone และไม่ได้อ่านซอร์สโค้ด
งานวิชาการ EMNLP 2025 System Demonstrations, หน้า 918-924

ตัวย่อที่ใช้ในหน้านี้

ตัวย่อ ชื่อเต็ม คืออะไร อ่านค่าอย่างไร
PDF Portable Document Format รูปแบบไฟล์เอกสารที่คงหน้าตาเดิม paper.pdf คือไฟล์เอกสาร
CLI Command-Line Interface ใช้งานผ่านบรรทัดคำสั่ง pdf2zh file.pdf
GUI Graphical User Interface หน้าจอใช้งานผ่านเบราว์เซอร์ pdf2zh -i เปิดที่ port 7860
API Application Programming Interface ช่องทางให้โปรแกรมเรียกใช้งาน OPENAI_API_KEY คือคีย์เรียก API
LLM Large Language Model โมเดลภาษาขนาดใหญ่ เช่น GPT -s openai:gpt-4o-mini ใช้ LLM แปล
OCR Optical Character Recognition แปลงภาพตัวอักษรเป็นข้อความ ใช้กับหน้าสแกนที่ไม่มีข้อความดิจิทัล
ONNX Open Neural Network Exchange รูปแบบไฟล์โมเดล AI ที่รันได้หลายแพลตฟอร์ม --onnx path ใช้โมเดลตรวจเลย์เอาต์ของตัวเอง
YOLO You Only Look Once ตระกูลโมเดลตรวจจับวัตถุ ใช้ตรวจบล็อกในหน้า DocLayout-YOLO แยกข้อความ รูป และสูตร
CJK Chinese, Japanese, Korean กลุ่มอักษรจีน ญี่ปุ่น เกาหลี README กล่าวถึงช่องว่างระหว่าง CJK กับตัวละติน
MCP Model Context Protocol โปรโตคอลให้ผู้ช่วย AI เรียกใช้เครื่องมือภายนอก pdf2zh --mcp
STDIO Standard Input/Output ช่องทางสื่อสารผ่าน input/output มาตรฐาน --mcp ใช้โหมดนี้
SSE Server-Sent Events การส่งข้อมูลจากเซิร์ฟเวอร์ทางเดียวผ่าน HTTP --mcp --sse
HTTP HyperText Transfer Protocol โปรโตคอลเว็บ README มี HTTP API
URL Uniform Resource Locator ที่อยู่เว็บ ต้องลงท้าย /v1 ใน base URL
JSON JavaScript Object Notation รูปแบบไฟล์ตั้งค่า config.json
regex Regular Expression รูปแบบข้อความสำหรับจับคู่ -f "(MS.*)" จับชื่อฟอนต์ที่ขึ้นต้นด้วย MS
uv uv (ตัวจัดการแพ็กเกจ Python) เครื่องมือติดตั้งแพ็กเกจ uv tool install pdf2zh
AGPL GNU Affero General Public License ใบอนุญาตโอเพนซอร์ส AGPL-3.0 คือรุ่น 3.0
EMNLP Empirical Methods in Natural Language Processing งานประชุมวิชาการด้านประมวลผลภาษา EMNLP 2025 Demo
HF Hugging Face แพลตฟอร์มโมเดล AI HF_ENDPOINT ใช้เปลี่ยนที่ดาวน์โหลดโมเดล
API key - รหัสสำหรับเรียกใช้บริการ DEEPL_AUTH_KEY
mono / dual - ไฟล์ผลลัพธ์ภาษาเดียว / สองภาษา example-mono.pdf, example-dual.pdf
-p, -li, -lo, -s, -t, -o, -f, -c - ตัวเลือกบรรทัดคำสั่ง ดูตารางตัวเลือกที่ใช้บ่อย
th, en, zh - รหัสภาษา (ไทย อังกฤษ จีน) -lo th แปลเป็นไทย
CMR/CMT ฯลฯ - รูปแบบฟอนต์ LaTeX ใน regex ตัวอย่าง ไม่ต้องอ่านค่า

แถวจากความรู้ทั่วไป ไม่ใช่นิยามของโครงการ: YOLO, ONNX, SSE, STDIO, regex, CJK, EMNLP, AGPL และรหัสภาษา th/en/zh

Summary

  • pdf2zh แปลเปเปอร์โดยคงสูตร รูป ตาราง และได้ไฟล์ mono กับ dual
  • เริ่มด้วย pip install pdf2zh แล้วลองหน้าเดียวด้วย -p 1
  • เลือกโหมดตามไฟล์: ปกติสำหรับสูตรและตารางซับซ้อน, --ultrafast สำหรับข้อความดิจิทัลง่ายๆ, OCR สำหรับสแกน (ทดลอง)
  • บริการแปลออนไลน์ส่งข้อความออกนอกเครื่อง เอกสารลับต้องใช้บริการในเครื่อง
  • ยังไม่มีตัวเลขวัดคุณภาพใน README ต้องทดสอบเทียบเองก่อนเชื่อผล
Facebook

ความรู้ที่เกี่ยวข้อง