打印整个Java项目的源代码
我必须打印Java项目的整个源代码。最终版本应如下所示: 。但是使用此功能,您一次只能打印一个文件。
有没有一种方法可以使用一个命令打印(或创建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
回答:
如果您不介意安装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表示每个新文件应在其自己的物理页上开始,--highlight
打开特定于语言的语法突出显示(它将尝试找出该语言,或者可以指定“
java”),--line-numbers
应该很明显,然后-o -
将输出发送到standard-out(通过管道将其输出到 ps2pdf )。
find 生成文件列表;在这里,我告诉它在当前目录下找到所有Java文件。输出作为参数传递给 enscript ; 对于“
50-100个文件”,您应该可以,但可能需要阅读有关 xargs的信息
。您可以删除-name
参数以生成所有文件的列表,或者添加多个-name
参数以将更多文件类型添加到列表;我不会采用“所有文件”方法,因为那样您将获得源代码控制文件。
ps2pdf 从 enscript 获取PostScript输出,并将其转换为PDF,然后可以打印。
以上是 打印整个Java项目的源代码 的全部内容, 来源链接: utcz.com/qa/412252.html