Java Code formatiert drucken

flossy

Mitglied
Hallo Zusammen,
ich möchte gerne meinen Java-Code für eine Review in einer sauberen Form ausdrucken. Hierzu suche ich ein Tool/Editor, welches/welcher Folgendes für das Drucken unterstützt:
  • Schriftgröße einstellbar
  • Rand (für Kommentare),
  • Kopfzeile ( Dateiname, Version, Datum )
  • Syntax-Highlighting in Farbe
  • unter Linux ausführbar
Oder habt ihr eine Idee, wie dies mit Eclipse geschehen kann?
 
dies wäre mal ein Anfang, aber nicht wirklich befriedigend:
Code:
enscript --color --style=a2ps -toc  -G -C -h --language=PostScript -Ejava -f Courier8 -F Verdana12 -j -p out.ps MyClass.java

UPDATE: So, habe noch nen kleines Script dazu erstellt:
Code:
#!/bin/sh
MIMETYPE="text/x-java"
SUBDIR=PS-Files/

mkdir $SUBDIR

ls | while read FILE
  do
    # check if it is a Java file
    if [ "`file -b --mime-type "$FILE"`" = $MIMETYPE ]; then
	`enscript --color --style=a2ps -toc  -G -C -h --language=PostScript -Ejava -f Courier8 -F Verdana12 -j -p $SUBDIR/$FILE.ps $FILE`
#    	`enscript -toc -G -C -h --language=PostScript -Ejava -f Courier8 -F Verdana12 -j -p $SUBDIR/$FILE.ps $FILE`
    fi    
  done
 
Zuletzt bearbeitet:
...so, nachdem ich so reichlich viele Vorschläge bekommen habe, möchte ich hier kurz meinen zweiten abgeben ;-)

Man nehme ein wenig LaTeX ...
Code:
\documentclass[a4paper,10pt,onepage]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8x]{inputenc}
\setcounter{secnumdepth}{0}

% ---------------------- COLOR -------------------- %
\usepackage{color}
\definecolor{darkgray}{rgb}{0.3,0.3,0.3}
\definecolor{middlegray}{rgb}{0.5,0.5,0.5}
\definecolor{lightgray}{rgb}{0.7,0.7,0.7}
\definecolor{green}{rgb}{0.1,0.6,0.2}

% ------------------- LISTINGS -------------------- %
\usepackage{listings}
% ---------------  BEGIN WORKAROUND --------------- %
% for lstlistoflistings 
% see: http://www.komascript.de/node/477
\makeatletter% --> De-TeX-FAQ
\renewcommand*{\lstlistoflistings}{%
  \begingroup
  \if@twocolumn
  \@restonecoltrue\onecolumn
  \else
  \@restonecolfalse
  \fi
  \lol@heading
  \setlength{\parskip}{\z@}%
  \setlength{\parindent}{\z@}%
  \setlength{\parfillskip}{\z@ \@plus 1fil}%
  \@starttoc{lol}%
  \if@restonecol\twocolumn\fi
  \endgroup
}
\makeatother% --> \makeatletter
% ----------------  END WORKAROUND ----------------- %
% ---------------  LISTINGS VALUES ----------------- %
\lstset{
  language=Java,
  numbers=left, 
  numberstyle=\tiny,
  breaklines=true,
  numberblanklines=true,		  
  frame=tlrb,
  showtabs=false,
  %showspace=false,
  showstringspaces=false,
  %backgroundcolor=\color{yellow},
  basicstyle=\sffamily\fontsize{6}{7}\selectfont,
  identifierstyle=\color{green}, 
  stringstyle=\color{blue},
  commentstyle=\color{middlegray},
  keywordstyle=\color{black}\bfseries,                  
  emphstyle=\color{green},
 % caption={BasicHeaderImpl.java},
  captionpos=t
}

% page margings etc.
\usepackage{geometry}
\geometry{verbose,textwidth=16cm, outer=3cm}

% opening
\title{Code-Review}
\author{flossy}

\begin{document}
  \maketitle
  \tableofcontents

  \chapter{my.java.package.*}
  \input{listings.tex}

  %\addcontentsline{toc}{chapter}{Listings}
  %\lstlistoflistings

\end{document}

..und generiere hierzu die Listings mit einem Script:
Code:
#!/bin/sh

MIMETYPE="text/x-java";
SUBDIR="TEX-Files";
POSTFIX="-listing.tex";
LISTING_FILENAME="listings.tex";

rm $LISTING_FILENAME;
mkdir $SUBDIR;

ls | while read FILE
  do
    # check if it is a Java file
    if [ "`file -b --mime-type "$FILE"`" = $MIMETYPE ]; then
	# create file
	echo '\\newpage \section{'$FILE"} \lstinputlisting{$FILE}" > $SUBDIR/$FILE$POSTFIX;
	# add as input
	echo "\input{$SUBDIR/$FILE$POSTFIX}" >> $LISTING_FILENAME;
    fi    
  done
...und schon bekommt man ein schönes Dokument 🙂

Vielen Dank für's Zuhören. Weitere Alternativen sind jedoch weiterhin herzlich willkommen!
 
In deinem zweiten Shellscript ist ein Fehler:

Code:
echo '\\newpage \section{'$FILE"} \lstinputlisting{$FILE}" > $SUBDIR/$FILE$POSTFIX;
Bei
Code:
newpage
kommt nur ein Slash hin...

Ansonsten kann ich dir
Code:
gedit
empfehlen. Der Editor besitzt viele Einstellmöglichkeiten zum Drucken und entspricht bis auf den Rand auch all deinen Anforderungen. Aber Kommentare kann man sowieso überall hinschreiben, vorzugsweise ja in den Quelltext.
 
In deinem zweiten Shellscript ist ein Fehler:
Code:
echo '\\newpage \section{'$FILE"} \lstinputlisting{$FILE}" > $SUBDIR/$FILE$POSTFIX;
Bei
Code:
newpage
kommt nur ein Slash hin...
Wenn ich das Script mit nur einem Slash ausführe, dann bekommen ich durch \n einen Zeilenumbruch anstatt ein Backslash. Durch ein vorangehendes Backslash wird das zweite als Zeichen interpretiert. Fall dies bei dir anders sein sollte, wäre es interessant 🙂

Ansonsten kann ich dir
Code:
gedit
empfehlen. Der Editor besitzt viele Einstellmöglichkeiten zum Drucken und entspricht bis auf den Rand auch all deinen Anforderungen.
Stimmt, das sieht nach einer relativ einfachen Lösung aus. Danke!

Aber Kommentare kann man sowieso überall hinschreiben, vorzugsweise ja in den Quelltext.
Hmm, naja, kurze Kommentare schon, doch etwas längere sollten am rechten Rand platziert werden.
 
Meine Shell (zsh) sieht \n offenbar nicht als EOL-Zeichen. Keine Ahnung warum, hab das aber nie gebraucht, weshalb mir das nicht aufgefallen ist. Dann schau ich gleich mal ob man das ändern kann...
 

Zurück
Oben