I have to print the whole sourcecode of a java-project.
The final version should look like: Eclipse: File -> Print.
But with this function you can only print one file at once.
Is there a way to print (or create a pdf/rtf of) the whole project (all *.java, *.xml, … files) with one command?
Im using eclipse galileo on windows xp sp3
EDIT: For each class/file the page should (more or less) look like this:
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
SOLUTION:
If you don’t mind installing Cygwin, or running on Linux, the following command will do what you want:
enscript is a program for converting text files to a variety of output formats; PostScript is the default, but you can also produce HTML, RTF, and a few others. The
-roption says to print in landscape,-2is two columns per page (save trees),--file-align=2says that each new file should start on its own physical page,--highlightturns on language-specific syntax highlighting (it will try to figure out the language, or you can specify “java”),--line-numbersshould be obvious, and-o -sends the output to standard-out (where it’s piped to ps2pdf).find generates the list of files; here I’m telling it to find all Java files under in the current directory. The output is passed as arguments to enscript; for “50-100 files” you should be OK, but you might need to read about xargs. You could get rid of the
-nameargument to generate a list of all files, or add multiple-namearguments to add more file types to the list; I wouldn’t go with the “all files” approach, because then you’ll get source-control files.ps2pdf takes the PostScript output from enscript and converts it to PDF, which you can print.