“Imprimir” arquivo de texto para imagens com layout a partir da linha de comando

0

Eu tenho longos arquivos de diário que gostaria de ver como imagens. Eu não quero ter que screencap meu editor de texto. Eu estou usando o LibreOffice para exportá-los para jpg, mas eu tenho que fazer tudo UM. DEGRAU. AT. UM TEMPO. Eu estou procurando por algum tipo de programa de layout de linha de comando que ostensivamente ficaria assim:

$ txt2jpg -i myfile.txt -o mynewfile --format=jpg --height=872 \
--width=600 --margins=40px --font=monospace

Isso levaria myfile.txt como entrada e criaria uma série de arquivos denominados mynewfile01.jpg, mynewfile02.jpg, ..., mynewfileNN.jpg como saída. As imagens terão 872 pixels de altura, 600 de largura, uma margem de 40 pixels em toda a volta e usarão uma fonte chamada monospace. Obviamente, o programa real diferiria nos detalhes, mas deveria ser capaz de pegar um arquivo de texto e produzir uma série de jpgs (ou pngs ou bmps ou qualquer outro) como saída com a capacidade de formatar a imagem de saída e assim por diante. / p>     

por Oswald Roswell 10.07.2016 / 17:01

1 resposta

3

Uma ferramenta tradicional para imprimir arquivos de texto simples é enscript . Isso produz saída PostScript. Você pode converter isso em uma imagem de várias maneiras. Um que dá bons resultados é pdftopng , que precisa do PostScript empacotado em um pdf como entrada (por exemplo, com ps2pdf ) e produz arquivos de imagem png. Então, usando convert do ImageMagick para converter em jpg você acaba com:

enscript < myfile.txt --media A4 -f CourierBold10 -o - |
ps2pdf - >out.pdf
pdftopng -mono out.pdf out # creates files out-000001.png etc
for f in out-*.png
do convert -resize 600x872 "$f" "${f/png/jpg}"
   rm "$f"
done
rm out.pdf

Sua saída está nos arquivos out*jpg .

    
por 10.07.2016 / 18:14