打印整个java项目的源代码

时间:2009-12-17 11:39:46

标签: java eclipse printing

我必须打印java项目的整个源代码。 最终版本应如下所示: Eclipse:文件 - >打印即可。 但是使用此功能,您只能一次打印一个文件。

有没有办法用一个命令打印(或创建一个pdf / rtf)整个项目(所有* .java,*。xml,...文件)?

我在windows xp sp3上使用eclipse galileo


编辑:对于每个类/文件,页面应该(或多或少)如下所示:

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

SOLUTION:

  1. enscript(与Cygwin合作)

  2. Java2Html Eclipse-Plugin(仅限 与欧罗巴合作)

8 个答案:

答案 0 :(得分:57)

如果您不介意安装Cygwin或在Linux上运行,以下命令将执行您想要的操作:

enscript -r -2 --file-align=2 --highlight --line-numbers -o - `find . -name '*.java'` | ps2pdf - files.pdf

enscript 是一个将文本文件转换为各种输出格式的程序; PostScript是默认设置,但您也可以生成HTML,RTF和其他一些内容。 -r选项表示要横向打印,-2每页两列(保存树),--file-align=2表示每个新文件应从其自己的物理页面{{1}开始打开语言特定的语法高亮(它会尝试找出语言,或者你可以指定“java”),--highlight应该很明显,--line-numbers将输出发送到标准输出(它通过管道输送到 ps2pdf )。

find 生成文件列表;在这里,我告诉它在当前目录下找到所有Java文件。输出作为参数传递给 enscript ;对于“50-100个文件”,你应该没问题,但你可能需要阅读 xargs 。您可以删除-o -参数以生成所有文件的列表,或添加多个-name参数以向列表中添加更多文件类型;我不会采用“所有文件”的方法,因为那样你就会获得源代码控制文件。

ps2pdf enscript 获取PostScript输出并将其转换为PDF,您可以打印。

答案 1 :(得分:6)

如果你能花费50美元购买Ultraedit,打开所有文件并打印出来......

关于打印的

Ultraedit features包括:

  • 打印预览
  • 打印行号
  • 打印命令不会打印隐藏线
  • 页眉/页脚(带对齐命令),页边距和分页符
  • 以彩色打印语法高亮显示
  • 以横向或纵向模式在一张纸上打印2页
  • 显示和打印机的单独字体选择(支持所有安装的字体,包括True Type字体)
  • 打印所有打开的文件

答案 2 :(得分:6)

我过去曾使用Java2Html中的Eclipse。看看它是否符合您的需求。

答案 3 :(得分:3)

我认为你不能在Eclipse中做到这一点(当然你可以编写一个插件来实现这一点)。

如果您使用Ant作为构建工具,则可以使用concat任务,然后打印生成的文件

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

答案 4 :(得分:1)

一个看似花哨的选项是在批处理模式下使用vim生成一堆彩色HTML文件,然后通过将所有这些文件拖到打印机进行打印(我知道可以做到,前段时间一位同事打印了整个J2SE API,我希望她没有逐页xD)。

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

答案 5 :(得分:1)

如果您希望格式与Eclipse中的格式完全相同,那么您可能需要从Eclipse打印。您将花费更多时间尝试使用其他方法复制Eclipse中的打印格式。

另一个要点:如果您在Eclipse中的文本编辑器中使用折叠,则折叠的行将不会显示在打印版本中。

如果你真的必须提供源代码作为树,那么我建议你尝试说服你的客户颜色和语法高亮并不重要,然后在Eclipse中格式化所有内容,并从其他地方打印。在其他答案中有关于行号等的建议。

答案 6 :(得分:1)

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

这会创建所有PDF并具有相当好的语法突出显示但是它们都在单独的文件中。但是有很多方法可以将pdfs结合起来

答案 7 :(得分:0)

我会按照http://pygments.org/docs/formatters/

中的说明使用启用了linenos的pygments