我必须打印java项目的整个源代码。 最终版本应如下所示: Eclipse:文件 - >打印即可。 但是使用此功能,您只能一次打印一个文件。
有没有办法用一个命令打印(或创建一个pdf / rtf)整个项目(所有* .java,*。xml,...文件)?
我在windows xp sp3上使用eclipse galileo
编辑:对于每个类/文件,页面应该(或多或少)如下所示:
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:
答案 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,打开所有文件并打印出来......
关于打印的答案 2 :(得分:6)
答案 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)