Contexte
Conversion par lots de divers fichiers source à coloration syntaxique (C, SQL, Java, PHP, batch, bash) en images haute résolution (600 dpi), adaptés à un livre électronique et à un livre imprimé.
Solutions échouées
Un certain nombre de tentatives jusqu'à présent:
- OpenOffice ou LibreOffice - Vous devez réimporter le code source dans le document chaque fois que le fichier source change. (Autrement dit, la solution ne peut pas être facilement automatisée pour des centaines ou des milliers de fichiers source.)
- enscript. Ne peut pas changer facilement les couleurs, rend le rendu imparfaitement, pas complet.
- LyX / LaTeX. Rend imparfaitement la sortie.
- gvim en HTML - HTMLDOC en PostScript - GhostScript en PNG. HTMLDOC ignore les
font
balises. - gvim en HTML - html2ps - GhostScript en PNG. Les couleurs RVB ne sont pas reconnues par
html2ps
. - Firefox vers PostScript - GhostScript vers PNG. Désagréablement détourné.
- gvim en HTML - OmniFormat pour tout. Version gratuite inadaptée au traitement par lots; beaucoup de pop-ups publicitaires.
- pygments. Impossible de modifier facilement la résolution de l'image; n'a pas la gamme de couleurs de gvim.
Solution la plus proche
La solution qui fonctionne presque est:
- gvim en HTML - wkhtmltopdf en PDF. Nécessite un post-traitement avec ImageMagick ( wkhtmltoimage ne peut pas définir la résolution de l'image, uniquement la largeur de la page).
Exigences
- Windows et Linux, mais l'un ou l'autre est acceptable.
- Gratuit ou OSS
- Ligne de commande uniquement (adaptée au traitement par lots)
- Changez facilement la palette de couleurs
- Prise en charge: PHP, batch, bash, Java, JavaScript, R, C et SQL
Question
Y a-t-il d'autres façons de convertir le code source mis en évidence par la syntaxe en une image haute résolution (600 dpi)?
Merci!
gvim
syntax-highlighting
imagemagick
ghostscript
Dave Jarvis
la source
la source
wkhtmltoimage
et définir la largeur de la page ne suffit-il pas? la hauteur ne peut pas être spécifiée car elle est déterminée par le contenu du contenu html. la largeur à mon humble est tout ce dont vous avez réellement besoin, vous pouvez calculer la largeur nécessaire en fonction du nombre de pixels par pouce que vous souhaitez.Réponses:
Logiciels requis
Les progiciels suivants sont disponibles pour les systèmes Windows et Linux et sont requis pour une solution complète et fonctionnelle:
Étapes générales
Voici comment fonctionne la solution:
FONT
balises intégrées ).Le script génère des images de même largeur pour les fichiers source contenant des lignes de moins de 80 caractères. Les fichiers source avec des lignes de plus de 80 caractères donnent des images aussi larges que nécessaire pour conserver la ligne entière.
Installation
Installez les composants dans les emplacements suivants:
C:\Program Files\Vim
C:\Program Files\Vim\vim73\colors
C:\Program Files\wkhtml
C:\Program Files\ImageMagick
C:\Program Files\GnuWin32
Remarque: ImageMagick a un programme appelé
convert.exe
, qui ne peut pas remplacer laconvert
commande Windows . Pour cette raison, le chemin complet deconvert.exe
doit être codé en dur dans le fichier de commandes (par opposition à l'ajout d'ImageMagick àPATH
).Variables d'environnement
Définissez la variable d'environnement PATH sur:
Fichier batch
Exécutez-le en utilisant:
Créez un fichier de commandes appelé
src2png.bat
en copiant le contenu suivant:Améliorations et optimisations bienvenues.
Remarque: La dernière version de wkhtmltoimage gère correctement la substitution de la couleur d'arrière-plan. Ainsi, la ligne pour supprimer le CSS pour les couleurs d'arrière-plan n'est plus nécessaire, en théorie.
la source
lire la page de manuel de
wkhtmltoimage
:si cela ne vous aide pas: pirater ensemble une solution simple avec Qt et (le inclus) Webkit est assez simple.
la source
dpi
option n'est pas disponible avec la version Windows.Vous pouvez également utiliser Open Office pour Html-> ligne de commande du formulaire de conversion PDF:
http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html
la source
wkhtmltoimage
. De plus, votre solution est théorique. Si vous créez un travail fichier batch qui reproduit exactement les résultats desrc2png.bat
donnée dans la réponse correcte (avec des images d'arrière - plan transparent) et convertit HTML en moins de temps que l' utilisation ,wkhtmltoimage
tout en étant une solution entièrement automatique, je vous encourage à poster vos résultats comme une alternative . De plus, quel serait l'avantage de remplacerwkhtmltoimage
par OpenOffice?