convertir un buffer de texto a un archivo pdf?

15

¿Cómo podemos convertir el búfer de texto actual en un archivo pdf, preferiblemente convirtiendo esos encabezados comenzados con * en marcadores del archivo pdf? Por ejemplo, convertir el tutorial integrado de Emacs (mostrado por Ch t) en un archivo pdf marcado. Gracias.

Tim
fuente
2
específicamenteorg-latex-export-to-pdf
casey
66
Solo por el bien de la diversidad: puede hacer C-u M-x ps-print-buffery luego convertir el archivo PostScript resultante a PDF (si sus archivos no son archivos Org y solo desea tener un tipo de PDF de texto plano). Del mismo modo, ps-print-buffer-with-faceses lo que parece.
wvxvw
@PythonNut:C-c C-e is undefined
Tim
@casey: el comando no se encuentra
Tim

Respuestas:

13

Puede poner lo siguiente en su init.ely vincular la función a un enlace de su elección.

La función imprime el archivo en el búfer actual como PDF en la misma carpeta de forma predeterminada.

Aquí la función requiere el binario ps2pdfpara convertir .psa .pdf. Pero puede reemplazar eso con cualquier generador de pdf disponible en su sistema.

(require 'ps-print)
(when (executable-find "ps2pdf")
  (defun modi/pdf-print-buffer-with-faces (&optional filename)
    "Print file in the current buffer as pdf, including font, color, and
underline information.  This command works only if you are using a window system,
so it has a way to determine color values.

C-u COMMAND prompts user where to save the Postscript file (which is then
converted to PDF at the same location."
    (interactive (list (if current-prefix-arg
                           (ps-print-preprint 4)
                         (concat (file-name-sans-extension (buffer-file-name))
                                 ".ps"))))
    (ps-print-with-faces (point-min) (point-max) filename)
    (shell-command (concat "ps2pdf " filename))
    (delete-file filename)
    (message "Deleted %s" filename)
    (message "Wrote %s" (concat (file-name-sans-extension filename) ".pdf"))))
Kaushal Modi
fuente
2

Esto no aborda el problema específico de los marcadores en el PDF, pero sí aborda el problema general de convertir buffers a PDF.

Si desea obtener una "captura de pantalla" en PDF del búfer como realmente lo ve , sin mostrar texto oculto, entonces una buena alternativa es htmlizar el búfer y convertir el resultado de HTML a PDF. Puede usar esto, por ejemplo, para crear una versión PDF de su Agenda Org. (Tenga en cuenta que la ps-printrespuesta basada en Kaushal Modi mostraría el contenido oculto del búfer).

receta

M-x htmlize-buffer RET` C-x C-w buf.html RET` luego ejecutar en la línea de comando:

pandoc --from=html --to=latex --variable geometry="landscape" -o buf.pdf buf.html

ejemplo (captura de pantalla)

ingrese la descripción de la imagen aquí

Ver también

Aquí hay una discusión interesante sobre "capturas de pantalla de vectores": ¿Puedo tomar capturas de pantalla de vectores (SVG) de Emacs? (lo que he descrito podría verse como un ejemplo muy limitado de una "captura de pantalla vectorial").

Joe Corneli
fuente
2

Puede hacerlo C-u M-x ps-print-bufferpara imprimir el búfer actual en un archivo PS y luego canalizarlo ps2pdf.

Arne
fuente