วิธีพิมพ์ไฟล์ปกติเป็น pdf จากบรรทัดคำสั่ง


34

ใน gedit การพิมพ์ไฟล์ให้ตัวเลือกในการพิมพ์ไปยังไฟล์ซึ่งสามารถบันทึกไฟล์เป็น pdf ได้ ฉันจะทำสิ่งเดียวกันจากบรรทัดคำสั่งได้อย่างไร

คำตอบ:


43

นี่คือโซลูชันที่ไม่เกี่ยวข้องกับ OpenOffice:

  1. sudo apt-get install enscript

  2. enscript my_text_file.txt -o - | ps2pdf - output.pdf

มีตัวเลือกเพิ่มเติมenscriptเช่น-Bละเว้นส่วนหัวของหน้า ดูman enscriptตัวเลือกทั้งหมด


1
ทางเลือกที่ดี Stefano โดยเฉพาะอย่างยิ่งสำหรับทุกคนที่ไม่ได้ใช้ open / libreoffice เนื่องจาก unoconv ขึ้นอยู่กับการติดตั้งอย่างใดอย่างหนึ่งเหล่านี้
อัลลัน

+1 สำหรับคำตอบที่ดีสิ่งที่ฉันกำลังจะให้ฉันเพิ่งตัดสินใจที่จะให้คนที่ฉันคิดว่าจะเพิ่มสิ่งที่มีอยู่แล้วที่นี่
Sabacon

ไม่มีโปรแกรมทุบตี inbuilt หรือคำสั่งให้ทำเช่นนี้?
kashminder

1
ขอบคุณ! มันใช้งานได้กับข้อความส่วนใหญ่ แต่ enscript ใช้งานได้กับการเข้ารหัสแบบเก่าเท่านั้นมันไม่ทำงานกับ UTF-8 ดังนั้นคุณจึงไม่สามารถแปลงข้อความได้หากมันมีสัญลักษณ์ยูโร (€) เป็นตัวอย่าง ...
Antoine Dusséaux

20

โดยไม่ต้องติดตั้งซอฟต์แวร์ใด ๆ ที่กล่าวถึงข้างต้นคุณสามารถทำสิ่งต่อไปนี้ด้วยการติดตั้งแล้วcupsfilter:

cupsfilter foo.txt > foo.pdf

(สำหรับตัวเลือกอื่น ๆ โปรดดูที่หน้าคน cupsfilter :-))


2
คำตอบเดียวที่นี่ที่จัดการไฟล์ข้อความ UTF8 ของฉันโดยไม่มีปัญหา :) และทำได้ง่ายขึ้นโดยแทบไม่ต้องพึ่งพา
Axel Advento

13

แนวทางที่เรียบง่าย

sudo apt-get ติดตั้ง cups-pdf enscript

จากนั้นเรียกใช้ enscript บนไฟล์ของคุณด้วยสวิตช์ -P และคำอธิบายเครื่องพิมพ์ PDF ในกรณีนี้

enscript -B -PPDF test.txt

เครื่องพิมพ์ที่มีคำอธิบาย PDF ถูกสร้างขึ้นเมื่อคุณติดตั้ง cups-pdf เมื่อคุณใช้ enscript กับเครื่องพิมพ์นั้นเอกสารของคุณจะถูกส่งไปยังเครื่องพิมพ์ PDF และจะถูกพิมพ์ลงในไฟล์สร้างเป็น. pdf ในไดเรกทอรี / home / PDF ของคุณ คำสั่งข้างต้นจะพิมพ์ไฟล์ข้อความ test.txt เป็นไฟล์ PDF ในไดเรกทอรี PDF

ใช้ UNOCONV

sudo apt-get install unoconv

คุณสามารถใช้ unoconv ในโหมดสแตนด์อโลนซึ่งหมายความว่าหากไม่มีผู้ฟัง OpenOffice มันจะเริ่มทำงานเอง:

ในไดเรกทอรีที่ไฟล์ของคุณทำงานอยู่:

unoconv -f pdf test.txt

สิ่งนี้จะสร้างรูปแบบไฟล์ PDF ที่สวยงามของ test.txt ในไดเรกทอรีปัจจุบัน


enscript foo.txt -o bar.pdfทำงานได้ค่อนข้างดี ขอบคุณ!
Thufir

6

มีโปรแกรมบรรทัดคำสั่งที่สามารถแปลงระหว่างทุกรูปแบบที่รองรับการเปิด / libre office ที่เรียกว่าunoconv ดังนั้นหากคุณต้องการแบทช์แปลงด้วยสคริปต์มันจะมีประโยชน์

sudo apt-get install unoconv

ไม่ใช่สิ่งที่ OP ขอ
enzotib

2
? OP? ใครเป็น OP และทำไมต้องลงคะแนนนี้เมื่อตอบคำถาม
RolandiXor

5

paps เป็นทางเลือกที่ดีกว่า enscript

paps file.txt | ps2pdf - output.pdf

7
ยินดีต้อนรับสู่ถาม Ubuntu hwc! ในขณะที่โพสต์ของคุณตอบคำถามคุณควรรวมข้อมูลเพิ่มเติมไว้เสมอ ตัวอย่างเช่นเหตุใดจึงเป็นpapsทางเลือกที่ดีกว่า และหากpapsไม่มีการติดตั้งโดยปริยายคำสั่งในการติดตั้งคืออะไร? คุณสามารถแก้ไขคำตอบของคุณได้ตลอดเวลาโดยคลิกที่editด้านล่างเนื้อความของคำตอบ ขอบคุณ!
Alaa Ali

5

Pandoc เป็นเครื่องมือที่ต้องมีมีดสวิสเมื่อพูดถึงการแปลงระหว่างภาษามาร์กอัปต่างๆ ในการเริ่มต้นให้คุณติดตั้งตัวแปลง pandoc ก่อน:

sudo apt-get install pandoc

ไวยากรณ์ทั่วไปและที่ใช้บ่อยที่สุดสำหรับ pandoc คือ:

pandoc -f <from format> -t <to format> <source file>

โปรดทราบว่าคุณต้องติดตั้งแพคเกจ texlive-latex-base ก่อนจึงจะสามารถแปลงเป็นรูปแบบ PDF มิฉะนั้นคุณจะได้รับข้อผิดพลาดต่อไปนี้:

pandoc: pdflatex not found. pdflatex is needed for pdf output.

วิธีติดตั้ง:

sudo apt-get install texlive-latex-base

ตอนนี้คุณสามารถแปลงไฟล์เป็น pdf ได้อย่างง่ายดาย

pandoc -t txt -t pdf source.txt

แทนที่ txt ด้วยรูปแบบข้อความของคุณ (odt - html - .... )


1
เมื่อเทียบกับคำตอบอื่น ๆ pandoc plus texlive ให้ผลลัพธ์ที่ไม่ดี (ไม่เคารพบรรทัดใหม่) และ overkill และสับสนในการบูต จำเป็นต้องใช้แพ็คเกจเพิ่มเติมจำนวนมากการดึงข้อความจาก texlive แนะนำให้ใช้แบบอักษร texlive-ruby เป็นต้นเช่นฉันจะได้รับpandoc: Unknown writer: pdfจนกว่าฉันจะติดตั้ง texlive-latex-base นี่คือความไว้วางใจ ดูgithub.com/jgm/pandoc/issues/1155 จากนั้นฉันได้รับข้อผิดพลาดเกี่ยวกับแบบอักษรที่ขาดหายไปหนึ่งในนั้นเกี่ยวกับ url.sty ฯลฯ
nealmcb

2

ดังที่โพสต์ข้างต้นenscriptเป็นวิธีที่นิยมในการแปลงข้อความเป็น postscript ซึ่งสามารถแปลงเป็น PDF ได้อีก เครื่องมือที่คล้ายกันซึ่งได้รับรอบเป็นเวลานานคือ
a2psมันมีตัวเลือกจำนวนมากรวมถึงการวางหลายหน้าในหน้าทางกายภาพ ติดตั้ง ap2s sudo apt-get install a2psกับ

AFAIK, enscript และ a2ps ทำหน้าที่เดียวกัน แต่อินเตอร์เฟสของพวกเขานั้นแตกต่างกันและ YMMV กับแต่ละคน


ตัวอย่างของการใช้ a2ps จะช่วยได้ ตัวเลือก - ผู้แทนดูเหมือนจะต้องการสำหรับ pdf แต่หน้าคนไม่ช่วยอะไร
nealmcb

2

ฉันมีปัญหากับภาษาเยอรมัน Umlaute (ÄÖÜ) กับวิธีแก้ไขปัญหาที่กล่าวถึงข้างต้น หรือในกรณีของ paps PDF ที่เป็นผลลัพธ์จะไม่มีเลเยอร์ข้อความ

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

wktmltopdf <textfile> <pdffile>

wkhtmltopdf สามารถจัดการไฟล์ UTF-8 (ไม่เหมือน enscript) ตัวอักษรที่มีปัญหาทั้งหมดเช่นÄÖÜßเป็นต้นจะแสดงอย่างถูกต้อง


สิ่งนี้ได้รับการแก้ไขใน paps เวอร์ชันล่าสุดซึ่งสามารถส่งออกไฟล์ PDF ที่เลือกได้ ดู: github.com/dov/paps
Dov Grobgeld

1

คุณสามารถใช้ a2x

a2x - แปลงไฟล์ข้อความ Asciidoc เป็น PDF, XHTML, วิธีใช้ HTML, ODF, manpage หรือข้อความธรรมดา

ในการติดตั้ง a2x:

sudo apt-get install asciidoc

ตัวอย่างเช่น:

 a2x -f pdf testfile.txt

0

คุณสามารถใช้u2ps ได้เช่นกัน

สิ่งนี้สร้างทั้ง ps และ pdf สิ่งนี้ยอมรับข้อความ UTF-8 และรองรับการเน้นไวยากรณ์ผ่านมาร์กอัป Pango

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