Пакетное преобразование различные выделенные синтаксисом исходные файлы (C, SQL, Java, PHP, пакет, удар) в изображения с высоким разрешением (600 точек на дюйм), подходящих для электронной книги и распечатанной книги.
Много попыток до сих пор:
font
теги.html2ps
.Решение, которое почти работает:
Какие-либо другие способы преобразовать выделенный синтаксисом исходный код в изображение (на 600 точек на дюйм) с высоким разрешением?
Спасибо!
Следующие пакеты программного обеспечения доступны и для Windows и для систем Linux, и требуются для полного, рабочего решения:
Вот то, как решение работает:
FONT
теги).Сценарий генерирует изображения, которые являются всеми одинаковыми ширина для исходных файлов, содержащих строки, которые являются всеми под 80 символами в длине. Исходные файлы со строками более чем 80 символов в длину приводят к изображениям, столь же широким по мере необходимости для сохранения всей строки.
Установите компоненты в следующие местоположения:
C:\Program Files\Vim
C:\Program Files\Vim\vim73\colors
C:\Program Files\wkhtml
C:\Program Files\ImageMagick
C:\Program Files\GnuWin32
Примечание: ImageMagick назвали программу convert.exe
, который не может заменить Windows convert
команда. Из-за этого, полного пути к 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 для цветов фона больше не необходима в теории.
чтение страницы справочника wkhtmltoimage
:
-d, --dpi <dpi> Change the dpi explicitly
если это не помогает: взламывание вместе простое решение с QT и (включенный) WebKit довольно просто.
Можно также использовать, Открывать Office for Html-> командная строка формы преобразования PDF:
http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html