打印整个java项目的源代码

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

有没有办法用一个命令打印(或创建一个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 

解:

  1. 随后 (与Cygwin)

  2. Java2Html Eclipse-Plugin(仅适用于Europa)

如果您不介意安装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 file --file-align=2表示每个新文件应在其自己的物理页面上启动, – --highlight特定语言语法高亮(它将尝试找出语言,或者您可以指定“java”), – --line-numbers应该是显而易见的,并且-o -将输出发送到标准输出(它通过管道输出到ps2pdf )。

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

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

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

Ultraedit打印function包括:

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

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

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

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

    

一个看起来很花哨的选项是在批处理模式下使用vim来生成一堆彩色HTML文件,然后通过将它们全部拖到打印机进行打印(我知道可以完成,前段时间一位同事打印了整个J2SE API,我希望她不会逐页xD)。

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

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

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

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

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

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

我将使用启用了linenos的pygments,如http://pygments.org/docs/formatters/中所述