mengonversi buffer teks ke file pdf?

15

Bagaimana kita dapat mengubah buffer teks saat ini ke file pdf, lebih disukai mengubah judul yang dimulai dengan * menjadi bookmark file pdf. Misalnya, mengubah tutorial terintegrasi Emacs (diperlihatkan oleh Ch t) menjadi file pdf yang di-bookmark. Terima kasih.

Tim
sumber
2
khususorg-latex-export-to-pdf
casey
6
Hanya demi keberagaman: Anda dapat melakukan C-u M-x ps-print-bufferdan kemudian mengonversi file PostScript yang dihasilkan ke PDF (jika file Anda bukan file Organisasi dan Anda hanya ingin memiliki jenis teks biasa PDF). Demikian pula, seperti ps-print-buffer-with-facesapa bunyinya.
wvxvw
@PythonNut:C-c C-e is undefined
Tim
@casey: perintah tidak ditemukan
Tim

Jawaban:

13

Anda dapat meletakkan di bawah ini di dalam Anda init.eldan mengikat fungsi untuk mengikat pilihan Anda.

Fungsi ini mencetak file dalam buffer saat ini sebagai PDF di folder yang sama secara default.

Berikut fungsi membutuhkan biner ps2pdfuntuk mengkonversi .pske .pdf. Tetapi Anda dapat menggantinya dengan generator pdf yang tersedia di sistem Anda.

(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
sumber
2

Ini tidak membahas masalah khusus bookmark di PDF, tetapi memang mengatasi masalah umum konversi buffer ke PDF.

Jika Anda ingin mendapatkan "tangkapan layar" PDF dari buffer seperti yang Anda lihat sebenarnya - tidak menampilkan teks tersembunyi - maka alternatif yang baik adalah dengan meng - htmlkan buffer, dan mengonversi hasilnya dari HTML ke PDF. Anda dapat menggunakan ini, misalnya, untuk membuat versi PDF dari Agenda Org Anda. (Perhatikan bahwa ps-printjawaban berbasis Kaushal Modi akan menampilkan konten buffer tersembunyi.)

resep

M-x htmlize-buffer RET, C-x C-w buf.html RET; kemudian jalankan di baris perintah:

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

contoh (tangkapan layar)

masukkan deskripsi gambar di sini

Lihat juga

Ada diskusi menarik tentang "tangkapan layar vektor" di sini: Dapatkah saya mengambil tangkapan layar vektor (SVG) dari Emacs? (apa yang saya jelaskan dapat dilihat sebagai contoh yang sangat terbatas dari "tangkapan layar vektor".)

Joe Corneli
sumber
2

Anda dapat melakukannya C-u M-x ps-print-bufferuntuk mencetak buffer saat ini ke file PS dan kemudian mengirimnya ps2pdf.

Arne
sumber