Convertendo arquivos/páginas de manuais

O GNU/Linux é um sistema bem documentado e provavelmente tudo o que se imaginar fazer ou aprender já esta disponível para leitura e aprendizado. No GNU/Linux existem diversas maneiras de se obter ajuda e encontrar a resposta para algum problema.

Para procurarmos alguma página de manual utilizamos o comando:

[root@centos7 ~]# apropos mysqld
mysqld (8)           - the MariaDB server
mysqld_multi (1)     - manage multiple MariaDB servers
mysqld_safe (1)      - MariaDB server startup script
mysqldump (1)        - a database backup program
mysqldumpslow (1)    - Summarize slow query log files

Este comando consulta uma base de dados consistindo da descrição do comando, é muito útil em situações em que se deseja executar determinada tarefa e não se conhece o nome do comando. As páginas de manual acompanham quase todos os programas GNU/Linux. Elas trazem uma descrição básica do comando/programa e detalhes sobre o funcionamento de uma opção. Uma página de manual é visualizada na forma de texto único com rolagem vertical. Também documenta parâmetros usados em alguns arquivos de configuração.

Todos os documentos dos softwares instalados no sistema ficam em:

[root@centos7 ~]# cd /usr/share/doc

E as páginas de manuais em:

[root@centos7 ~]# cd /usr/share/man/

Podemos verificar com o comando manpath:

[root@centos7 ~]# manpath 
/usr/local/share/man:/usr/share/man/overrides:/usr/share/man

Para encontrar uma página de manual específica como por exemplo do comando netstat:

[root@centos7 ~]# whereis netstat
netstat: /usr/bin/netstat /usr/share/man/man8/netstat.8.gz

Vamos fazer uma cópia desse arquivo:

[root@centos7 ~]# cd /usr/share/man/man8

Extraí-lo:

[root@centos7 tadeu]# gzip -d netstat.8.gz

E convertemos-o para PostScript:

[root@centos7 tadeu]# groff -Tps netstat.8 > netstat.ps 

E para convertemos PostScript para .pdf instalamos o seguinte pacote:

[root@centos7 tadeu]# yum install ghostscript.x86_64 -y 

Com o pacote instalado utilizamos o seguinte comando para transformar a página de manual em .pdf:

[root@centos7 tadeu]# ps2pdf netstat.ps

Também podemos extrair uma página de manual diretamente para texto:

[root@centos7 ~]# man netstat | col -b > netstat.txt

E para convertemos para .pdf podemos utilizar uma das seguintes maneiras:

[root@centos7 ~]# yum install enscript.x86_64 -y

[root@centos7 ~]# enscript netstat.txt -o netstat.pdf
[root@centos7 ~]# yum install paps-0.6.8-28.el7.1.x86_64

[root@centos7 ~]# paps netstat.txt | ps2pdf - netstat.pdf

Para utilizarmos do utilitário ps2pdf precisamos instalar o seguinte pacote:

[root@centos7 tadeu]# yum install -y poppler-utils.x86_64

Também podemos converter um arquivo formato .txt para .pdf utilizando o vi:

Dentro do arquivo:

:hardcopy > netstat.pdf

E na linha de comando:

[root@centos7 ~]# vim netstat.txt -c "hardcopy > netstat.pdf | q"

E para convertemos de .pdf para .txt:

[root@centos7 ~]# pdftotext netstat.pdf

Conclusão:
Com o pdftotext para converter de .pdf para texto a saída não fica formatada, e a melhor maneira para converter .txt para .pdf com a melhor formatação é primeiro converter o arquivo para .ps (PostScript) para depois utilizar o ps2pdf.

Referência:
http://www.guiafoca.org/cgs/guia/iniciante/ch-ajuda.html