Распечатайте исходный код всего проекта java
Мне нужно распечатать весь исходный код java-проекта.
Окончательная версия должна выглядеть так: Eclipse: File → Print.
Но с помощью этой функции вы можете печатать только один файл одновременно.
Есть ли способ распечатать (или создать pdf/rtf) весь проект (все *.java, *.xml,... файлы) с помощью одной команды?
Im, использующий eclipse galileo на окнах xp sp3
EDIT: Для каждого класса/файла страница должна (более или менее) выглядеть следующим образом:
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
РЕШЕНИЕ:
Ответы
Ответ 1
Если вы не возражаете при установке 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 -
отправляет вывод в стандартную версию (где он передан в ps2pdf).
find генерирует список файлов; здесь я говорю, чтобы найти все файлы Java в текущем каталоге. Выход передается в качестве аргументов для форматирования; для "50-100 файлов" вы должны быть в порядке, но вам может потребоваться прочитать о xargs. Вы можете избавиться от аргумента -name
для создания списка всех файлов или добавить несколько аргументов -name
, чтобы добавить в список больше типов файлов; Я бы не пошел с подходом "все файлы", потому что тогда вы получите исходные файлы управления.
ps2pdf выводит текст PostScript и преобразует его в PDF, который вы можете распечатать.
Ответ 2
Если вы можете позволить себе потратить $50 купить Ultraedit, откройте все файлы и распечатайте их...
Возможности Ultraedit о печати включают в себя:
- Предварительный просмотр
- Номера строк печати
- Команда печати не печатает скрытые строки
- Верхние и нижние колонтитулы (с командами выравнивания), поля и разрывы страниц
- Печать подсветки синтаксиса в цвете
- Печать 2 страниц на одном листе в альбомных или портретных режимах
- Отдельный выбор шрифта для отображения и принтера (поддерживает все шрифты, включая шрифты True Type)
- Печать всех открытых файлов
Ответ 3
Я использовал Java2Html из Eclipse в прошлом. Посмотрите, подходит ли оно вашим потребностям.
Ответ 4
Я не думаю, что вы можете сделать это в Eclipse (конечно, вы могли бы написать плагин, который делает это).
Если вы используете Ant в качестве инструмента сборки, вы можете использовать задачу concat
, а затем распечатать полученный файл
<concat destfile="${concat.src.dir}/concat.txt" force="no">
<filelist dir="${src.dir}" includes="**/*.java **/*.xml" />
</concat>
Ответ 5
Необязательный вариант - использовать vim в пакетном режиме для создания набора цветных HTML файлов, а затем распечатать, перетащив все их на принтер (я знаю, что это можно сделать, некоторое время назад коллега напечатал весь J2SE API, и я надеюсь, что она не стала страницей xD).
find -name "*.java" -exec vim '+set nu' +TOhtml +wq +q '{}' \;
Ответ 6
Если вы хотите форматировать точно так же, как в Eclipse, вам, вероятно, придется печатать из Eclipse. Вы потратите больше времени, пытаясь дублировать форматирование печати, которое у вас есть в Eclipse, с помощью другого метода.
Еще один важный момент: если вы используете фальцовку в текстовых редакторах в Eclipse, тогда сложенные строки не будут отображаться в печатной версии.
Если вам действительно нужно предоставить исходный код как деревья, я бы предложил вам попробовать и убедить своих клиентов, что подсветка цвета и синтаксиса не важна, а затем отформатируйте все в Eclipse и распечатайте в другом месте. В других ответах есть предложения по номерам строк и т.д.
Ответ 7
http://sourceforge.net/projects/javasrc2pdf/?source=typ_redirect
Это создает все PDF файлы и с достаточно хорошей подсветкой синтаксиса, но все они находятся в отдельных файлах. Но есть много способов объединить pdf файлы там
Ответ 8
Я использовал бы pygments с linenos, как описано в http://pygments.org/docs/formatters/