Wie drucke ich die Ausgabe eines Baums in ein PDF-Format, ohne die Farbe zu verlieren?

18

Ich benutze den folgenden Befehl, um eine Verzeichnisstruktur in eine Datei zu drucken:

tree -h somepath/ > tree_of_somepath.txt

treegibt eine schöne farbige Ausgabe auf dem Terminal aus, aber wie erwartet kann dies nicht in eine Textdatei umgeleitet werden. Ich möchte die Ausgabe treein eine PDF-Datei drucken und die Farbe beibehalten.

Irgendwelche Ideen?

Bruni
quelle
Wenn Sie die Farbe nicht benötigen (wie das OP), können Sie mit immer noch eine brauchbare Baumausgabe erhalten tree -n -d --charset unicode > file. Es ist definitiv nicht so hübsch, aber ich benutze es mit einem Schwarzweiß-Laserdrucker, wenn ich meine Datendateien usw. hüte.
Joe

Antworten:

20
  1. Installieren Sie die folgenden Abhängigkeiten:

    sudo apt-get install aha wkhtmltopdf
    
  2. Speichern Sie Ihre treeBefehlsausgabe in HTML mit aha:

    tree -C -h | aha > foo.html
    

    Erzwingt auf der treeManpage die -CKolorierung:

        -C     Turn colorization on always, using built-in color defaults
               if the LS_COLORS environment variable is not set. Useful to
               colorize output to a pipe.
    
  3. Schließlich exportieren Sie den HTML-Code in das PDF-Format mit wkhtmltopdf:

    wkhtmltopdf foo.html foo.pdf
    

Beispiel:

cd /tmp
tree -C -h | aha > foo.html
wkhtmltopdf foo.html foo.pdf
xdg-open foo.pdf

Bildbeschreibung hier eingeben

Sylvain Pineau
quelle
Perfekt, obwohl ich das --black weggelassen habe, um Toner zu sparen, wenn er auf dem Papier landet;)
Bruni
@ Bruni Gute Idee :) Lassen Sie mich die Antwort bearbeiten
Sylvain Pineau
$ wkhtmltopdf foo.html foo.pdf wkhtmltopdf: Verbindung zum X-Server kann nicht hergestellt werden
sree