変換したい.txt
ファイルから.pdf
。私はこれを使っています:
ls | while read ONELINE; do convert -density 400 "$ONELINE" "$(echo "$ONELINE" | sed 's/.txt/.pdf/g')"; done
しかし、これは1つの「エラー」を生成します。テキストファイルに非常に長い行がある場合、折り返されません。
-
また、出力のPDFにテキストの画像の代わりにテキストを含めることができれば素晴らしいでしょう。
私は多対多TXTファイルを持っています。手動で実行したくないので、上記のような自動ソリューションが必要です。
1つの方法は、CUPSとPDF psuedo-printerを使用して、テキストをPDFファイルに「印刷」することです。
もう1つは、 enscript を使用してPostScriptにエンコードし、PostScriptからPDFをghostscriptパッケージのps2pdfファイルを使用して変換することです。
pandoc はこれを行うことができます。マークアップされたテキストをさまざまな形式に変換することに重点が置かれていますが、単純な平文では問題ありません。
pandoc input.txt -o output.pdf
LibreOffice/OpenOfficeと他のほとんどのワードプロセッサ(Abiword)はこれを非常に簡単に行うことができます。
コマンドラインでファイル形式の変換を行うためにLibreOfficeコードベースを使用するunoconv
という小さなユーティリティがあります。 LibreOfficeで可能な形式の任意の組み合わせを読み書きでき、コマンドラインでdoc
からpdf
への変換などを非常に簡単に実行できます。単純なtxt
からpdf
は簡単です。
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
これにより、Vimでexample.txt
が開き、-c
オプションに渡されたコマンドが実行されます。この場合、hardcopy
コマンドの後にquit(q
)コマンドが続きます。次に、ps2pdf
を実行して、最終的なファイルを生成します。
その他のオプションについては、:help :hardcopy
を含むヘルプファイルを参照してください。
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
paps
というUTF-8からPostScriptへのコンバーターもあります。
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 [email protected]/10 inputfile
$ ps2pdfwr outputfile.ps newfile.pdf
$ rm outputfile.ps
LibreOfficeはこれに対応しています。使用法:
libreoffice --convert-to "pdf" file.txt
出力はfile.pdf
と呼ばれます。
多くのディストリビューションにはデフォルトで含まれているため、cliからlibreoffice
を呼び出すためのより短い方法:
soffice --convert-to pdf input.txt
soffice
でサポートされる拡張機能。変換元:
ODF Spreadsheet .ods
ODF Spreadsheet Template .ots
Flat XML ODF Spreadsheet .fods
Unified Office Format Spreadsheet .uos
Microsoft Excel 2007-2013 XML .xlsx
Microsoft Excel 2003 XML .xml
Microsoft Excel 97-2003 .xls
Microsoft Excel 97-2003 Template .xlt
Data Interchange Format .dif
dBase .dbf
HTML Document (Calc) .html
SYLK .slk
Text CSV .csv
Office Open XML Spreadsheet .xlsx
Microsoft Excel 2007-2016 XML .xlsm