Print the sourcecode of a whole java project

后端 未结 8 1444
栀梦
栀梦 2021-01-30 02:23

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 on

相关标签:
8条回答
  • 2021-01-30 02:58

    An option that looks fancy is to use vim in batch mode to generate a bunch of colorized HTML files and then print by dragging all of them to the printer (I know that can be done, some time ago a colleague printed the whole J2SE API, and I hope she didn't it page by page xD).

    find -name "*.java" -exec vim '+set nu' +TOhtml +wq +q '{}' \;
    
    0 讨论(0)
  • 2021-01-30 03:01

    I would use pygments with linenos enabled as explained in http://pygments.org/docs/formatters/

    0 讨论(0)
  • 2021-01-30 03:05

    I've used Java2Html from Eclipse in the past. See whether it suits your needs.

    0 讨论(0)
  • 2021-01-30 03:06

    If you don't mind installing Cygwin, or running on Linux, the following command will do what you want:

    enscript -r -2 --file-align=2 --highlight --line-numbers -o - `find . -name '*.java'` | ps2pdf - files.pdf
    

    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 -r option says to print in landscape, -2 is two columns per page (save trees), --file-align=2 says that each new file should start on its own physical page, --highlight turns on language-specific syntax highlighting (it will try to figure out the language, or you can specify "java"), --line-numbers should 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 -name argument to generate a list of all files, or add multiple -name arguments 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.

    0 讨论(0)
  • 2021-01-30 03:08

    If you can afford spending $50 buy Ultraedit, open all files and print it...

    Ultraedit features about printing includes:

    • Print preview
    • Print line numbers
    • Print command doesn't print hidden lines
    • Headers/footers (with alignment commands), margins and page breaks
    • Printing of syntax highlighting in color
    • Print 2 pages on one sheet in landscape or portrait modes
    • Separate font selection for display and printer (supports all fonts installed including True Type fonts)
    • Print all open files
    0 讨论(0)
  • 2021-01-30 03:12

    I don't think you can do this within Eclipse (of course you could write a plugin which does this).

    If you use Ant as your build tool you could use the concat task and then print the resulting file

    <concat destfile="${concat.src.dir}/concat.txt" force="no">
        <filelist dir="${src.dir}" includes="**/*.java **/*.xml" />
    </concat>
    
    0 讨论(0)
提交回复
热议问题