Hintergrund
Batch-Konvertierung verschiedener syntaktisch hervorgehobener Quelldateien (C, SQL, Java, PHP, Batch, Bash) in hochauflösende Bilder (600 dpi), die für ein eBook und ein gedrucktes Buch geeignet sind.
Fehlgeschlagene Lösungen
Bisher einige Versuche:
- OpenOffice oder LibreOffice - Bei jeder Änderung der Quelldatei muss der Quellcode erneut in das Dokument importiert werden. (Das heißt, die Lösung kann nicht einfach für Hunderte oder Tausende von Quelldateien automatisiert werden.)
- Enskript. Farben können nicht einfach geändert werden, die Ausgabe wird unvollständig wiedergegeben.
- LyX / LaTeX. Rendert die Ausgabe unvollständig.
- gvim zu HTML - HTMLDOC zu PostScript - GhostScript zu PNG. HTMLDOC ignoriert
font
Tags. - gvim zu HTML - html2ps - GhostScript zu PNG. RGB-Farben werden von nicht erkannt
html2ps
. - Firefox zu PostScript - GhostScript zu PNG. Widerlich umständlich.
- gvim zu HTML - OmniFormat zu irgendetwas. Kostenlose Version für Stapelverarbeitung ungeeignet; viele Werbe-Popups.
- pygments. Die Bildauflösung kann nicht einfach geändert werden. hat keine Farbpalette von gvim.
Nächste Lösung
Die Lösung, die fast funktioniert, ist:
- gvim zu HTML - wkhtmltopdf zu PDF. Benötigt eine Nachbearbeitung mit ImageMagick ( wkhtmltoimage kann nicht die Bildauflösung einstellen, nur die Seitenbreite).
Bedarf
- Windows und Linux, aber beides ist akzeptabel.
- Kostenlos oder OSS
- Nur Befehlszeile (geeignet für Stapelverarbeitung)
- Einfaches Ändern des Farbschemas
- Unterstützung: PHP, Batch, Bash, Java, JavaScript, R, C und SQL
Frage
Gibt es noch andere Möglichkeiten, um syntaktisch hervorgehobenen Quellcode in ein hochauflösendes Bild (600 dpi) umzuwandeln?
Vielen Dank!
gvim
syntax-highlighting
imagemagick
ghostscript
Dave Jarvis
quelle
quelle
wkhtmltoimage
Einstellen der Seitenbreite nicht ausreichend? Die Höhe kann nicht angegeben werden, da sie durch den Inhalt des HTML-Materials bestimmt wird. Imho-Breite ist alles, was Sie tatsächlich benötigen. Sie können die erforderliche Breite basierend auf der Anzahl der gewünschten Pixel pro Zoll berechnen.Antworten:
Software Anforderungen
Die folgenden Softwarepakete sind sowohl für Windows- als auch für Linux-Systeme verfügbar und für eine vollständige, funktionierende Lösung erforderlich:
Allgemeine Schritte
So funktioniert die Lösung:
FONT
Tags).Das Skript generiert Bilder mit der gleichen Breite für Quelldateien, die Zeilen mit einer Länge von weniger als 80 Zeichen enthalten. Quelldateien mit Zeilen von mehr als 80 Zeichen führen zu Bildern, die so breit sind, dass die gesamte Zeile erhalten bleibt.
Installation
Installieren Sie die Komponenten an folgenden Speicherorten:
C:\Program Files\Vim
C:\Program Files\Vim\vim73\colors
C:\Program Files\wkhtml
C:\Program Files\ImageMagick
C:\Program Files\GnuWin32
Hinweis: ImageMagick verfügt über ein Programm
convert.exe
, das den Windows-convert
Befehl nicht ersetzen kann . Aus diesem Grund muss der vollständige Pfad zuconvert.exe
in der Batch-Datei fest codiert sein (im Gegensatz zum Hinzufügen von ImageMagick zuPATH
).Umgebungsvariablen
Setzen Sie die Umgebungsvariable PATH auf:
Batch-Datei
Führen Sie es aus mit:
Erstellen Sie eine Stapeldatei,
src2png.bat
indem Sie den folgenden Inhalt kopieren:Verbesserungen und Optimierungen sind willkommen.
Hinweis: Die neueste Version von wkhtmltoimage behandelt das Überschreiben der Hintergrundfarbe ordnungsgemäß. Somit ist die Zeile zum Entfernen des CSS für Hintergrundfarben theoretisch nicht mehr erforderlich.
quelle
Lesen Sie die Manpage von
wkhtmltoimage
:wenn das nicht hilft: eine einfache Lösung mit Qt und (dem mitgelieferten) Webkit zusammen zu hacken, ist ziemlich unkompliziert.
quelle
dpi
Option ist in der Windows-Version nicht verfügbar.Sie können auch die Befehlszeile von Open Office für HTML-> PDF-Konvertierungsformular verwenden:
http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html
quelle
wkhtmltoimage
. Auch Ihre Lösung ist theoretisch. Wenn Sie eine funktionierende Batch-Datei erstellen , diesrc2png.bat
die in der richtigen Antwort angegebenen Ergebnisse genau wiedergibt (mit transparenten Hintergrundbildern) und HTML-Code in kürzerer Zeit konvertiert als dieswkhtmltoimage
bei einer vollautomatischen Lösung der Fall ist, empfehlen wir Ihnen, die Ergebnisse als Alternative zu veröffentlichen . Was wäre der Vorteil eines Austauschswkhtmltoimage
durch OpenOffice?