Cara mencetak file biasa ke pdf dari baris perintah

34

Di gedit, mencetak file memberikan opsi pencetakan ke file tempat file dapat disimpan sebagai pdf. Bagaimana saya bisa melakukan hal yang sama dari baris perintah?

skypemesm
sumber

Jawaban:

43

Inilah solusi yang tidak melibatkan OpenOffice:

  1. sudo apt-get install enscript

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

Ada lebih banyak opsi untuk enscript, misalnya -Buntuk menghilangkan tajuk halaman. Lihat man enscriptsemua opsi.

Stefano Palazzo
sumber
1
Alternatif yang bagus Stefano terutama bagi siapa pun yang tidak menggunakan open / libreoffice karena unoconv bergantung pada salah satu dari ini yang diinstal.
Allan
+1 untuk jawaban yang bagus, yang akan saya berikan, saya hanya memutuskan untuk memberikan satu saya pikir akan menambahkan sesuatu ke apa yang sudah ada di sini.
Sabacon
Apakah tidak ada program bash inbuilt atau perintah untuk melakukan ini?
kashminder
1
Terima kasih! Ini berfungsi untuk sebagian besar teks, namun enskrip hanya berfungsi dengan penyandian lama, tidak berfungsi dengan UTF-8 misalnya sehingga Anda tidak dapat mengonversi teks jika menyertakan simbol euro (€) misalnya ...
Antoine Dusséaux
20

tanpa menginstal salah satu dari perangkat lunak yang disebutkan di atas, seseorang dapat melakukan hal berikut dengan yang sudah diinstal cupsfilter:

cupsfilter foo.txt > foo.pdf

(untuk opsi dll. silakan merujuk ke halaman manual cupsfilter :-))

Abel Tom
sumber
2
Satu-satunya jawaban di sini yang menangani file teks UTF8 saya tanpa masalah :) plus lebih mudah dilakukan dengan hampir tidak ada dependensi
Axel Advento
13

CARA ENSCRIPT SEDERHANA

sudo apt-get install cups-pdf enscript

Kemudian jalankan enscript pada file Anda dengan -P switch dan deskripsi printer PDF dalam hal ini.

enscript -B -PPDF test.txt

Sebuah printer dengan deskripsi PDF dibuat ketika Anda menginstal cups-pdf, ketika Anda menggunakan enscript dengan printer itu, dokumen Anda akan dikirim ke printer PDF dan akan dicetak ke file, dibuat sebagai .pdf di direktori / home / PDF Anda, perintah di atas akan mencetak file teks test.txt sebagai pdf di direktori PDF.

MENGGUNAKAN UNOCONV

sudo apt-get install unoconv

Anda dapat menggunakan unoconv dalam mode mandiri, ini berarti bahwa jika tidak ada pendengar OpenOffice, ia akan memulai sendiri:

Di direktori tempat file Anda dijalankan:

unoconv -f pdf test.txt

ini akan membuat pdf tampak bagus dari test.txt. dalam direktori saat ini

Sabacon
sumber
enscript foo.txt -o bar.pdfbekerja dengan sangat baik; Terima kasih!
Thufir
6

Ada program baris perintah yang dapat mengkonversi antara semua format yang didukung open / libre office yang disebut unoconv jadi jika Anda perlu mengonversi batch dengan skrip, itu akan berguna.

sudo apt-get install unoconv
Allan
sumber
Bukan apa yang diminta OP.
enzotib
2
? OP? siapa OP dan mengapa memilih ini ketika menjawab pertanyaan?
RolandiXor
5

paps adalah alternatif yang lebih baik daripada enscript

paps file.txt | ps2pdf - output.pdf
hwc
sumber
7
Selamat Datang di Tanya Ubuntu hwc! Meskipun posting Anda menjawab pertanyaan, selalu lebih baik untuk memasukkan lebih banyak informasi. Misalnya, mengapa ada papsalternatif yang lebih baik? Dan jika papstidak diinstal secara default, apa perintah untuk menginstalnya? Anda selalu dapat mengedit jawaban Anda dengan mengeklik edittepat di bawah badan jawaban. Terima kasih!
Alaa Ali
5

Pandoc adalah harus memiliki alat pisau swiss ketika datang ke konversi antara berbagai bahasa markup. Untuk memulai, instal pandoc converter terlebih dahulu:

sudo apt-get install pandoc

Sintaksis umum dan paling sering digunakan untuk pandoc adalah:

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

Harap dicatat bahwa Anda perlu menginstal paket texlive-latex-base terlebih dahulu, sebelum dapat dikonversi ke format PDF. Kalau tidak, Anda akan mendapatkan kesalahan berikut:

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

Untuk menginstalnya:

sudo apt-get install texlive-latex-base

Sekarang Anda dapat dengan mudah mengkonversi file apa pun menjadi pdf.

pandoc -t txt -t pdf source.txt

ganti txt dengan format teks Anda (odt - html - ....)

Maythux
sumber
1
Dibandingkan dengan jawaban yang lain, pandoc plus texlive menghasilkan output yang buruk (tidak menghormati baris baru), dan terlalu berlebihan dan membingungkan untuk boot. Banyak lagi paket yang dibutuhkan, menarik dalam texlive, texlive-font-recommended, ruby, dll. Misalnya saya mendapatkan pandoc: Unknown writer: pdfsampai saya menginstal texlive-latex-base. Ini berdasarkan kepercayaan. Lihat github.com/jgm/pandoc/issues/1155 Lalu saya mendapat kesalahan tentang font yang hilang, kemudian satu tentang url.sty, dll.
nealmcb
2

Seperti yang diposting di atas, enscriptadalah cara yang populer untuk mengonversi teks menjadi postscript, yang selanjutnya dapat dikonversi ke PDF.
Alat serupa, yang sudah ada sejak lama, adalah a2ps. Ini memiliki sejumlah besar opsi, termasuk meletakkan beberapa halaman pada halaman fisik. Instal ap2s dengan sudo apt-get install a2ps.

AFAIK, enscript dan a2ps melakukan pekerjaan yang sama, tetapi antarmuka mereka berbeda dan YMMV dengan masing-masing.

dirkjot
sumber
Contoh menggunakan a2ps akan membantu. Opsi --delegate tampaknya diperlukan untuk pdf, tetapi halaman manual tidak benar-benar membantu di sana.
nealmcb
2

Saya memiliki beberapa masalah dengan Umlaute Jerman (ÄÖÜ) dengan solusi yang disebutkan di atas. Atau, dalam kasus paps, PDF yang dihasilkan tidak memiliki lapisan teks.

Solusi terbaik bagi saya adalah menggunakan wkthmltopdf . Tampaknya tidak didokumentasikan, tetapi Anda dapat dengan mudah mengkonversi file teks menjadi file PDF dengan menggunakan sintaks ini:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf dapat menangani file UTF-8 (tidak seperti enskrip). Semua karakter bermasalah seperti ÄÖÜß dll. Akan ditampilkan dengan benar.

Zarathustra
sumber
Ini telah diperbaiki dalam versi terbaru dari paps, yang dapat menghasilkan pdf yang dapat dipilih. Lihat: github.com/dov/paps .
Dov Grobgeld
1

Anda bisa menggunakan a2x

a2x - mengonversi file teks Asciidoc ke PDF, XHTML, Bantuan HTML, ODF, halaman manual atau teks biasa

Untuk menginstal a2x:

sudo apt-get install asciidoc

sebagai contoh:

 a2x -f pdf testfile.txt
Maythux
sumber
0

Anda juga dapat menggunakan u2ps .

Ini menghasilkan ps dan pdf. Ini menerima teks UTF-8, dan mendukung penyorotan sintaks melalui marka Pango.

pengguna1013749
sumber