Fondo
Convierta por lotes varios archivos de origen resaltados de sintaxis (C, SQL, Java, PHP, lote, bash) en imágenes de alta resolución (600 ppp), adecuadas para un libro electrónico y un libro impreso.
Soluciones fallidas
Varios intentos hasta ahora:
- OpenOffice o LibreOffice : tiene que volver a importar el código fuente en el documento cada vez que cambia el archivo fuente. (Es decir, la solución no puede automatizarse fácilmente para cientos o miles de archivos fuente).
- enscript. No puede cambiar fácilmente los colores, representa la salida de forma imperfecta, no es completa.
- LyX / LaTeX. Renderiza imperfectamente la salida.
- gvim a HTML - HTMLDOC a PostScript - GhostScript a PNG. HTMLDOC ignora las
fontetiquetas. - gvim a HTML - html2ps - GhostScript a PNG. Los colores RGB no son reconocidos por
html2ps. - Firefox a PostScript - GhostScript a PNG. Desagradablemente tortuoso.
- gvim a HTML - OmniFormat a cualquier cosa. Versión gratuita no apta para procesamiento por lotes; muchas ventanas emergentes de publicidad.
- pigmentos No se puede cambiar fácilmente la resolución de la imagen; no tiene la gama de esquemas de color de gvim.
Solución más cercana
La solución que casi funciona es:
- gvim a HTML - wkhtmltopdf a PDF. Requerirá un procesamiento posterior con ImageMagick ( wkhtmltoimage no puede establecer la resolución de la imagen, solo el ancho de la página).
Requisitos
- Windows y Linux, pero cualquiera de ellos es aceptable.
- Gratis u OSS
- Solo línea de comando (adecuado para procesamiento por lotes)
- Cambie fácilmente el esquema de color
- Soporte: PHP, lote, bash, Java, JavaScript, R, C y SQL
Pregunta
¿Alguna otra forma de convertir el código fuente resaltado de sintaxis en una imagen de alta resolución (600 ppp)?
¡Gracias!
gvim
syntax-highlighting
imagemagick
ghostscript
Dave Jarvis
fuente
fuente

wkhtmltoimagey establecer el ancho de la página no es suficiente? la altura no se puede especificar ya que está determinada por el contenido del contenido html. En realidad, todo lo que realmente necesita es ancho, puede calcular el ancho necesario en función de la cantidad de píxeles por pulgada que desee.Respuestas:
Requisitos de Software
Los siguientes paquetes de software están disponibles para sistemas Windows y Linux, y son necesarios para una solución completa y funcional:
Pasos generales
Así es como funciona la solución:
FONTetiquetas incrustadas ).El script genera imágenes que tienen el mismo ancho para los archivos de origen que contienen líneas que tienen menos de 80 caracteres de longitud. Los archivos de origen con líneas de más de 80 caracteres de largo dan como resultado imágenes tan anchas como sea necesario para retener toda la línea.
Instalación
Instale los componentes en las siguientes ubicaciones:
C:\Program Files\VimC:\Program Files\Vim\vim73\colorsC:\Program Files\wkhtmlC:\Program Files\ImageMagickC:\Program Files\GnuWin32Nota: ImageMagick tiene un programa llamado
convert.exe, que no puede reemplazar elconvertcomando de Windows . Debido a esto, la ruta completaconvert.exedebe estar codificada en el archivo por lotes (en lugar de agregar ImageMagick aPATH).Variables de entorno
Establezca la variable de entorno PATH en:
Archivo por lotes
Ejecútelo usando:
Cree un archivo
src2png.batpor lotes llamado copiando los siguientes contenidos:Mejoras y optimizaciones bienvenidas.
Nota: La última versión de wkhtmltoimage maneja correctamente la anulación del color de fondo. Por lo tanto, la línea para eliminar el CSS para los colores de fondo ya no es necesaria, en teoría.
fuente
leyendo la página de manual de
wkhtmltoimage:si eso no ayuda: piratear una solución simple con Qt y (el incluido) Webkit es bastante sencillo.
fuente
dpiopción no está disponible con la versión de Windows.También puede usar Open Office para la línea de comando del formulario de conversión Html-> PDF:
http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html
fuente
wkhtmltoimage. Además, su solución es teórica. Si crea un archivo por lotes de trabajo que reproduce exactamente los resultados desrc2png.batla respuesta correcta (con imágenes de fondo transparentes) y convierte HTML en menos tiempo que el usowkhtmltoimagemientras es una solución totalmente automática, le animo a publicar sus resultados como una alternativa . Además, ¿cuál sería la ventaja de reemplazarwkhtmltoimagecon OpenOffice?