TXTをPDFに変換する方法


45

.txtファイルをに変換したい.pdf。私はこれを使用しています:

ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done

ただし、これにより1つの「エラー」が発生します。テキストファイルに非常に長い行がある場合、折り返されません。

入力テキスト

入力ファイルのスクリーンショット

出力PDF

出力PDFのスクリーンショット

-

また、出力PDFにテキストの画像ではなくテキストを含めることができれば素晴らしいと思います。

たくさんのTXTファイルがあります。だから手でやりたくない。上記のような自動ソリューションが必要です。


1
for ONELINE in *代わりに使用する必要がありますls | while read ONELINEこれを読んでください。

答えるのに十分な担当者がいませんが、KDE ​​kubuntuのKateエディターを追加して、ファイル名を選択して.pdfを生成できるPDF "printer"に印刷できるようにします。
mathreadler

回答:


21

1つの方法は、CUPSとPDF疑似プリンターを使用して、テキストをPDFファイルに「印刷」することです。

別の方法は、enscriptを使用してpostscriptにエンコードし、ghostscriptパッケージのps2pdfファイルを使用してpostscriptからPDFに変換することです。



3
誰かがUTF-8でenscriptをサポートしていますか?
ランスベインズ

2
@LanceBaynes セディーユ、またはGNOME-u2ps、またはu2ps
ジル 'SO-悪であるのをやめる'

34

pandocはこれを行うことができます。マークアップされたテキストをさまざまな形式に変換することに重点を置いていますが、単純なプレーンテキストで問題はないはずです。

pandoc input.txt -o output.pdf

3
良さそうに見えますが、パンドックが大量のhaskell依存関係を持っていると怖がってしまいます:/
lkraav

1
@Ikraavええ、これはこの目的にはあまりにもやりすぎですが、マークダウンまたはHTML(または入力として受け入れることができる他のマークアップのいずれか)がある場合は、pandocが最適です。PDFは実際にはさらに多くの依存関係を必要とします-内部的には、pandocはLaTeXを使用してPDFに変換するため、そのようなものもインストールする必要があります-品質は非常に良いです(主にマークダウンされたテキストをPDFおよびEPUBに変換するために使用します) )。
evilsoup

pandoc(1.16.0.2)は、改行をタブに置き換えます。
スパルホーク

17

LibreOffice / OpenOfficeおよび他のほとんどのワードプロセッサ(Abiword)は、これを非常に簡単に行うことができます。

unoconvLibreOfficeコードベースを使用してコマンドラインでファイル形式の変換を行う小さなユーティリティがあります。LibreOfficeで可能な任意の形式の組み合わせを読み書きでき、コマンドラインでの変換などdocを非常に簡単に実行できpdfます。簡単なtxtことpdfは簡単です。


面白い。知らなかったunoconvとさえOOはAPIを持っていた知りませんでした。
ファヒムミタ

高品質の結果を生成しますが、私(バージョン0.5-1(Debian Wheezy)を使用しています)では、最初にunoconv --listener &コマンドを実行する必要があります。
ディガー

12

Vimがこの+postscript機能でコンパイルされている限り、Vimを使用してテキストをPostScriptファイルに印刷してからPDFに変換できます。

これには、:hardcopy > {filename}コマンドを使用します。たとえば、開いexample.txtて実行できます

:hardcopy > example.ps

example.psすべてのテキストを含むファイルが生成されexample.txtます。PostScriptファイルの各ページのヘッダーには、元のファイル名とページ番号が含まれます。

その後、次のコマンドを使用して、PostScriptファイルをPDFに変換できます。

ps2pdf example.ps

作成しますexample.pdf

次のコマンドを使用して、ターミナルから直接(Vimと対話せずに)同じことを実行できます。

vim example.txt -c "hardcopy > example.ps | q"; ps2pdf example.ps

これexample.txtはVimで開き、-cオプションに渡されたコマンドを実行します。この場合は、hardcopyコマンドの後にquit(q)コマンドが続きます。次に、実行ps2pdfして最終ファイルを生成します。

その他のオプションについては、ヘルプファイルを参照してください:help :hardcopy


:hardcopy.pdfまたは.ps拡張子を追加しても、PostScriptファイルが生成されます。私はやった:hardcpy > example.pdfless example.pdf、シェルでファイルヘッダーがであることがわかりました%!PS-Adobe-3.0
太郎

@taro、あなたは正しいです。私がこれを書いたとき、私はそれに気づかなかった。回答を更新しました。最後のコマンドは改善される可能性がありますが、今はそれを書くことができません。後で行うかもしれません。
ゴンサロリベイロ

10

無料でオープンソースのtext2pdfを使用するだけです。リンクでは、ソース、またはWindows、solaris、dosのコンパイル済みバイナリをダウンロードできます。

問題なくAIX OSで使用できます。コンパイルするのは非常に簡単です。text2pdf.cとMakefileを同じディレクトリに保存して、入力しmakeます。(ここではAIXで変数CC = gccを設定しますが、Linuxではこれは問題になりません)

$ ./text2pdf  -h

text2pdf [options] [filename]

  text2pdf makes a 7-bit clean PDF file (version 1.1) from any input file.
  It reads from standard input or a named file, and writes the PDF file
  to standard output.

  There are various options as follows:

  -h            show this message
  -f<font>      use PostScript <font> (must be in standard 14, default: Courier)
  -I            use ISOLatin1Encoding
  -s<size>      use font at given pointsize (default 10)
  -v<dist>      use given line spacing (default 12 points)
  -l<lines>     lines per page (default 60, determined automatically
                if unspecified)
  -c<chars>     maximum characters per line (default 80)
  -t<spaces>    spaces per tab character (default 8)
  -F            ignore formfeed characters (^L)
  -A4           use A4 paper (default Letter)
  -A3           use A3 paper (default Letter)
  -x<width>     independent paper width in points
  -y<height>    independent paper height in points
  -2            format in 2 columns
  -L            landscape mode

  Note that where one variable is implied by two options, the second option
  takes precedence for that variable. (e.g. -A4 -y500)
  In landscape mode, page width and height are simply swapped over before
  formatting, no matter how or when they were defined.

text2pdf v1.1 (c) Phil Smith, 1996
$ ./text2pdf  -f"Courier" -s6 -c216 -v6 -L -A4 ./rep3.txt >rep3.pdf

3
これのutf8対応フォークはありますか?
ヴォルフガングファル

7

と呼ばれるUTF-8からPostScriptへのコンバーターもありpapsます。


3
動作し、TrueTypeフォントを使用しますが、フォントをネイティブで使用する代わりに、結果としてビットマップを含むドキュメントを作成することに注意してください。(これはPostscriptのせいでしょうか?)
njsg

WindozeのCygwin32でコンパイルできませんでした...
texnezio

5

enscriptを使用して.psファイルを作成し、ps2pdf(またはps2pdfwr)を使用して.pdfに変換します

次のスクリプトは、左右に10 ptの余白を持つ.pdfファイルを作成し、幅7.3 pts、高さ10 ptsのクーリエフォントを使用するため、132 colの印刷出力は8 1/2 X 11ページに収まります。enscriptを使用して、ページ、フォントなどを設定します。

$ enscript -B --margins=10:10: -o outputfile.ps -f Courier@7.3/10 inputfile
$ ps2pdfwr outputfile.ps newfile.pdf
$ rm outputfile.ps

5
注意点:enscriptはutf-8をサポートしていません。
maxschlepzig 14

3

LibreOfficeはこのために機能します。使用法:

libreoffice --convert-to "pdf" file.txt

出力はと呼ばれfile.pdfます。


結果のPDFのフォントサイズを変更する方法はありますか?
平均

@Evg LibreOfficeを使用するこの方法でこれを行う方法はわかりません。
jbrock
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.