Преобразование 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 точек на дюйм)?

Спасибо!

  • Как вы переустанавливаете пакет с помощью Homebrew (Mac)?
  • Цикл командной строки для запуска команды для всех файлов в каталоге (плюс вспомогательные каталоги, если возможно
  • Невозможно преобразовать PDF в изображение из-за ошибки «без изображений»
  • Использование Ghostscript для преобразования многостраничного PDF в один JPG?
  • Добавление изображений по вертикали в ImageMagick
  • Не удается запустить «показ» после установки ImageMagick на Ubuntu
  • Добавлять изображения с помощью сетки
  • Может ли ImageMagick создавать миниатюры из видео?
  • 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

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