不在电脑前时,打印日程视图会很方便。Org mode 可将自定义日程视图导出为纯文本、HTML105、Postscript、PDF106 与 iCalendar 文件。偶尔导出可使用以下命令:
org-agenda-write) ¶将日程视图写入文件。
若需频繁导出特定视图,可为任意自定义日程命令关联输出文件名列表107。下例先为日程与全局 TODO 列表定义自定义命令并指定导出文件,再为两个区块日程命令同样设置文件名。路径可为相对路径或绝对路径。
(setq org-agenda-custom-commands
'(("X" agenda "" nil ("agenda.html" "agenda.ps"))
("Y" alltodo "" nil ("todo.html" "todo.txt" "todo.ps"))
("h" "Agenda and Home-related tasks"
((agenda "")
(tags-todo "home")
(tags "garden"))
nil
("~/views/home.html"))
("o" "Agenda and Office-related tasks"
((agenda)
(tags-todo "work")
(tags "office"))
nil
("~/views/office.ps" "~/calendars/office.ics"))))
文件扩展名决定导出格式: ‘.html’ 会使用 htmlize 包转为 HTML; ‘.ps’ 调用 ps-print-buffer-with-faces 生成 Postscript; ‘.ics’ 会对构建日程的所有文件执行 iCalendar 导出,并仅导出日程中列出的条目;其他扩展名则生成纯 ASCII 文件。
交互式使用这些命令时 不会(not) 自动生成导出文件以避免开销。需通过专用命令一次性生成 所有 指定文件:
org-store-agenda-views) ¶导出所有关联了导出文件的日程视图。
可在自定义日程命令的选项段为导出命令设置参数,示例:
(setq org-agenda-custom-commands
'(("X" agenda ""
((ps-number-of-columns 2)
(ps-landscape-mode t)
(org-agenda-prefix-format " [ ] ")
(org-agenda-with-colors nil)
(org-agenda-remove-tags t))
("theagenda.ps"))))
该命令为 Postscript 导出器设置两列横向打印,页面可裁切后用于纸质日程。其余设置简化日程前缀,省略分类与计划信息,改用勾选框;移除标签使行更紧凑;黑白打印时关闭颜色。 org-agenda-exporter-settings 中的设置同样生效,例如:
(setq org-agenda-exporter-settings
'((ps-number-of-columns 2)
(ps-landscape-mode t)
(org-agenda-add-entry-text-maxlines 5)
(htmlize-output-type 'css)))
但 org-agenda-custom-commands 中的设置优先级更高。
也可在命令行使用:
emacs -eval (org-batch-store-agenda-views) -kill
如需修改参数108:
emacs -eval '(org-batch-store-agenda-views \
org-agenda-span (quote month) \
org-agenda-start-day "2007-11-01" \
org-agenda-include-diary nil \
org-agenda-files (quote ("~/org/project.org")))' \
-kill
该命令限定仅从 ‘~/org/project.org’ 生成日程视图,不含日记内容,时间跨度为 30 天。
也可提取日程信息供其他程序进一步处理,详见 Extracting Agenda Information。
HTML 导出需安装 Hrvoje Nikšić 的 ‘htmlize.el’ ,可从 NonGNU ELPA 或 作者仓库 安装。
生成 PDF 输出需系统安装 Ghostscript ps2pdf 工具。选择导出 PDF 时同时会生成 PostScript 文件。
若需保存标准视图(如周日程、全局 TODO 列表),需先为其定义自定义命令才能指定导出文件。
引号规则因系统而异,示例见 FAQ。