enscript、find、inov、ps2pdfの組み合わせ

enscript、find、inov、ps2pdfの組み合わせ

ディレクトリのソースファイルを.pdfに変換する小さなbashスクリプトを作成しようとしています。次のステップは次のとおりです。

  • 検索を使用してファイルを検索する
  • find -execで文字エンコーディングをutf-8からiso-8859-1に変換し、ファイルでiconvを実行します。
  • この出力をenscriptを通して渡し、最終的にps2pdfに渡します。

iconvを追加した唯一の理由は、enscriptがutf-8をサポートしていないためです。これまで、私は次のような混乱を作りました。

#!/bin/bash
enscript --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1 -name '*.java' -type f -exec iconv -f utf-8 -t iso-8859-1 {} +` | ps2pdf - "$2"'.pdf'

これを実行すると、次のような出力が得られます。 enscript:無効なオプション - '、'詳細については、「enscript --help」を試してください。

編集:-exec iconvを追加するまで、そのエラーは発生しませんでした。
2.編集:今私が見た初期の声明は非常にあいまいです。修正しようとした元のスクリプトは次のとおりです。

#!/bin/bash
`which enscript` --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1'/src/' -name '*.java'` | ps2pdf - "$2"'.pdf'

./script.sh 宛先ディレクトリ出力ファイル名

元のスクリプトはフォルダ内のすべてのソースファイルをpdfファイルに再帰的に結合し、各ファイルは新しいページから始まります。おそらく、私はこれを2つのステップで行う必要がある状況で生きなければなりません。まず、文字セットを変換してからPDFに変換してください。

ベストアンサー1

パラメータ処理を簡素化するためのjava2psスクリプトの作成

#!/bin/bash

export ENSCRIPT="
--portrait
--columns=1
--font=Courier8
--highlight=java
--color
--line-numbers
--output=-
"

iconv -f utf-8 -t iso-8859-1 "$1" \
| enscript --header=' $n|'"$1"'|%F  Page $% of $='

今実行は簡単です

find -name '*.java' -type f -exec ~/java2ps {} \; | ps2pdf - > all.pdf

おすすめ記事