แปลงบัฟเฟอร์ข้อความเป็นไฟล์ pdf?


15

เราจะแปลงบัฟเฟอร์ข้อความปัจจุบันเป็นไฟล์ pdf ได้อย่างไรควรเปลี่ยนหัวเรื่องที่เริ่มต้นด้วย * เป็นที่คั่นหน้าของไฟล์ pdf ตัวอย่างเช่นการเปลี่ยนการสอนแบบรวมของ Emacs (แสดงโดย Ch t) เป็นไฟล์ PDF ที่คั่นหน้า ขอบคุณ


2
มองไปที่การส่งออกจากorg-modeน้ำยาง / PDF
PythonNut

2
โดยเฉพาะorg-latex-export-to-pdf
casey

6
เพื่อความหลากหลาย: คุณสามารถทำC-u M-x ps-print-bufferแล้วแปลงไฟล์ PostScript ที่เป็นผลลัพธ์เป็น PDF (หากไฟล์ของคุณไม่ใช่ไฟล์ Org และคุณเพียงต้องการไฟล์ PDF แบบข้อความธรรมดา) ในทำนองเดียวกันps-print-buffer-with-facesมันเป็นสิ่งที่ดูเหมือน
wvxvw

@PythonNut:C-c C-e is undefined
ทิม

@casey: ไม่พบคำสั่ง
ทิม

คำตอบ:


13

คุณสามารถใส่ด้านล่างในของคุณinit.elและผูกฟังก์ชั่นที่จะผูกพันที่คุณเลือก

ฟังก์ชั่นพิมพ์ไฟล์ในบัฟเฟอร์ปัจจุบันเป็น PDF ในโฟลเดอร์เดียวกันโดยค่าเริ่มต้น

นี่คือฟังก์ชั่นที่จำเป็นต้องไบนารีps2pdfสำหรับการแปลงไป.ps .pdfแต่คุณสามารถแทนที่ด้วยตัวสร้าง pdf ที่มีอยู่ในระบบของคุณ

(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

สิ่งนี้ไม่ได้แก้ไขปัญหาเฉพาะของบุ๊กมาร์กใน PDF แต่แก้ไขปัญหาทั่วไปของการแปลงบัฟเฟอร์เป็น PDF

หากคุณต้องการรับ "ภาพหน้าจอ" PDF ของบัฟเฟอร์ตามที่เห็นจริง - ไม่แสดงข้อความที่ซ่อนอยู่ - ทางเลือกที่ดีคือhtmlizeบัฟเฟอร์และแปลงผลลัพธ์จาก HTML เป็น PDF คุณสามารถใช้สิ่งนี้เพื่อสร้าง Org Agenda ของคุณในรูปแบบ PDF (โปรดทราบว่าps-printคำตอบที่ใช้จาก Kaushal Modi จะแสดงเนื้อหาบัฟเฟอร์ที่ซ่อนอยู่)

สูตรอาหาร

M-x htmlize-buffer RET, C-x C-w buf.html RET; จากนั้นเรียกใช้บนบรรทัดคำสั่ง:

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

ตัวอย่าง (ภาพหน้าจอ)

ป้อนคำอธิบายรูปภาพที่นี่

ดูสิ่งนี้ด้วย

มีการอภิปรายที่น่าสนใจเกี่ยวกับ "ภาพหน้าจอแบบเวกเตอร์" ที่นี่: ฉันสามารถถ่ายภาพหน้าจอแบบเวกเตอร์ (SVG) ของ Emacs ได้หรือไม่ (สิ่งที่ฉันอธิบายอาจเป็นตัวอย่างที่ จำกัดมากของ "ภาพหน้าจอแบบเวกเตอร์")


2

คุณสามารถทำได้C-u M-x ps-print-bufferในการพิมพ์บัฟเฟอร์ปัจจุบันไปยังแฟ้ม PS ps2pdfแล้วท่อมันผ่าน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.