Распечатайте исходный код целого проекта Java

Я должен распечатать целый исходный код проекта Java. Окончательная версия должна быть похожей: Eclipse: Файл-> Печать. Но с этой функцией можно только распечатать один файл сразу.

Существует ли способ распечатать (или создать pdf/rtf) целый проект (весь *.java, *.xml... файлы) с одной командой?

Я использую затмение galileo на Windows XP sp3


Править: Для каждого класса/файла страница должна (более или менее) быть похожей на это:

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. enscript (с Cygwin)

  2. Плагин Eclipse Java2Html (только работает с Европой),

27
задан Community 23 May 2017 в 11:55
поделиться

7 ответов

Если вы не возражаете против установки 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 - посылает вывод в режим Standard-out (где он передается в ps2pdf).

find генерирует список файлов; здесь я говорю ему найти все Java-файлы в текущем каталоге. Вывод передается в качестве аргументов в enscript; для "50-100 файлов" вы должны быть в порядке, но вам может понадобиться прочитать о xargs. Вы можете избавиться от аргумента -name, чтобы сгенерировать список всех файлов, или добавить несколько аргументов -name, чтобы добавить больше типов файлов в список; я бы не стал использовать подход "все файлы", потому что тогда вы получите файлы с управлением исходным кодом.

ps2pdf берет вывод PostScript из enscript и преобразует его в PDF, который вы можете распечатать.

.
58
ответ дан 28 November 2019 в 04:25
поделиться

Я не думаю, что вы можете сделать это в Eclipse (конечно, вы можете написать плагин, который сделает это).

Если вы используете Ant в качестве инструмента сборки, вы можете использовать concat и затем распечатайте получившийся файл

<concat destfile="${concat.src.dir}/concat.txt" force="no">
    <filelist dir="${src.dir}" includes="**/*.java **/*.xml" />
</concat>
3
ответ дан 28 November 2019 в 04:25
поделиться

Если вы хотите, чтобы форматирование было точно таким же, как в Eclipse, то вам, вероятно, придется распечатать из Eclipse. Вы потратите больше времени, пытаясь дублировать форматирование, которое у вас есть в Eclipse, другим способом.

Другой важный момент: если вы используете фальцовку в текстовых редакторах в Eclipse, то сложенные строки не будут отображаться в печатной версии.

Если вам действительно нужно представить исходный код в виде деревьев, то я бы посоветовал вам попытаться убедить ваших клиентов, что цвет и подсветка синтаксиса не важны, а затем отформатировать все в Eclipse, и печатать откуда угодно. Есть предложения по номерам строк и т.д. в других ответах

.
1
ответ дан 28 November 2019 в 04:25
поделиться

Если вы можете позволить себе потратить 50 долларов, купите Ultraedit, откройте все файлы и распечатайте...

Ультраредактированные функции о печати включает в себя:

  • Предварительный просмотр печати
  • Печать номеров строк
  • Команда печати не печатает скрытые строки
  • Заголовки/ножки (с командами выравнивания), marginins and page breaks
  • Печать подсветки синтаксиса цветом
  • Печать 2 страниц на одном листе в альбомном или книжном режиме
  • Раздельный выбор шрифта для отображения и принтера (поддерживаются все установленные шрифты, включая шрифты True Type)
  • Печать всех открытых файлов
6
ответ дан 28 November 2019 в 04:25
поделиться

Вариант, который выглядит причудливым, это использовать vim в пакетном режиме для генерации кучи цветных HTML-файлов, а затем печатать, перетаскивая их все на принтер (я знаю, что это можно сделать, некоторое время назад коллега распечатала весь J2SE API, и я надеюсь, что она не распечатала его страницей за страницей xD).

find -name "*.java" -exec vim '+set nu' +TOhtml +wq +q '{}' \;
1
ответ дан 28 November 2019 в 04:25
поделиться

Я бы использовал пигменты с включенным белье, как описано в http://pygments.org/docs/formatters/

0
ответ дан 28 November 2019 в 04:25
поделиться

Я использовал java2html из Eclipse в прошлом. Посмотрите, подходит ли это ваши потребности.

6
ответ дан 28 November 2019 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: