¿Se pueden convertir las páginas man a formato html y/o pdf?

El comando man bashproduce una gran cantidad de salida. Lo que deseo sería buscar los resultados o imprimir los resultados en papel. Entonces, ¿hay alguna manera de convertir una página de manual en un documento html y/o pdf?

Preferiría que la respuesta funcione no solo para man bash, sino para cualquier página de manual.

Sé que la salida de man bashse ha publicado en Internet, pero por lo general estas publicaciones no están actualizadas.

Se analiza una solución específica de Mac para PDF en apple.stackexchange.com/questions/303737/…
@Ture: ¿Cómo ingresa el ps2pdfcomando? ¿Está el comando escondido en alguna parte?
Si está satisfecho con el formato de carta de EE. UU. y un flujo de trabajo interactivo, no necesita ps2pdf; simplemente ejecute man -t ls | open -f -a Previewy luego guarde como PDF desde Vista previa. De lo contrario, ps2pdf viene como parte del paquete Ghostscript que, creo, se instala más fácilmente a través de Homebrew.
Para una forma conveniente de navegar por archivos PDF de páginas de manual en su navegador, puede usar Bwana .

Respuestas (3)

Sí, existen numerosas herramientas para convertir páginas de manual a HTML y PDF.

Enfoque UNIX

La conversión de una página de manual a HTML, PDF y texto proporciona instrucciones detalladas para macOS:

cat /usr/share/man/man1/osascript.1 | groff -mandoc -Thtml >man_osascript.html

Si el archivo termina en .gz, entonces sustitúyalo por lo siguiente.

gunzip --to-stdout /usr/share/man/man8/cupsfilter.8.gz | groff -mandoc -Thtml >man_cupsfilter.html

Para convertir de HTML a PDF:

cupsfilter man_osascript.html > man_osascript.pdf

Para otras cadenas de herramientas, consulte estas preguntas relacionadas:

pandoc

Otro enfoque es usar la popular herramienta pandoc . Esta herramienta puede convertir páginas de manual a una amplia gama de formatos.

Enlacex-man-page

Terminal.app de macOS ofrece un x-man-pageesquema de URL para imprimir bonitas páginas de manual. Intente abrir el siguiente enlace para ver la lspágina del manual:

x-man-page://ls
Solo para verificar: en MacOS, man¿no es compatible con la -Topción directamente?
Si usa Debian/Ubuntu moderno e instala el paquete groff, simplemente puede hacer man -Tpdf osascript > osascript.pdf.
Buen aporte. Pero el error solo me viene a mi?cupsfilter: No filter to convert from text/html to application/pdf.
@Lano Sospecho que el error que está viendo está relacionado con la versión de macOS que tiene. Por favor, puede hacer esto como una nueva pregunta para que otros puedan ayudarlo mejor.
man -t yourcommand | open -fa "Preview"

¿ Dónde yourcommandestá el que desea la página de manual de.


$ man -t tmutil | open -fa "Preview"

Aquí hay una función que agregué a mi .bash_profilearchivo para crear un PDF de cada comando BSD que buscaría en la página del manual :

manp () 
{ 
    docDir="$HOME/Documents/BSD Commands"
    [[ ! -d $docDir ]] && mkdir -p "$docDir"
    if [[ ! -f $docDir/$1.pdf ]]; then
        man -t "$1" | pstopdf -i -o "$docDir/$1.pdf"
        open "$docDir/$1.pdf"
    else
        open "$docDir/$1.pdf"
    fi
}

Entonces, en la Terminal , se crea, por ejemplo, escribir manp bashen lugar de man bashun PDF , si aún no se ha creado, y luego lo abre la aplicación registrada para manejar documentos PDF . El valor predeterminado es Preview , sin embargo, en mi sistema está configurado para usar Skim , ya que su funcionalidad de búsqueda es mejor que Preview y, de hecho, encontrará la cadena de búsqueda cuando Preview simplemente no lo hará.

Tenga en cuenta que la primera vez que se usa la función , enumerará algunas fuentes en la salida en Terminal , sin embargo, esta es una enumeración única de las fuentes.


Como nota al margen, escribir solo el nombre del comando en Terminal y luego hacer clic con el botón derecho en él y seleccionar Abrir página de manual , lo muestra en una ventana de Terminal totalmente desplazable y con capacidad de búsqueda , que es mucho mejor que escribir, por ejemplo man bash.