web-dev-qa-db-fra.com

Imprimez le code source d'un tout Java Projet

Je dois imprimer tout le code SourceCode d'un projet Java. La version finale doit ressembler à: Eclipse: fichier -> Imprimer . Mais avec cette fonction, vous ne pouvez imprimer qu'un seul fichier.

Existe-t-il un moyen d'imprimer (ou de créer un PDF/RTF de) l'ensemble du projet (tous * .java, * .xml, ... Fichiers) avec une commande?

Im utilise Eclipse Galileo sur Windows XP SP3


Modifier: Pour chaque classe/fichier, la page doit (plus ou moins) ressemble à ceci:

C:\\\\\\\\\bibliothèqueextractor.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:

  1. tscript (avec cygwin)

  2. java2html Eclipse-plugin (fonctionne uniquement avec Europa)

27
r3zn1k

Si cela ne vous dérange pas d'installer Cygwin ou d'exécution sous Linux, la commande suivante fera ce que vous voulez:

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

Eluscript est un programme de convertir des fichiers texte à divers formats de sortie; PostScript est la valeur par défaut, mais vous pouvez également produire HTML, RTF et quelques autres. Les -r Option dit d'imprimer dans le paysage, -2 est deux colonnes par page (sauver des arbres), --file-align=2 dit que chaque nouveau fichier devrait commencer sur sa propre page physique, --highlight active la surbrillance de la syntaxe spécifique à la langue (il tentera de déterminer la langue, ou vous pouvez spécifier "Java"), --line-numbers Devrait être évident, et -o - envoie la sortie à la standard-out (où il est de la pipi à PS2PDF ).

Trouver génère la liste des fichiers; Ici, je lui dis de trouver tous Java fichiers sous dans le répertoire actuel. La sortie est transmise en tant qu'arguments sur tscript ; pour "50-100 fichiers", vous devriez être correct, mais vous devrez peut-être lire sur Xargs . Vous pouvez vous débarrasser de la -name argument de générer une liste de tous les fichiers ou d'ajouter plusieurs -name arguments pour ajouter plus de types de fichiers à la liste; Je n'irais pas avec l'approche "Tous les fichiers", car vous obtiendrez ensuite des fichiers de contrôle source.

ps2pdf prend la sortie PostScript à partir de tscript et le convertit en PDF, qui Vous pouvez imprimer.

57
kdgregory

Je ne pense pas que vous puissiez faire cela dans Eclipse (bien sûr, vous pouvez écrire un plugin qui le fait).

Si vous utilisez Ant comme outil de construction, vous pouvez utiliser la tâche concat puis imprimer le fichier résultant.

<concat destfile="${concat.src.dir}/concat.txt" force="no">
    <filelist dir="${src.dir}" includes="**/*.Java **/*.xml" />
</concat>
3
jitter

http://sourceforge.net/projects/javasrc2pdf/?source=typ_redirect

Cela crée tous les PDFS et avec une syntaxe raisonnablement bonne mise en évidence, mais elles sont toutes dans des fichiers distincts. Mais il y a beaucoup de façons de combiner les pdfs là-bas

1
Stuart Clark

Si vous voulez le formatage exactement tel qu'il est dans Eclipse, vous devrez probablement imprimer à partir d'Eclipse. Vous passerez plus de temps à essayer de dupliquer le formatage d'impression que vous avez dans Eclipse avec une autre méthode.

Un autre point important: si vous utilisez le pliage dans les éditeurs de texte dans Eclipse, les lignes pliées ne seront pas affichées dans la version imprimée.

Si vous devez vraiment vraiment fournir le code source comme des arbres, je vous suggère que vous essayez de persuader vos clients que la couleur de la couleur et de la syntaxe ne sont pas importantes, puis formatez tout dans Eclipse et imprime ailleurs. Il y a des suggestions pour les numéros de ligne, etc. dans d'autres réponses.

1
Matthew Farwell

Une option qui a l'air d'être fantaisie consiste à utiliser Vim en mode batch pour générer un tas de fichiers HTML colorisés, puis imprimé en les faisant glisser tous sur l'imprimante (je sais que peut être fait, un collègue imprima toute l'API J2se, Et j'espère qu'elle ne l'a pas fait de page par page XD).

find -name "*.Java" -exec vim '+set nu' +TOhtml +wq +q '{}' \;
1
fortran

J'utiliserais des pycments avec des linenos activés comme expliqué dans http://pypgments.org/docs/formatters/

0
Xavier Combelle