Como imprimir a saída da árvore para pdf sem perder a cor?

18

Eu uso o seguinte comando para imprimir uma estrutura de diretórios em um arquivo:

tree -h somepath/ > tree_of_somepath.txt

treefornece uma boa saída colorida no terminal, mas, como esperado, isso não pode ser redirecionado para um arquivo de texto. Gostaria de imprimir a saída de treeum arquivo pdf e preservar a cor.

Alguma ideia?

Bruni
fonte
Se você não precisar da cor (como o OP precisa), ainda poderá obter a saída em árvore utilizável usando tree -n -d --charset unicode > file. Definitivamente não é tão bonita, mas eu usá-lo com uma impressora laser monocromática, quando estou pastoreando meus arquivos de dados, etc ..
Joe

Respostas:

20
  1. Instale as seguintes dependências:

    sudo apt-get install aha wkhtmltopdf
    
  2. Salve sua treesaída do comando em html com aha:

    tree -C -h | aha > foo.html
    

    Na treepágina de manual, -Cforça a coloração:

        -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. Por fim, exporte o html para pdf com wkhtmltopdf:

    wkhtmltopdf foo.html foo.pdf
    

Exemplo:

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

insira a descrição da imagem aqui

Sylvain Pineau
fonte
Perfeito, embora eu omitido o --black de poupar algum toner, quando aterra em papel;)
Bruni
@Bruni Boa ideia :) Deixe-me editar a resposta
Sylvain Pineau
$ wkhtmltopdf foo.html foo.pdf wkhtmltopdf: não é possível conectar ao servidor X
sree