web-dev-qa-db-ja.com

全体のソースコードを印刷するJavaプロジェクト

Javaプロジェクトのソースコード全体を印刷する必要があります。最終バージョンは次のようになります:Eclipse:File-> Print。ただし、この機能を使用すると、一度に1つのファイルしか印刷できません。

1つのコマンドでプロジェクト全体(すべての* .Java、*。xml、...ファイル)を印刷(またはPDF/RTFを作成)する方法はありますか?

私はWindows XP SP3でEclipse Galileoを使用しています


EDIT:各クラス/ファイルについて、ページは(多かれ少なかれ)次のようになります:

C:\ ..\..\..\LibraryExtractor.Java

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

解決策:

  1. enscript (Cygwinを使用)

  2. Java2Html Eclipse-Plugin(Europaでのみ機能)

27
r3zn1k

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に変換します。印刷できます。

57
kdgregory

50ドルでUltraeditを購入する余裕がある場合は、すべてのファイルを開いて印刷します...

ltraedit機能 印刷について:

  • 印刷プレビュー
  • 行番号を印刷する
  • 印刷コマンドは隠線を印刷しません
  • ヘッダー/フッター(配置コマンドを使用)、マージン、改ページ
  • 構文の強調表示をカラーで印刷
  • 横向きまたは縦向きモードで1枚の用紙に2ページを印刷する
  • ディスプレイとプリンターの個別のフォント選択(True Typeフォントを含む、インストールされているすべてのフォントをサポート)
  • 開いているすべてのファイルを印刷します
6
JuanZe

私は過去に EclipseJava2Html を使用しました。それがあなたのニーズに合っているかどうかを確認してください。

6
Gregory Pakosz

私はあなたがEclipse内でこれを行うことができるとは思いません(もちろんあなたはこれを行うプラグインを書くことができます)。

ビルドツールとしてAntを使用する場合、concatタスクを使用して、結果のファイルを印刷できます。

<concat destfile="${concat.src.dir}/concat.txt" force="no">
    <filelist dir="${src.dir}" includes="**/*.Java **/*.xml" />
</concat>
3
jitter

http://sourceforge.net/projects/javasrc2pdf/?source=typ_redirect

これにより、すべてのPDFが作成され、適度に構文が強調表示されますが、それらはすべて別のファイルにあります。しかし、そこにPDFを組み合わせる多くの方法があります

1
Stuart Clark

Eclipseとまったく同じフォーマットが必要な場合は、おそらくEclipseから印刷する必要があります。 Eclipseにある印刷フォーマットを別の方法で複製しようとすると、より多くの時間を費やすことになります。

もう1つの重要なポイント:Eclipseのテキストエディターで折りたたみを使用している場合、折りたたまれた線は印刷バージョンでは表示されません。

本当にソースコードをツリーとして提供する必要がある場合は、色と構文の強調表示は重要ではないことをクライアントに伝え、すべてをEclipseでフォーマットし、他の場所から印刷することをお勧めします。他の回答には行番号などの提案があります。

1
Matthew Farwell

見栄えのするオプションは、vimをバッチモードで使用して、色付けされた一連のHTMLファイルを生成し、それらすべてをプリンターにドラッグして印刷することです(私はそれができることを知っています。しばらく前に、同僚がJ2SE API全体を印刷しました。そして私は彼女がページごとにそれをしなかったことを望みますxD)。

find -name "*.Java" -exec vim '+set nu' +TOhtml +wq +q '{}' \;
1
fortran

http://pygments.org/docs/formatters/ で説明されているように、ライン番号を有効にしてpygmentsを使用します

0
Xavier Combelle