简体中文
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 的名称保存在主图片旁边。