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

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

以上是 打印整个Java项目的源代码 的全部内容, 来源链接: utcz.com/qa/412252.html

回到顶部