r3z*_*n1k 27 java eclipse printing
我必须打印java项目的整个源代码.最终版本应如下所示:Eclipse:File - > Print.但使用此功能,您只能一次打印一个文件.
有没有办法用一个命令打印(或创建一个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
Run Code Online (Sandbox Code Playgroud)
解:
kdg*_*ory 58
如果您不介意安装Cygwin或在Linux上运行,以下命令将执行您想要的操作:
enscript -r -2 --file-align=2 --highlight --line-numbers -o - `find . -name '*.java'` | ps2pdf - files.pdf
Run Code Online (Sandbox Code Playgroud)
enscript是一个将文本文件转换为各种输出格式的程序; PostScript是默认设置,但您也可以生成HTML,RTF和其他一些内容.该-r
选项表示以横向打印,-2
每页两列(保存树),--file-align=2
表示每个新文件应从其自己的物理页面开始,--highlight
打开特定于语言的语法突出显示(它将尝试找出语言,或者您可以指定"java"),--line-numbers
应该很明显,-o -
并将输出发送到标准输出(它通过管道输出到ps2pdf).
find生成文件列表; 在这里,我告诉它在当前目录下找到所有Java文件.输出作为参数传递给enscript ; 对于"50-100个文件",你应该没问题,但你可能需要阅读有关xargs的内容.您可以删除-name
参数以生成所有文件的列表,或添加多个-name
参数以将更多文件类型添加到列表中; 我不会使用"所有文件"方法,因为那样你将获得源代码控制文件.
ps2pdf从enscript获取PostScript输出并将其转换为PDF,您可以打印.
如果你能花费50美元购买Ultraedit,打开所有文件并打印出来......
关于打印的Ultraedit功能包括: