Преобразование HTML в изображение

Задний план

Пакетное преобразование различных исходных файлов с синтаксисом (C, SQL, Java, PHP, batch, bash) в изображения с высоким разрешением (600 точек на дюйм), подходящие для книги и печатной книги.

Неудачные решения

Ряд попыток:

  • OpenOffice или LibreOffice – необходимо повторно импортировать исходный код в документ каждый раз, когда исходный файл изменяется. (То есть, решение не может быть легко автоматизировано для сотен или тысяч исходных файлов.)
  • EnScript. Невозможно легко изменить цвета, несовершенно выводит результат, а не всеобъемлющий.
  • LyX / LaTeX. Несовершенно делает вывод.
  • Gvim to HTML – HTMLDOC для PostScript – GhostScript для PNG. HTMLDOC игнорирует теги font .
  • Gvim to HTML – html2ps – GhostScript для PNG. Цвет RGB не распознается html2ps .
  • Firefox для PostScript – GhostScript для PNG. Обидно круто.
  • Gvim to HTML – OmniFormat ко всему. Бесплатная версия, непригодная для пакетной обработки; Много рекламных всплывающих окон.
  • pygments. Невозможно легко изменить разрешение изображения; Не имеет цветовых схем gvim.

Ближайшее решение

Решение, которое работает почти так:

  • Gvim to HTML – wkhtmltopdf в PDF. Требуется пост-обработка с помощью ImageMagick ( wkhtmltoimage не может установить разрешение изображения, только ширину страницы).

Требования

  • Windows и Linux, но и приемлемы.
  • Свободный или OSS
  • Только для командной строки (подходит для пакетной обработки)
  • Легко менять цветовую схему
  • Поддержка: PHP, пакетная, bash, Java, JavaScript, R, C и SQL

Вопрос

Любые другие способы преобразования выделенного синтаксисом исходного кода в изображение с высоким разрешением (600 точек на дюйм)?

Спасибо!

3 Solutions collect form web for “Преобразование HTML в изображение”

Требования к ПО

Следующие пакеты программного обеспечения доступны как для систем Windows, так и для Linux и требуются для полного рабочего решения:

  • Gvim – Используется для экспорта синтаксиса выделенного исходного кода в HTML.
  • Moria – Цветовая схема подсветки синтаксиса.
  • Wkhtmltoimage – Используется для преобразования HTML-документов в PNG-файлы.
  • Gawk and sed – Инструменты обработки текста.
  • ImageMagick – используется для обрезки PNG и добавления границы.

Общие шаги

Вот как работает решение:

  1. Загрузите исходный код в редактор, который может добавить всплески цвета.
  2. Экспорт исходного кода в виде HTML-документа (со встроенными тегами FONT ).
  3. Разделите атрибут фона из документа HTML (чтобы обеспечить прозрачность).
  4. Преобразуйте HTML-документ в PNG-файл.
  5. Обрезайте границу PNG.
  6. Добавьте небольшую 25-пиксельную рамку вокруг изображения.
  7. Удаление временных файлов.

Сценарий генерирует изображения, которые имеют одинаковую ширину для исходных файлов, содержащих строки длиной до 80 символов. Исходные файлы с строками длиной более 80 символов приводят к тому, что изображения имеют ширину, достаточную для сохранения всей строки.

Монтаж

Установите компоненты в следующие места:

  • GvimC:\Program Files\Vim
  • MoriaC:\Program Files\Vim\vim73\colors
  • WkhtmltoimageC:\Program Files\wkhtml
  • ImageMagickC:\Program Files\ImageMagick
  • Gawk и SedC:\Program Files\GnuWin32

Примечание. ImageMagick имеет программу под названием convert.exe , которая не может заменить команду convert Windows. Из-за этого полный путь к convert.exe должен быть жестко закодирован в пакетном файле (в отличие от добавления ImageMagick в PATH ).

Переменные среды

Установите для переменной среды PATH значение:

 "C:\Program Files\Vim\vim73";"C:\Program Files\wkhtml";"C:\Program Files\GnuWin32\bin" 

Пакетный файл

Запустите его, используя:

 src2png.bat src2png.bat 

Создайте пакетный файл src2png.bat , скопировав следующее содержимое:

 @ECHO OFF SET NUMBERS=-c "set number" IF "%2" == "" SET NUMBERS= ECHO Converting %1 to %1.html... gvim -e %1 -c "set nobackup" %NUMBERS% -c ":colorscheme moria" ^ -c :TOhtml -c wq -c :q REM Remove all background-color occurrences (without being self-referential) sed -i "s/background-color: #......; \(.*\)}$/\1 }/g" %1.html ECHO Converting %1.html to %1.png... wkhtmltoimage --format png --transparent --minimum-font-size 80 ^ --quality 100 --width 3600 ^ %1.html %1.png move %1.png %1.orig.png REM If the text file has lines that exceed 80 characters, don't crop the REM resulting image. (The book automatically shrinks large images to fit.) REM The 3950 is the 80 point font at 80 characters with padding for line REM numbers. SET LENGTH=0 FOR /F %%l IN ('gawk ^ "BEGIN {x=0} {if( length($0)>x ) x=length()} END {print x;}" %1') ^ DO ( SET LENGTH=%%l ) SET EXTENT=-extent 3950x IF %LENGTH% GTR 80 SET EXTENT= REM Trim the image height, then extend the width for 80 columns, if needed. REM The result is that all images will be resized the same amount, thus REM making the font size the same maximum for all source listings. Source REM files beyond the 80 character limit will be scaled as necessary. ECHO Trimming %1.png... "C:\programs\ImageMagick\convert.exe" -format png %1.orig.png ^ -density 150x150 ^ -background none -antialias -trim +repage ^ %EXTENT% ^ -bordercolor none -border 25 ^ %1.png ECHO Removing old files... IF EXIST %1.orig.png DEL /q %1.orig.png IF EXIST %1.html DEL /q %1.html IF EXIST sed*. DEL /q sed*. 

Усовершенствования и оптимизация приветствуются.

Примечание. Последняя версия wkhtmltoimage правильно обрабатывает переопределение цвета фона. Таким образом, в теории перестает быть необходимой линия для удаления CSS для цветов фона.

Чтение man- wkhtmltoimage :

  -d, --dpi <dpi> Change the dpi explicitly 

Если это не поможет: взломать простое решение с Qt и (включенным) Webkit довольно просто.

Вы также можете использовать командную строку формы Open Office for Html-> PDF:

http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html

  • Пакетная обработка изображений документов, которые выглядят как факс
  • Как преобразовать фотографию в черно-белое изображение с помощью ImageMagick?
  • Цикл командной строки для запуска команды для всех файлов в каталоге (плюс вспомогательные каталоги, если возможно
  • Конвертировать PDF в JPG-изображения с помощью ImageMagick - как с именами файлов с 0-пэдом?
  • Невозможно преобразовать PDF в изображение из-за ошибки «без изображений»
  • Interesting Posts

    «Доступ запрещен» администратору при использовании Sysinternals Contig для дефрагментации файла метаданных $ LogFile

    Каковы различные способы удаленного подключения к вашему компьютеру?

    Windows 7 – Переместить местоположение Eventlog

    Теоретически можно одновременно запускать две операционные системы?

    Как отключить автоматическую настройку громкости микрофона?

    Как полностью отключить процесс от терминала?

    Скрипт для изменения содержимого файла в указанных файлах

    Ярлык клавиатуры для отображения Windows Stacked? (Победа 7)

    Почему мой удаленный процесс все еще работает после убийства сеанса ssh?

    Как заставить Excel (и другие продукты Microsoft Office) прекратить открытие файлов в одном приложении?

    Где Firefox хранит открытые окна / вкладки / URL для восстановления сеанса после сбоя?

    Как настроить FTP-сервер в Windows XP без использования IIS?

    Могу ли я использовать ноутбук в качестве второго монитора

    Windows 10, «Системный» процесс с огромным количеством ОЗУ

    Как получить данные из Maxtor Shared Storage II, которые не загружаются?

    Давайте будем гением компьютера.