Преобразование исходного кода в изображение с выделенным синтаксисом

Предпосылки

OpenOffice Writer не имеет возможности ссылаться на исходный текстовый файл ASCII, применять подсветку синтаксиса, оберните его во фрейм и обновляйте содержимое фрейма при каждом изменении исходного файла. Однако OpenOffice Writer может ссылаться на изображения и автоматически обновлять изображения при их изменении.

Проблема

Изображения должны быть высокого разрешения (300 dpi или выше) с синтаксической расцветкой, подходящей для белого фона (т. Е. , распечатанная страница).

Вопрос

Как можно автоматически создавать высококачественные изображения из файлов исходного кода, таких как:

  • SQL;
  • функции PostgreSQL;
  • Java;
  • bash скрипты; и
  • R и PL / R?

Попытки

Большинство попыток представляли собой вариации на следующую тему:

$ enscript --color -f Courier12 -B -1 --highlight=sql -h -o - source.sql |\
  convert - -trim -border 10 source.png

Есть несколько проблем с этим подходом:

  1. Отсутствует разрешение (используется -resample и -плотность не дают улучшений).
  2. Подсветка синтаксиса не подходит для белой страницы (вероятно, может изменить цветовую тему текста).
  3. Использование Courier100 создает несколько файлов .png , которые необходимо сшить вместе.
  4. -граница 10 неожиданно меняет цвет фона с белого на светло-серый.

Ручное решение

Преобразование исходных файлов в PostScript - без использования ImageMagick - и их последующий импорт в GIMP даст желаемые результаты. К сожалению, это решение требует небольшой ручной работы, а мой опыт пакетного программирования GIMP почти нулевой.

5
задан Dave Jarvis 3 August 2017 в 23:29
поделиться