我正在写一本书,有时我必须展示一些从我的终端窗口截取的屏幕截图。问题是它们不适合打印,所以我需要提高它们的质量(分辨率)。有没有办法以更高的分辨率截取屏幕截图?目前,我正在使用 Ubuntu(有没有办法模拟 HIdpi 并截取屏幕截图?)。
从实际文本中获得打印质量输出的最佳方法是将其实际表示为文本,而不是图片。如果您截取终端模拟器窗口的实际屏幕截图,那么根据屏幕截图的定义,您将获得屏幕分辨率位图。
\n\n您可以使用该script
命令记录输出到终端的所有内容。使用的一个好处script
是它不需要应用程序或终端的任何配合。但它确实有一个缺点:生成的转录本包含应用程序按原样发送的转义序列,包括光标移动、覆盖等。因此,在一般情况下,您本质上需要编写一个终端模拟器来解析其输出。
您可以在屏幕中运行该应用程序,并使用其hardcopy
命令(C-a h
)。hardcopy.0
这会生成一个包含屏幕内容的文件(默认情况下调用)。它不包含任何标记(粗体、颜色等)。
Xterm 具有打印功能,您可以从Ctrl+ Mouse1(Ctrl+左键单击)菜单调用该功能。默认情况下,这仅打印文本,但您可以告诉 Xterm 包含视频属性的转义序列:
\n\nxterm -xrm \'*printerCommand: cat\' -xrm \'*printModeImmediate: 2\'\n
Run Code Online (Sandbox Code Playgroud)\n\nprint
您可以向该功能添加菜单项或键盘快捷键colorAttr=2
来获得此效果。默认情况下,包括当前可见的屏幕和已保存的行;printOptsImmediate
这可以通过资源或函数的参数来控制print
。例如,要仅获取可见部分,您可以使用
xterm -xrm \'*printerCommand: cat\' -xrm \'*printModeImmediate: 2\' -xrm \'*printOptsImmediate: 1\'\n
Run Code Online (Sandbox Code Playgroud)\n\n输出位于名为 的文件中,XTerm
后跟时间戳(您可以更改资源的前缀printFileImmediate
)。它包含用于更改文本属性的 ANSI 转义序列,您可以将其转换为用于排版图书的任何格式(例如通过 HTML)。
也许更方便的方法是使用 Emacs 作为终端模拟器。安装打印到 PDF 文件的打印机(cups-pdf,应该在您的发行版中可用)。将其设置为Emacs 中的默认打印机(使用配置界面或放入(setq printer-name "pdf")
您的.emacs
)。运行M-x term
得到终端模拟器,在菜单中选择\xe2\x80\x9cFile\xe2\x80\x9d\xe2\x86\x92\xe2\x80\x9cPostscript Print Buffer\xe2\x80\x9d进行打印。(不要使用普通的 \xe2\x80\x9cPrint Buffer\xe2\x80\x9d,这会产生低质量的位图。)
归档时间: |
|
查看次数: |
2080 次 |
最近记录: |