一尘不染

打印整个Java项目的源代码

java

我必须打印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


阅读 443

收藏
2020-12-03

共1个答案

一尘不染

如果您不介意安装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参数以将更多文件类型添加到列表;我不会采用“所有文件”方法,因为那样您将获得源代码控制文件。

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

2020-12-03