java - 打印整个java项目的源代码

标签 java eclipse printing

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

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

  2. Java2Html Eclipse 插件(仅限 与欧罗巴合作)

最佳答案

如果您不介意安装 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 - 将输出发送到标准输出(通过管道传输到 ps2pdf)。

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

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

关于java - 打印整个java项目的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1921178/

相关文章:

java - 找不到构建路径错误的具体原因(Eclipse)

python - 使用 Python 从数组中打印 N 次

python - MongoDB 使用 PyMongo 打印漂亮

java - 如何使用 itext 7 设置自定义颜色

java - 在路径中找不到 Eclipse 错误 'g++/gcc'

java - 如何使用此 Groovy 代码从 Groovy 类获取数据源连接?

java - 内存不足

css - 使用 :target pseudo-class 时出现打印问题

java - java中的字节数组

java - 忽略 EclEmma 中单元测试的代码覆盖率