25

我已经为我的应用程序编写了大量的 JavaDoc 文档,并在文件overview.htmlpackage.html文件中添加了许多有用的信息(包括前者的链接到 中的插图doc-files/)。Maven 的 Javadoc 插件很好地使用标准的 javadoc 工具来生成经典的 JavaDoc 框架集,但现在我需要生成包含整个文档的 PDF。

AurigaDoclet生成非常漂亮的 PDF,而且我也能够使DocFlex工作。但是,两者都忽略了我的overview.htmlpackage.html文件(在 Maven 内部和外部都尝试过——PDF 将是一次性的,因为从长远来看,我宁愿拥有 HTML)。

有谁知道如何让 AurigaDoclet 识别我的非 Java 文件?或者,另一种方法是从源代码或 JavaDoc 生成的 HTML 生成看起来不错的 PDF?

4

4 回答 4

23

搞定了。在尝试了所有可能的直接从源代码生成的工具之后,我回到了HTMLDOC。它不是 JavaDoc 感知的,但它构建得非常好,一些调整就足以使它生成一个非常有用的 PDF。

以下是我如何做到这一点的分步描述:

  1. 在发布页面下载软件;

  2. 以您喜欢的方式生成您的传统 HTML 文档(Ant、Maven、命令行 javadoc - 您的选择);

  3. GUI 很好,但是手动添加所有文件可能很麻烦,所以只需创建一个文档类型设置为“Web Page”的 .book 文件,从生成的 javadoc 的根文件夹中添加一个 HTML 文件(例如,overview-summary.txt)。 html,任何人都会做,这只是在第5步的参考)。在“输出”选项卡上选择 PDF 格式并为其设置名称,并为您的内容添加其他选项(徽标、颜色、这里有很多很酷的东西)。保存这个项目(比如,myjavadocpdf.book)并关闭 GUI

  4. 在您的 javadoc 中生成所有 HTML 文件的列表。我是用Cygwin的 find 命令完成的(我的 DOS/cmd shell 时代已经结束了),但只要你得到一个文件列表,你就可以做任何你想做的事情。就我而言, afind . | grep html$ | sort -r > files.txt成功了;对于 Windows 用户,dir /s/b *.html > files.txt也应该这样做(但请记住,如果它们在下一步中出现,您可能必须将\s替换为 s)。/

  5. 在您最喜欢的纯文本编辑器中打开在步骤 3 中生成的 .book 文件(作为程序员,您应该对此有强烈的意见,所以将我的意见保留给自己 -不是;-))并将在步骤 4 中生成的列表附加到此.book 文件(它在末尾保留文件列表,让生活变得非常轻松)。不要忘记修复相对路径,如果需要,使用全局搜索/替换(这就是为什么您需要在步骤 3 中添加至少一个文件 - 以查看 htmldoc 期望的文件路径模式);

  6. 现在您应该以方便的顺序对文件进行排序。我把我的概述放在第一位,然后是包描述和每个类,然后是完整的索引,最后是其他所有内容。请记住,您删除的任何文件都将成为外部(因此损坏)链接,因此请明智地选择;

  7. Save your .book file and re-open it on HTMLDOC. Voila: all files added and sorted. Click on generate. That's it!

You may want to fiddle with images (hint: use HTML width/height, not style/css). In the end, the resulting file is surprisingly good: nice looking and fully navigable for internal and external links. Impressive when you consider that the tool is not Java(Doc) aware at all...

EDIT: software is now free from original author; updated links, thank you @mohammed

于 2010-02-24T07:24:45.447 回答
2

根据 Sun JavaDoc 常见问题解答,有几个选项——大部分是免费的,也有一两个商业产品。在http://java.sun.com/j2se/javadoc/faq/index.html#print查看。

于 2010-02-23T22:32:34.370 回答
2

AurigaDoclet fails to process package.html. For a fix see my comment at https://sourceforge.net/projects/aurigadoclet/forums/forum/339169/topic/1572199/index/page/1

于 2011-08-30T11:49:44.940 回答
2

If this question was bumped anyways, I can use this to link my ltxdoclet project.

This creates from the source (by being a JavaDoc plugin) documentation in LaTeX format, which you then can pass through PdfLaTeX to produce a PDF.

Optionally it also can include pretty-printed source code.

于 2011-08-30T15:26:40.073 回答