Word排版格式刷Skill

👤 黃晨徵 📦 v2.0.4 ⭐ 4.6 ⬇️ 1.8K 下載
📄 辦公效率 免費

📖 技能介紹


name: bid-word-format description: 根據使用者提供的參考 Word 模板,重排中文投標書、方案書、建議書等 .doc/.docx 文件,保留原文內容,清理亂格式,遷移標題、正文、頁首頁尾、頁面設定和表格基礎樣式,並輸出處理報告與結構 QA 報告。 agent_created: true


Word 文件排版技能

Word 文件排版技能是一個用於中文投標書、方案書、建議書和商務長文件的 Word 模板遷移排版工具。

它接收兩份 Word:

  • 參考模板 Word:提供標題、正文、頁首頁尾、頁面設定和編號樣式。模板由使用者提供,本技能負責學習並復刻它,不內建任何固定模板。
  • 待排版 Word:提供需要保留的正文、標題文本和表格文字。

輸出是一份新的規範化 .docx,以及處理報告和結構 QA 報告。

核心原則(務必遵守)

  1. 模板來自使用者:不要憑空假設、不要生成預設模板。必須先拿到使用者上傳的參考模板,解析學習並讓使用者確認後,才能開始排版。
  2. 順序固定,不可跳步:環境自檢 → 索要模板 → 索要待排版檔案 → 排版 → 交付複核。
  3. 每步都明確告訴使用者:每一步開始前,用一句話說明你現在要做什麼、需要使用者提供什麼。

標準互動流程(嚴格按此順序逐步引導使用者)

第 0 步:檢查執行環境

先執行環境自檢:

python scripts/check_env.py

檢查內容:Python 版本、python-docxlxml(必需);LibreOffice/soffice(可選,用於 .doc 轉換和頁面渲染)。

根據結果明確告知使用者:

  • 環境就緒 → 進入第 1 步。
  • 缺必需項(python-docx / lxml)→ 告訴使用者「缺少什麼、如何安裝」,並停下等待使用者補齊,不要強行繼續。
  • 缺 soffice → 提示「可繼續處理 .docx,但 .doc 轉換和頁面渲染不可用」,可繼續。

檔案檢查format_bid_doc.py 內建 _preflight 前置校驗,排版前會自動檢查模板/輸入檔案的存在性、格式(.docx/.doc)、.docx 完整性、.doc 是否需要 soffice。出錯時給出友好中文提示(問題 + 原因 + 解決建議),不拋 traceback。也可在排版前手動執行 check_files.py 提前診斷。

第 1 步:向用戶索要參考模板(學習)

明確告訴使用者:

請上傳你想復刻格式的參考模板 Word 檔案(.docx 優先,.doc 也可以)。我會學習它的標題層級、正文樣式、頁首頁尾和頁面設定。

收到模板後:

  1. 先檢查檔案(避免拿到損壞檔案後才發現): bash python scripts/check_files.py --template <模板路徑>
  2. 若報錯(不存在/格式不支援/損壞)→ 把友好提示原樣轉告使用者,請使用者用 Word 重新另存或換一份,不要繼續
  3. 學習模板bash python scripts/learn_template.py --template <模板路徑>
  4. 複述學到的內容請使用者確認,必須覆蓋以下維度(用指令碼實際輸出,不要自己編):

    我已學習到: - 頁面:A4 縱向,邊距 上3.0/下3.5/左3.0/右2.0 cm - 標題:分 4 級(Heading 1~4,黑體) - 正文:中文宋體、西文/數字 Arial、小五(9pt)、1.5 倍行距、首行縮排 2 字元、兩端對齊 - 頁首:xxx(保留模板原文)/ 頁尾:頁碼 請確認這就是你要的格式。

  5. 若 learn_template 輸出「樣式級 vs run級衝突」(如字號小四vs小五)→ 必須告知使用者:

    ⚠️ 檢測到模板存在格式覆蓋:Normal 樣式定義為小四(12pt),但正文實際是小五(9pt)+Arial。排版時會以正文實際格式為準套用。

  6. 只有使用者確認後,才進入下一步。若使用者指出理解有誤,修正後再次確認。

第 2 步:向用戶索要待排版檔案

模板確認後,明確告訴使用者:

請上傳你想刷格式的 Word 檔案(.docx 優先)。我會保留它的正文內容,套用剛才學到的模板格式。

收到檔案後:

  1. 先檢查檔案bash python scripts/check_files.py --template <模板路徑> --input <待排版路徑>
  2. 若報錯 → 把友好提示原樣轉告使用者,請使用者修正後重新上傳,不要繼續
  3. 若通過 → 進入排版。

第 3 步:執行排版

  1. 若輸入為舊版 .doc,先用 LibreOffice/soffice 轉為 .docx
  2. 執行排版指令碼(見「命令示例」)。
  3. 執行結構 QA。
  4. 渲染為 PDF 做視覺檢查,不要只看 XML 或 JSON 就判斷完成

任一步驟失敗時的處理: - 指令碼會輸出友好中文提示(問題 + 原因 + 解決建議),把提示原樣轉告使用者,不要自己翻譯成技術術語。 - 若是檔案問題(損壞/格式)→ 請使用者用 Word 重新另存或換檔案。 - 若是環境問題(缺 soffice)→ 給出 LibreOffice 下載連結或建議另存為 .docx。 - 若是未預期錯誤 → 提示使用者先跑 check_env.py + check_files.py 診斷,仍不行則反饋錯誤資訊。 - 不要把 Python traceback 直接丟給使用者。

第 4 步:交付並請使用者複核

交付 formatted.docx、處理報告、QA 報告,並提醒使用者重點檢查:

  • 表格是否溢位、文字是否裁切。
  • 頁首頁尾是否正確(應保留模板原文)。
  • 標題層級是否識別正確,編號是否連續(1 / 1.1 / 1.1.1)。
  • 正文格式是否與模板一致:中文字型(宋體)、西文/數字字型(Arial)、字號(小五)、行距(1.5 倍)、首行縮排(2 字元)、兩端對齊。
  • 頁面尺寸、頁邊距是否接近參考模板。
  • 渲染的 PDF 沒有文字重疊、頁首頁尾斷裂。

自動處理內容

  • 規範化待排版文件內容。
  • 根據 11.11.1.11.1.1.1 等編號識別標題層級。
  • 將標題對映到 Word Heading 1/2/3/4 樣式。

    小蔥技能站7w4.net發現了升級外掛。

  • 清理源文件中干擾模板的直接字型、字號、顏色等格式。
  • 複製參考模板的樣式、編號、主題、字體表、設定、節屬性、頁首頁尾和相關媒體部件。
  • 保留表格文字,並應用基礎網格邊框和單元格邊距。

這個技能用於格式遷移,不用於正文改寫。如果源文件缺少封面、審批頁、目錄等關鍵欄位,需要使用者補充或人工確認。

格式要求

排版從模板學習並復刻以下格式維度,全部從模板學習、不硬編碼預設值

標題層級

  • 識別源文件的標題:樣式為 Heading 1~4 或文本以 1 / 1.1 / 1.1.1 / 1.1.1.1 等數字編號開頭。
  • 對映到模板裡實際存在的標題樣式 ID(相容英文 Heading1-4、中文「標題 1-4」、純數字命名)。
  • 模板的 Heading 樣式若帶自動多級編號,保留並由 Word/LibreOffice 自動渲染。

正文排版(關鍵)

從模板學習「正文畫像」,包含樣式級 + run 級兩層,兩層都看、run 級優先

維度 含義 來源
段落樣式 Normal 段落級 pStyle
中文字型 eastAsia(如宋體 / 宋體;SimSun) Normal 樣式定義
西文/數字字型 ascii / hAnsi(如 Arial) run 級覆蓋
字號 半磅值(如 18 = 小五 / 9pt) run 級覆蓋
行距 line + lineRule(如 360 auto = 1.5 倍) 段落級
首行縮排 firstLineChars(如 200 = 2 字元),優先字元數 段落級
對齊 jc=both(兩端對齊) 段落級

關鍵:run 級字型/字號必須顯式寫入每個 run,不依賴樣式繼承。 模板 Normal 樣式定義的字號可能是 12pt(小四),但正文 run 實際常覆蓋為 9pt(小五)+ Arial(西文/數字)。只套樣式而不寫 run 級,會導致正文字號/字型與模板不一致。

學習模板時,執行 scripts/learn_template.py 會同時輸出: - Normal 樣式定義的字型/字號(樣式級) - 正文 run 實際的字型/字號(run 級) - 兩者合併後的有效字型 - 樣式級 vs run 級衝突清單(如有衝突,排版時會顯式寫入 run 級覆蓋)

表格

  • 保留表格文字,應用基礎邊框和單元格邊距(Table Grid 樣式 + tblBorders + tblCellMar)。
  • 表格內段落保持 Normal 樣式,不強行套正文畫像(避免破壞表格佈局)。

頁面與頁首頁尾

  • 複製模板的頁面尺寸、頁邊距、節屬性(含橫向節)。
  • 複製模板的頁首頁尾(含媒體圖片如 logo)。
  • 頁首預設保留模板原文;只有顯式傳 --header-text 時才替換。

命令示例

檢查環境:

python scripts/check_env.py

檢查檔案(可選,排版前提前診斷檔案是否有問題):

python scripts/check_files.py --template templates/your_template.docx --input your_input.docx

學習模板格式(標題層級 + 正文畫像 + 衝突檢測):

python scripts/learn_template.py --template templates/your_template.docx

首次使用前:生成演示模板(SkillHub 禁止上傳二進位制檔案,釋出包不含 sample_template.docx):

python scripts/create_sample_template.py

輸出 templates/sample_template.docx,中性演示,不包含真實業務資料。正式使用請用你自己的參考模板(替換 --template 引數)。

建立脫敏測試輸入:

python scripts/create_test_input.py --out tests/messy_bid_input.docx

執行排版:

python scripts/format_bid_doc.py \
  --template templates/sample_template.docx \
  --input tests/messy_bid_input.docx \
  --out tests/formatted_bid_output.docx \
  --report tests/formatted_bid_output.report.json

注意:以上用包內建的中性演示模板跑通流程;正式使用請把 --template 換成你自己的參考模板。

執行結構 QA:

python scripts/qa_docx.py --docx tests/formatted_bid_output.docx

渲染並視覺檢查:

python scripts/render_docx.py tests/formatted_bid_output.docx --output_dir tests/rendered --emit_pdf

驗收清單

  • 輸出 .docx 可以正常開啟。
  • 頁面尺寸、頁邊距、頁首頁尾接近參考模板。
  • 標題層級出現在 Word 樣式系統中,編號正確(1 / 1.1 / 1.1.1)。
  • 正文不再保留明顯的亂字型、亂字號、亂顏色。
  • 正文段落的中文字型、西文/數字字型、字號、行距、首行縮排、對齊與模板正文一致。
  • 表格文字完整,沒有明顯裁切。
  • 處理報告和 QA 報告已生成。
  • 渲染頁面沒有文字重疊、頁首頁尾斷裂或表格溢位。

能力邊界

自動排版可以復現模板樣式系統和頁面結構,但不能憑空準確推斷缺失的業務欄位。對於封面、審批資訊、目錄、複雜表格、圖片排版和超寬頁面,最終仍需要人工複核。

🤖 AI 評測

這個技能質量不錯,文件寫得清楚明白,操作流程一步步引導使用者,遇到問題會給友好的提示而不只是冷冰冰的技術報錯。核心功能穩定,能把模板格式準確遷移到新文件,保留原文件內容不變。不足之處是複雜表格和圖片處理能力有限,需要人工複核;SkillHub 版本不自帶示例模板,首次使用需要執行指令碼生成。總體適合處理常規的中文投標書、方案書排版,標準化工作場景用它很順手。

📊 多維度評分

適應性4.7
規範性4.4
有效性4.6
可靠性4.5
可信度5

📁 包含檔案 (15 個)

📄 PRODUCT.md 7.7 KB
📄 SKILL.md 10.8 KB
📄 SKILLHUB_DESCRIPTION.txt 6.6 KB
📄 _meta.json 115 B
📄 agents/workbuddy.yaml 278 B
📄 requirements.txt 27 B
📄 scripts/check_env.py 2.8 KB
📄 scripts/check_files.py 5.7 KB
📄 scripts/create_sample_template.py 6.3 KB
📄 scripts/create_test_input.py 3 KB
📄 scripts/format_bid_doc.py 28.4 KB
📄 scripts/learn_template.py 11.9 KB
📄 scripts/qa_docx.py 2.4 KB
📄 scripts/render_docx.py 3.5 KB
📄 templates/README.md 1.2 KB