私は本を書いていますが、ターミナルウィンドウから取得したスクリーンショットを表示しなければならない場合があります。問題は、印刷には適していないので、品質(解像度)を上げる必要があることです。より高い解像度でスクリーンショットを撮る方法はありますか?現在、Ubuntuを使用しています(HIdpiをシミュレートしてスクリーンショットを撮る方法はありますか?)。
実際のテキストから印刷品質の出力を取得する最良の方法は、実際に画像ではなくテキストとして表現することです。ターミナルエミュレータウィンドウの実際のスクリーンショットを撮ると、スクリーンショットの定義により、画面解像度のビットマップが得られます。
script
コマンドを使用して、端末に出力されるすべての記録を作成できます。 script
を使用することの良い点は、アプリケーションや端末からの協力を必要としないことです。ただし、次の点があります。欠点:結果のトランスクリプトには、カーソルの動きや上書きなど、アプリケーションによってそのまま送信されるエスケープシーケンスが含まれるため、通常、出力を解析するためにターミナルエミュレータを作成する必要があります。
画面でアプリケーションを実行し、そのhardcopy
コマンド(C-a h
)を使用できます。これにより、画面のコンテンツを含むファイル(デフォルトではhardcopy.0
と呼ばれます)が生成されます。これにはマークアップ(太字、色など)は含まれていません。
Xtermには印刷機能があり、から呼び出すことができます。 Ctrl+Mouse1 (Ctrl +左クリック)メニュー。デフォルトでは、これはテキストのみを印刷しますが、ビデオ属性のエスケープシーケンスを含めるようにXtermに指示できます。
xterm -xrm '*printerCommand: cat' -xrm '*printModeImmediate: 2'
この効果を得るには、colorAttr=2
を使用してprint
関数にメニューエントリまたはキーボードショートカットを追加できます。デフォルトでは、現在表示されている画面と保存されている行が含まれています。これは、printOptsImmediate
リソースまたはprint
関数への引数を介して制御できます。たとえば、表示されている部分のみを取得するには、次を使用できます。
xterm -xrm '*printerCommand: cat' -xrm '*printModeImmediate: 2' -xrm '*printOptsImmediate: 1'
出力は、XTerm
というファイルにタイムスタンプが続きます(プレフィックスはprintFileImmediate
リソースで変更できます)。これには、テキスト属性を変更するためのANSIエスケープシーケンスが含まれています。これは、書籍の植字に使用する形式に変換できます(例: HTML経由 )。
おそらくもっと便利なアプローチは、ターミナルエミュレーターとしてEmacsを使用することです。 PDFファイルへの印刷プリンターをインストールします( cups-pdf 、ディストリビューションで利用可能である必要があります)。 Emacsでは デフォルトのプリンター として設定します(構成インターフェースを使用するか、(setq printer-name "pdf")
を.emacs
に入れます)。 M-x term
を実行してターミナルエミュレータを取得し、メニューで[ファイル]→[PostscriptPrintBuffer]を選択して印刷します。 (低品質のビットマップを生成するプレーンな「印刷バッファ」を使用しないでください。)
プログラムシャッターをチェックしてください。いつも端末などのスクリーンショットを撮るのに使っています。解像度はとても良いようです。必要に応じて上げることもできます。