コマンドラインから通常のファイルを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
unoconvはインストールされているこれらのいずれかに依存しているため、特にopen / libreofficeを使用していない人にとっては、良い代替Stefanoです。
アラン

私が与えようとしていた素敵な答えのために+1、私はちょうど私がすでにここにあるものに何かを追加すると思うものを与えることにしました。
サバコン

これを行う組み込みのbashプログラムまたはコマンドはありませんか?
kashminder 14年

1
ありがとう!ほとんどのテキストで機能しますが、enscriptは古いエンコーディングでのみ機能します。たとえば、UTF-8では機能しないため、たとえばユーロ記号(€)が含まれている場合はテキストを変換できません...
AntoineDusséaux

20

上記のソフトウェアをインストールせずに、すでにインストールされている状態で次の操作を実行できますcupsfilter

cupsfilter foo.txt > foo.pdf

(オプションなどについてはcupsfilterのmanページを参照してください:-))


2
唯一の問題もなく私のUTF8のテキストファイルを扱っ:)プラス事実上の依存関係をどうしやすいことをここに答える
アクセルAdvento

13

簡単な暗号化方法

sudo apt-get install cups-pdf enscript

この場合、-Pスイッチとプリンター記述PDFを使用して、ファイルに対してenscriptを実行します。

enscript -B -PPDF test.txt

cups-pdfをインストールしたときに説明PDFのプリンターが作成されました。そのプリンターでenscriptを使用すると、ドキュメントがPDFプリンターに送信され、/ home / PDFディレクトリーに.pdfとして作成されたファイルに印刷されます。上記のコマンドは、テキストファイルtest.txtをPDFとしてPDFディレクトリーに印刷します。

UNOCONVを使用する

sudo apt-get install unoconv

スタンドアロンモードでunoconvを使用できます。これは、OpenOfficeリスナーが存在しない場合、独自に起動することを意味します。

ファイルが置かれているディレクトリで次を実行します。

unoconv -f pdf test.txt

これにより、test.txtの見栄えの良いPDFが作成されます。現在のディレクトリ内


enscript foo.txt -o bar.pdfかなりうまくいきます。ありがとう!
トゥフィル

6

unoconvと呼ばれる、サポートされているすべてのオープン/ ライブラリオフィス間で変換できるコマンドラインプログラムがある ため、スクリプトでバッチ変換する必要がある場合に便利です。

sudo apt-get install unoconv

OPが要求したものではありません。
-enzotib

2
?OP?OPは誰で、質問に答えたときにこれを投票するのはなぜですか?
RolandiXor

5

paps よりも良い選択肢です enscript

paps file.txt | ps2pdf - output.pdf

7
Ask Ubuntu hwcへようこそ!投稿が質問に答えている間は、より多くの情報を含めることをお勧めします。たとえば、なぜpapsより良い代替手段なのでしょうか?場合とpaps、デフォルトではインストールされていない、それをインストールするコマンドは何ですか?回答の本文のすぐ下をクリックして、いつでも回答を編集できますedit。ありがとう!
アラアアリ

5

Pandocは、さまざまなマークアップ言語間の変換に関してはスイスナイフツールを持っている必要があります。開始するには、まずpandocコンバーターをインストールします。

sudo apt-get install pandoc

一般的で最も頻繁に使用されるpandocの構文は次のとおりです。

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

PDF形式に変換する前に、まずtexlive-latex-baseパッケージをインストールする必要があることに注意してください。そうしないと、次のエラーが表示されます。

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とtexliveの出力は(改行を無視して)不良であり、起動しすぎて混乱します。さらに多くのパッケージが必要で、texlive、texlive-fonts-recommended、rubyなどをpandoc: Unknown writer: pdf取り込みます。たとえば、texlive-latex-baseをインストールするまで取得します。これは信頼できます。参照github.com/jgm/pandoc/issues/1155 など、そして、私はurl.sty約その後、不足しているフォントに関するエラーが発生しました
nealmcb

2

上記に投稿したように、enscriptテキストをポストスクリプトに変換する一般的な方法であり、これをさらにPDFに変換できます。
長い間使用されていた同様のツールはa2psです。物理ページに複数のページを配置するなど、多数のオプションがあります。でap2sをインストールし sudo apt-get install a2psます。

AFAIK、enscript、およびa2psは同じ仕事をしますが、インターフェイスは異なり、それぞれがYMMVです。


a2psの使用例が役立ちます。--delegateオプションはpdfに必要と思われますが、マニュアルページは実際には役に立ちません。
nealmcb

2

上記のソリューションに関して、ドイツ語のウムラウト(ÄÖÜ)で問題が発生しました。または、papsの場合、結果のPDFにはテキストレイヤーがありません。

私にとって最善の解決策は、wkthmltopdfを使用することでした。文書化されていないようですが、次の構文を使用してテキストファイルをPDFファイルに簡単に変換できます。

wktmltopdf <textfile> <pdffile>

wkhtmltopdfはUTF-8ファイルを処理できます(enscriptとは異なります)。ÄÖÜßなどの問題のある文字はすべて正しく表示されます。


これは、選択可能なpdfを出力できる最新バージョンのpapsで修正されました。github.com/dov/papsを参照してください。
ドブグロブゲルド

1

a2xを使用できます

a2x-AsciidocテキストファイルをPDF、XHTML、HTMLヘルプ、ODF、マンページ、またはプレーンテキストに変換する

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.