Преобразование вывода скрипта (1) в pdf

Вы предположительно можете сделать какую-то низкотехнологичную замену для скринкастов ваших терминальных сеансов со сценарием (1):

DESCRIPTION script makes a typescript of everything displayed on your terminal. It is useful for students who need a hardcopy record of an interactive session as proof of an assignment, as the typescript file can be printed out later with lpr(1). 

Теперь я создал файл машинописного текста. Но как я могу извлечь из него читаемый pdf-файл?

Я использовал lp с принтером PDF из cups-pdf, но результат искажен. Есть много m , 0; и 34;42 где должны быть пробелы.

Утилита, которая, похоже, хорошо работает с обработкой ansi-экранов и редактированием строки ввода из машинописного текста, представляет собой ansi2html.sh, который, очевидно, генерирует html. Вы можете просмотреть этот вывод в своем браузере и использовать его функции печати, или, если вы не возражаете потерять цвета, преобразуйте html обратно в простой текст без каких-либо экранов, например, с помощью

 ansi2html.sh <mytypescript | w3m -dump -T text/html >out.txt 

Затем вы можете использовать enscript для печати простых текстовых файлов.

Есть два варианта:

  • повторите сценарий (с паузами, даже через XOFF / XON ), и сделайте скриншоты, которые некоторые инструменты могут преобразовать в PDF

  • отделите управляющие последовательности от файла, оставив текстовый файл, который можно преобразовать в PDF.

Обычно я делал последнее; оба имеют свои подводные камни. Когда вы делаете скриншоты, вы можете не получить именно то изображение, которое вы хотели (хотя, используя scriptreplay , можно замедлить работу, чтобы упростить паузу на экране). Фильтрация escape-последовательностей работает достаточно хорошо для приложений командной строки, таких как «colorized ls», но плохо для скриншотов текстового редактора.

Дальнейшее чтение:

  • Как очистить цветной вывод stdout / stderr
  • Могу ли я программно «записывать» управляющие коды ANSI в файл с помощью unix utils?

Собранием script(1) является scriptreplay(1) :

 DESCRIPTION This program replays a typescript, using timing information to ensure that output happens at the same speed as it originally appeared when the script was recorded. 

Кроме того, scriptreplay предоставляет возможность ускорить / замедлить воспроизведение.

Таким образом, вы не можете просто распечатать его. Вы можете воспроизвести его и захватить скриншоты или сделать фильм.