chuyển đổi một bộ đệm văn bản thành một tập tin pdf?


15

Làm cách nào chúng ta có thể chuyển đổi bộ đệm văn bản hiện tại thành tệp pdf, tốt nhất là chuyển các tiêu đề bắt đầu bằng * thành dấu trang của tệp pdf. Ví dụ: biến hướng dẫn tích hợp Emacs (được hiển thị bởi Ch t) thành tệp pdf được đánh dấu. Cảm ơn.



2
cụ thểorg-latex-export-to-pdf
casey

6
Chỉ vì mục đích đa dạng: bạn có thể thực hiện C-u M-x ps-print-buffervà sau đó chuyển đổi tệp PostScript kết quả thành PDF (nếu tệp của bạn không phải là tệp Org và bạn chỉ muốn có loại văn bản PDF đơn giản). Tương tự, ps-print-buffer-with-faceslà những gì nó nghe như.
wvxvw

@PythonNut:C-c C-e is undefined
Tim

@casey: lệnh không được tìm thấy
Tim

Câu trả lời:


13

Bạn có thể đặt bên dưới trong của bạn init.elvà liên kết chức năng với một ràng buộc của sự lựa chọn của bạn.

Hàm in tệp trong bộ đệm hiện tại dưới dạng PDF trong cùng một thư mục theo mặc định.

Ở đây hàm yêu cầu nhị phân ps2pdfđể chuyển đổi .psthành .pdf. Nhưng bạn có thể thay thế bằng bất kỳ trình tạo pdf có sẵn nào trên hệ thống của bạn.

(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"))))

2

Điều này không giải quyết vấn đề cụ thể của dấu trang trong PDF, nhưng giải quyết vấn đề chung về chuyển đổi bộ đệm thành PDF.

Nếu bạn muốn lấy "ảnh chụp màn hình" của bộ đệm như bạn thực sự thấy nó - không hiển thị văn bản ẩn - thì một cách tốt khác là html hóa bộ đệm và chuyển đổi kết quả từ HTML sang PDF. Bạn có thể sử dụng điều này, ví dụ, để xây dựng phiên bản PDF của Chương trình nghị sự Org của bạn. (Lưu ý rằng ps-printcâu trả lời dựa trên Kaushal Modi sẽ hiển thị nội dung bộ đệm ẩn.)

công thức

M-x htmlize-buffer RET, C-x C-w buf.html RET; sau đó chạy trên dòng lệnh:

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

ví dụ (ảnh chụp màn hình)

nhập mô tả hình ảnh ở đây

Xem thêm

Có một cuộc thảo luận thú vị về "ảnh chụp màn hình vector" ở đây: Tôi có thể chụp ảnh màn hình vector (SVG) của Emacs không? (những gì tôi đã mô tả có thể được xem là một ví dụ rất hạn chế của "ảnh chụp màn hình vector".)


2

Bạn có thể làm C-u M-x ps-print-bufferđể in bộ đệm hiện tại vào một tệp PS và sau đó chuyển nó qua ps2pdf.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.