如何从JavaDoc生成PDF(包括概述和包摘要)

时间:2010-02-23 21:54:37

标签: java pdf javadoc maven-pdf-plugin

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

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

有谁知道如何让AurigaDoclet重新识别我的非Java文件?或者,另一个是从源代码或JavaDoc生成的HTML生成外观漂亮的PDF?

谢谢!

4 个答案:

答案 0 :(得分:22)

钉了它。在尝试了所有可能的工具直接从源生成之后,我回到了HTMLDOC。它不是JavaDoc感知的,但它构建得非常好,只需进行一些调整就可以生成一个非常实用的PDF。

以下逐步说明我是如何做到的:

  1. 下载该软件的免费版本(官方网站版本需要许可证,但它是GPL版本,因此您可以找到免费的二进制文件,例如this one,这是一个简单实用的安装程序视窗);

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

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

  4. 生成javadoc中所有HTML文件的列表。我用Cygwin的find命令(我的DOS / cmd shell天很久)完成了它,但你可以做任何你想做的事,只要你得到一个文件列表。就我而言,find . | grep html$ | sort -r > files.txt做了伎俩; 对于Windows用户,dir /s/b *.html > files.txt也应该这样做(但请记住,如果下一步显示\,则可能必须将/替换为{{1}}。

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

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

  7. 保存.book文件并在HTMLDOC上重新打开。 Voila:添加和排序所有文件。点击生成。就是这样!

  8. 您可能想要摆弄图像(提示:使用HTML宽度/高度,而不是样式/ css)。最后,生成的文件非常好:外观漂亮,可以完全导航到内部和外部链接。如果您认为该工具根本不是Java(Doc),那就太令人印象深刻......

答案 1 :(得分:2)

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

答案 2 :(得分:2)

如果这个问题无论如何都会被提出,我可以用它来链接我的ltxdoclet项目。

这是从LaTeX格式的源(通过JavaDoc插件)文档创建的,然后您可以通过PdfLaTeX来生成PDF。

可选择它还可以包含漂亮的源代码。

答案 3 :(得分:1)

AurigaDoclet无法处理package.html。 有关修复,请参阅https://sourceforge.net/projects/aurigadoclet/forums/forum/339169/topic/1572199/index/page/1

上的评论