Düzenli bir dosyayı pdf'e komut satırından basmak


34

Gedit'te, bir dosyayı yazdırmak, dosyanın bir pdf olarak kaydedilebileceği bir dosyaya yazdırma seçeneği sunar. Aynı şeyi komut satırından nasıl yapabilirim?

Yanıtlar:


43

İşte OpenOffice'i içermeyen bir çözüm:

  1. sudo apt-get install enscript

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

enscriptÖrneğin -Bsayfa başlığını atlamak için daha fazla seçenek var . Tüm man enscriptseçeneklere bakın.


1
Özellikle açık / libreoffice'i unconconv olarak kullanmayanlar için iyi bir alternatif Stefano bunların kurulmasından ikisine de bağlı.
Allan

Güzel cevap için +1, vermek üzereydim, daha önce burada olanlara bir şeyler katacağını düşündüğüm bir tane vermeye karar verdim.
Sabacon

Bunu yapmak için herhangi bir yerleşik bash programı veya komutu yok mu?
kashminder

1
Teşekkürler! Çoğu metin için çalışır, ancak enscript yalnızca eski kodlamayla çalışır, örneğin UTF-8 ile çalışmaz, bu nedenle örneğin euro simgesini (€) içeriyorsa bir metni dönüştüremezsiniz ...
Antoine Dusséaux

20

Yukarıda belirtilen yazılımlardan herhangi birini kurmadan, önceden kurulmuş bir yazılımla aşağıdakileri yapabilirsiniz cupsfilter:

cupsfilter foo.txt > foo.pdf

(Seçenekler vb. için lütfen bkz. cupsfilter kılavuz sayfaları :-))


2
Burada UTF8 metin dosyalarımı sorunsuzca kullanan tek cevap :) artı bağımlılıklar olmadan yapmak daha kolay
Axel Advento 22:17

13

BASİT BÜLTEN YOLU

sudo apt-get install bardaklar-pdf enscript

Ardından, -P anahtarı ve bu durumda yazıcı açıklaması PDF ile dosyanızda enscript'i çalıştırın.

enscript -B -PPDF test.txt

Cups-pdf yüklediğinizde PDF açıklamasını içeren bir yazıcı oluşturuldu, bu yazıcıyla enscript kullandığınızda belgeniz PDF yazıcısına gönderilecek ve / home / PDF dizininizde .pdf olarak oluşturulan dosyaya yazdırılacak. Yukarıdaki komut, test.txt metin dosyasını PDF dizininde pdf olarak basacaktır.

UNOCONV'U KULLANMA

sudo apt-get install unoconv

Unoconv'ı bağımsız modda kullanabilirsiniz, bu bir OpenOffice dinleyicisinin olmaması durumunda, kendi başına başlayacağı anlamına gelir:

Dosyanızın bulunduğu dizinde:

unoconv -f pdf test.txt

Bu, test.txt dosyasının hoş görünümlü bir pdf'sini oluşturacaktır. geçerli dizinde


enscript foo.txt -o bar.pdfoldukça iyi çalışıyor; Teşekkürler!
Thufir

6

Unoconv adındaki open / libre office destekli tüm formatlar arasında dönüştürebilen bir komut satırı programı vardır .

sudo apt-get install unoconv

OP istediği şey değil.
enzotib

2
? OP? OP kim ve soruyu cevapladığında neden bu oyu?
RolandiXor

5

paps daha iyi bir alternatif enscript

paps file.txt | ps2pdf - output.pdf

7
Ubuntu hwc'ye Hoş Geldiniz! Gönderiniz soruyu cevaplarken, daha fazla bilgi eklemek her zaman daha iyidir. Örneğin, neden papsdaha iyi bir alternatif? Ve eğer papsvarsayılan olarak kurulmazsa, kurma komutu nedir? Her zaman cevabın gövdesinin altındaki sağ tıklayarak yanıtınızı düzenleyebilirsinizedit . Teşekkürler!
Alaa Ali

5

Pandoc, çeşitli biçimlendirme dilleri arasında dönüşüm söz konusu olduğunda İsviçre bıçağı aracı olması gerekir. Başlamak için ilk önce pandoc dönüştürücüyü kurun:

sudo apt-get install pandoc

Pandoc için genel ve en sık kullanılan sözdizimi:

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

Lütfen, PDF formatına dönüştürmeden önce, ilk önce texlive latex base paketine ihtiyacınız olduğunu unutmayın. Aksi takdirde aşağıdaki hatayı alırsınız:

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

Yüklemek için:

sudo apt-get install texlive-latex-base

Şimdi kolayca herhangi bir dosyayı pdf dönüştürebilirsiniz.

pandoc -t txt -t pdf source.txt

txt'yi metin biçiminizle değiştirin (odt - html - ....)


1
Diğer cevaplarla karşılaştırıldığında, pandoc plus texlive kötü çıktılar üretiyor (yeni satırlara saygısız değil) ve fazlaca dikkat çekiyor ve önyüklemesi kafa karıştırıcı. Texlive, texlive fontları-tavsiye edilen, ruby, vb. Çekerek daha fazla pakete ihtiyaç var. Örneğin, pandoc: Unknown writer: pdftexlive-latex-base kurulumuna kadar alıyorum. Bu güvenilir. Bkz github.com/jgm/pandoc/issues/1155 Sonra vb url.sty yaklaşık bir, sonra bir eksik yazı hakkında bir hata var
nealmcb

2

Yukarıda da belirtildiği gibi, enscriptmetni daha sonra PDF'ye dönüştürülebilecek olan postscript'e dönüştürmenin popüler bir yoludur.
Uzun zamandır etrafta olan benzer bir araç a2ps. Fiziksel bir sayfaya birden fazla sayfa koymak da dahil olmak üzere çok sayıda seçenek vardır. Ap2'leri ile yükle sudo apt-get install a2ps.

AFAIK, enscript ve a2ps aynı işi yapar, ancak ara yüzleri farklıdır ve her biriyle YMMV'dir.


A2ps kullanmanın bir örneği yardımcı olacaktır. --Delegate seçeneği pdf için gerekli görünüyor, ancak man sayfası gerçekten orada yardımcı olmuyor.
nealmcb

2

Yukarıda belirtilen çözümlerle Alman Umlaute (ÄÖÜ) ile ilgili bazı sorunlar yaşadım. Veya, pap'ler durumunda, ortaya çıkan PDF'nin bir metin katmanı yoktur.

Benim için en iyi çözüm wkthmltopdf kullanmaktı . Belgelenmemiş görünüyor, ancak bu sözdizimini kullanarak metin dosyalarını kolayca PDF dosyalarına dönüştürebilirsiniz:

wktmltopdf <textfile> <pdffile>

wkhtmltopdf UTF-8 dosyalarını kullanabilir (enscript'in aksine). ÜÖÜß vs. gibi tüm problemli karakterler doğru gösterilecektir.


Bu, seçilebilir pdf çıktısı alabilen en yeni sürüm paps ile düzeltildi. Bakınız: github.com/dov/paps .
Dov Grobgeld

1

A2x kullanabilirsiniz

a2x - Asciidoc metin dosyasını PDF'ye, XHTML'ye, HTML Yardımı'na, ODF'ye, manpage'e veya düz metne dönüştürür

A2x'i kurmak için:

sudo apt-get install asciidoc

Örneğin:

 a2x -f pdf testfile.txt

0

Siz de u2ps kullanabilirsiniz .

Bu hem ps hem de pdf oluşturur. Bu, UTF-8 metnini kabul eder ve Pango işaretlemeleri yoluyla vurgulanan sözdizimini destekler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.