Javaプロジェクトのソースコード全体を印刷する必要があります。最終バージョンは次のようになります:Eclipse:File-> Print。ただし、この機能を使用すると、一度に1つのファイルしか印刷できません。
1つのコマンドでプロジェクト全体(すべての* .Java、*。xml、...ファイル)を印刷(またはPDF/RTFを作成)する方法はありますか?
私はWindows XP SP3でEclipse Galileoを使用しています
EDIT:各クラス/ファイルについて、ページは(多かれ少なかれ)次のようになります:
1 package utils.libraries;
2
3 import Java.io.File;
9
10 /**
11 * @
12 * @
13 * @
14 */
15 public class LibraryExtractor {
16
17 /**
18 *
19 *
20 *
21 *
22 *
23 *
24 *
25 */
26 public static void extranctLibrary(String library, File targetFile) throws
IOException, URISyntaxException {
27 targetFile.getParentFile().mkdirs();
28 if (!targetFile.exists())
29 targetFile.createNewFile();
30
31 ClassLoader classLoader = LibraryExtractor.class.getClassLoader();
32 InputStream in = classLoader.getResourceAsStream(library);
33 OutputStream out = new FileOutputStream(targetFile);
34
35 byte[] buf = new byte[1024];
36 int len;
37
38 while ((len = in.read(buf)) > 0)
39 out.write(buf, 0, len);
40
41 in.close();
42 out.close();
43 }
44 }
45
解決策:
Cygwin のインストール、またはLinuxでの実行を気にしない場合は、次のコマンドで必要な処理を実行できます。
_enscript -r -2 --file-align=2 --highlight --line-numbers -o - `find . -name '*.Java'` | ps2pdf - files.pdf
_
enscriptは、テキストファイルをさまざまな出力形式に変換するためのプログラムです。 PostScriptがデフォルトですが、HTML、RTF、およびその他いくつかを作成することもできます。 _-r
_オプションは横向きで印刷することを示し、_-2
_はページごとに2列(ツリーを保存)、_--file-align=2
_は新しいファイルがそれぞれ独自の物理ページから始まることを示します_--highlight
_は言語固有の構文強調表示をオンにします(言語を理解しようとするか、「Java」を指定できます)、_--line-numbers
_は明白である必要があり、_-o -
_は標準出力に出力を送信します( ps2pdf)にパイプされます。
findはファイルのリストを生成します。ここでは、現在のディレクトリの下にあるすべてのJavaファイルを検索するように指示しています。出力はenscript;「50-100ファイル」の場合、大丈夫ですが、xargsについて読む必要がある場合があります。_-name
_引数を使用してすべてのファイルのリストを生成するか、複数の_-name
_引数を追加してリストにさらにファイルタイプを追加します。「すべてのファイル」アプローチを使用しないのは、ソースが取得されるためです。 -制御ファイル。
ps2pdfは、enscriptからPostScript出力を取得してPDFに変換します。印刷できます。
50ドルでUltraeditを購入する余裕がある場合は、すべてのファイルを開いて印刷します...
ltraedit機能 印刷について:
私はあなたがEclipse内でこれを行うことができるとは思いません(もちろんあなたはこれを行うプラグインを書くことができます)。
ビルドツールとしてAntを使用する場合、concat
タスクを使用して、結果のファイルを印刷できます。
<concat destfile="${concat.src.dir}/concat.txt" force="no">
<filelist dir="${src.dir}" includes="**/*.Java **/*.xml" />
</concat>
http://sourceforge.net/projects/javasrc2pdf/?source=typ_redirect
これにより、すべてのPDFが作成され、適度に構文が強調表示されますが、それらはすべて別のファイルにあります。しかし、そこにPDFを組み合わせる多くの方法があります
Eclipseとまったく同じフォーマットが必要な場合は、おそらくEclipseから印刷する必要があります。 Eclipseにある印刷フォーマットを別の方法で複製しようとすると、より多くの時間を費やすことになります。
もう1つの重要なポイント:Eclipseのテキストエディターで折りたたみを使用している場合、折りたたまれた線は印刷バージョンでは表示されません。
本当にソースコードをツリーとして提供する必要がある場合は、色と構文の強調表示は重要ではないことをクライアントに伝え、すべてをEclipseでフォーマットし、他の場所から印刷することをお勧めします。他の回答には行番号などの提案があります。
見栄えのするオプションは、vimをバッチモードで使用して、色付けされた一連のHTMLファイルを生成し、それらすべてをプリンターにドラッグして印刷することです(私はそれができることを知っています。しばらく前に、同僚がJ2SE API全体を印刷しました。そして私は彼女がページごとにそれをしなかったことを望みますxD)。
find -name "*.Java" -exec vim '+set nu' +TOhtml +wq +q '{}' \;
http://pygments.org/docs/formatters/ で説明されているように、ライン番号を有効にしてpygmentsを使用します