繁體中文
English 简体中文 繁體中文
Methodox 首頁

命令列與轉換

每個 Methodox Office 應用程式都能理解 LibreOffice 的命令列,因此為 soffice --headless --convert-to pdf 編寫的指令碼無需修改即可針對 Methodox Office 執行;而 mos 是適用於整個套件的統一命令。

mos

mos.exe 位於各應用程式旁邊,安裝程式可以把它加入 PATH。它之於 Methodox Office,就如同 soffice 之於 LibreOffice:它接受 LibreOffice 的開關以及套件自己的開關,按副檔名把每個文件傳送到對應的應用程式,並在自己的程序中執行轉換、指令碼和其他無頭工作,因此命令提示符或指令碼會等待它完成並獲得其退出程式碼。各應用程式本身是視窗程式,命令提示符不會等待它們。

mos                                    open the Start Centre
mos Report.docx Budget.xlsx            open each document in its application
mos --calc                             open Formula with a new workbook
mos --convert-to pdf --outdir out *.docx *.xlsx
mos --cat Letter.docx                  the text of a document on standard output
mos --script Tidy.lua --save-as Tidied.docx Report.docx
mos -n Template.docx                   open an untitled copy of a document
mos extension list                     the extensions installed for you
mos python -c "print(2 ** 10)"         the suite's Python
mos mcp                                the documents for an AI assistant (MCP)
mos --calc --help                      Formula's own switches

--writer、--calc、--impress、--draw 和 --math 按指定選擇應用程式,而不是按副檔名選擇(mos --draw Plan.pptx 會在 Nu 中開啟簡報)。圖片會交給 Curfew,任何型別的範本都會作為新文件開啟。用於檢視的文件會在其應用程式的視窗中開啟,mos 不會等待它們。mos 在一切成功時以 0 退出,在某個檔案無法轉換或某個應用程式無法啟動時以 1 退出,在命令列有誤時以 2 退出。

轉換文件

MethodoxImpulse --convert-to pdf --outdir out *.docx
MethodoxFormula --convert-to csv --outdir out Budget.xlsx
MethodoxExpo --convert-to pdf:impress_pdf_Export:{"PageRange":{"type":"string","value":"2-3"}} Deck.pptx
MethodoxOffice --convert-to pdf --outdir out a.docx b.xlsx c.pptx

--convert-to <extension>[:<filter>[:<options>]] 在不開啟視窗的情況下轉換每個檔案,並將其寫入 --outdir(省略時為目前資料夾),同時列印與 LibreOffice 相同的輸出(convert Report.docx as a Writer document -> out\Report.pdf using filter : writer_pdf_Export),因此讀取該輸出的指令碼可以繼續正常工作。萬用字元會被展開。轉換中無法保留的內容會以 Warning: 行的形式列印到標準錯誤。退出程式碼為 0;如有任何檔案失敗,則為 1。

應用程式 --convert-to 過濾器名稱
Impulse pdf docx txt rtf odt html png jpg writer_pdf_Export, MS Word 2007 XML, Text, Rich Text Format, writer8, HTML (StarWriter), writer_png_Export, writer_jpg_Export
Formula pdf xlsx xlsm xltx csv ods fods ots png jpg calc_pdf_Export, Calc MS Excel 2007 XML, Calc MS Excel 2007 XML Template, Text - txt - csv (StarCalc), calc8, OpenDocument Spreadsheet Flat XML, calc8_template, calc_png_Export, calc_jpg_Export, Calc MS Excel 2007 VBA XML
Expo pdf pptx potx odp fodp otp png jpg impress_pdf_Export, Impress MS PowerPoint 2007 XML, Impress MS PowerPoint 2007 XML Template, impress8, OpenDocument Presentation Flat XML, impress8_template, impress_png_Export, impress_jpg_Export
Nu pdf svg png jpg pptx drawio odg fodg otg draw_pdf_Export, draw_svg_Export, draw_png_Export, draw_jpg_Export, draw8, OpenDocument Drawing Flat XML, draw8_template
Math mml pdf smf MathML XML (Math), math_pdf_Export

PDF 選項採用 LibreOffice 的 JSON 格式:PageRange、Quality、UseLosslessCompression、ReduceImageResolution、MaxImageResolution 和 SelectPdfVersion(1 到 3 表示 PDF/A)。影像選項為 PixelWidth、PixelHeight 和 Quality。文字文件或活頁簿的 PNG 或 JPEG 是其第一頁。--infilter=<filter> 會使用指定名稱的過濾器開啟檔案,而不考慮其副檔名。

Formula 在轉換為 xlsx、xlsm 和 csv 以及響應 --cat 時完全不構建視窗,因此這些轉換更快。Word 97 .doc、Excel 97 .xls 和 PowerPoint 97 .ppt 的轉換方式與其他文件相同:mos --convert-to docx Old.doc、mos --convert-to xlsx Old.xls、mos --convert-to odp Old.ppt。--infilter 也接受 LibreOffice 對它們使用的名稱,例如 MS Excel 97 和 MS PowerPoint 97。

其他 LibreOffice 開關

開關 作用
--cat <files> 將每個文件的文字寫入標準輸出:Impulse 輸出純文字,表格以製表符分隔的行表示;Formula 輸出第一個工作表的 CSV,日期和時間按儲存格中顯示的樣子寫出;Expo 輸出每張投影片的文字,每張投影片一個塊
--print-to-file [--printer-name <name>] [--outdir <dir>] <files> 為每個文件寫出一個 PDF
--headless <file> 在不顯示視窗的情況下開啟文件,並報告丟失的內容
--view <file>, --show <file> 以只讀方式開啟文件;--show 會啟動投影片放映
-n <file>, --new-from <file> 開啟文件的一個無標題副本,與 Start Centre 的 Quick Starts 相同,因此儲存時會要求輸入新名稱,原始檔案永遠不會被寫入
--norestore 不提供恢復先前會話的選項
--version 列印版本
--language=<tag> 以另一種區域設定讀取和轉換文件,例如使用 de-DE 的數字和日期格式;介面語言由 --ui-language 設定
--nologo, --nodefault, --minimized, --nolockcheck, --pidfile, -env: 為相容性而接受

--ui-language <tag>(也可寫作 --ui-language=<tag>)會讓應用程式在本次執行中使用另一種介面語言啟動:en、zh-Hans、zh-Hant、ja 或 ko。DIVOOKA_OFFICE_LANGUAGE 環境變數的作用相同;否則使用 Edit ▸ Options 中選擇的語言,再否則使用 Windows 自身的語言。參見語言。

執行指令碼

MethodoxFormula --script SummarySheet.lua --open Sales.xlsx --save-as Summary.xlsx
MethodoxExpo --script DeckFromWorkbook.lua --arg Sales.xlsx --save-as Sales.pptx
MethodoxNu --script CircleOfTriangles.py --save-as ring.pptx

--script <file.lua|file.csx|file.py>,或用於圖 Routine 的 <graphs.dvj>#<Routine>,會在 Impulse、Formula、Expo 或 Nu 中不顯示視窗地執行指令碼,作用於 --open 指定的文件(使用 mos 時則為最後指定的文件),或作用於一個新文件。--arg <value> 可重複使用,用於傳遞指令碼以 app.arguments 讀取的值;--save-as <path> 會在指令碼成功時儲存結果。指令碼的輸出和錯誤會寫到標準輸出,最後一行說明執行結果。

退出程式碼 含義
0 指令碼成功(如使用 --save-as,結果已儲存)
1 指令碼失敗;其更改已回滾,未儲存任何內容
2 命令列有誤:指令碼不存在、不支援該語言、使用 --save-as 但未指定文件,或使用了不能同時使用的開關
3 無法開啟文件
4 指令碼成功,但儲存失敗

--script 不能與 --convert-to、--cat 或 --print-to-file 組合使用。

擴充和 Python

mos extension 用於安裝、列出、啟用、禁用和刪除擴充,併為擴充的製作者打包擴充和建立索引:

mos extension pack <folder> [-o <file.dvb>]
mos extension index <folder> [--title <name>]
mos extension install <file.dvb>
mos extension install <catalogue> <id>
mos extension list
mos extension enable|disable <id> [<app>...]
mos extension uninstall <id>

mos python 是命令列上的套件 Python,也就是 pip 為 Python 環境執行時所用的 Python:

mos python [--env <environment folder>] (-m <module> | -c <code> | <file.py> | -V) [arguments]

使用 --env 時,該環境即為安裝位置,因此 -m pip install requests 會安裝到該環境中。

Assistant 的工具

mos mcp 通過標準輸入和輸出,把 Methodox Office 的文件提供給支援 Model Context Protocol 的 AI 助手,例如 Claude Code、Claude Desktop、Cursor 或 Codex;--readonly 只提供讀取類工具,--config <client> 會列印需要新增到該客戶端的內容。參見助手。

螢幕截圖與外觀

開關 作用
--host headless --shot <file.png> 在不顯示視窗的情況下開啟文件,並儲存視窗應有外觀的圖片
--type <text>, --keys <keys> 在無頭視窗中,按給定順序先輸入文字或按鍵:--keys "ctrl+shift+q"、--keys "pagedown pagedown"
--size <w>x<h>, --scale <n> 以像素為單位的視窗大小,以及顯示縮放比例
--dark, --high-contrast 深色主題,以及高對比度主題
--host sdl3\|avalonia\|sfml\|opentk 視窗層;預設為 SDL3

本 Wiki 頁面中的圖片就是這樣擷取的,例如:

MethodoxExpo --host headless --size 1440x900 --shot deck.png "Welcome to Methodox Expo.pptx" --keys "pagedown tab tab f2 end" --type " and more"

結束時仍開啟的放映視窗或其他第二個視窗,會以 deck.window1.png 的名稱儲存在主圖片旁邊。