2010-02-23 17 views
19

He escrito una extensa documentación JavaDoc en mi aplicación y he agregado mucha información útil en overview.html y package.html (incluyendo enlaces en el primero a ilustraciones en doc-files/). El plugin Javadoc de Maven utiliza muy bien la herramienta javadoc estándar para generar el conjunto de marcos JavaDoc clásico, pero ahora necesito generar un PDF con toda la documentación.Cómo generar un PDF desde JavaDoc (incluyendo visión general y resúmenes de paquetes)

AurigaDoclet genera archivos PDF muy bonitos, y pude hacer que DocFlex también funcionara. Sin embargo, ambos ignoran mis archivos overview.html y package.html (probados tanto dentro como fuera de Maven: el PDF será una sola cosa, ya que prefiero los HTML a largo plazo).

¿Alguien sabe cómo hacer que AurigaDoclet reconozca mis archivos que no son de Java? ¿O, alternativamente, otro para generar un PDF de aspecto decente desde el código fuente o el HTML generado por JavaDoc?

¡Gracias!

Respuesta

22

Nailed it. Después de probar todas las herramientas posibles para generar directamente desde la fuente, volví al HTMLDOC. No es JavaDoc-aware, pero está tan bien construido que algunos ajustes son suficientes para que genere un PDF bastante útil.

Aquí va una descripción paso a paso de cómo lo hice:

  1. Descargar una versión gratuita del software (la versión oficial sitio requiere una licencia, pero es GPL-ed, por lo que puede encontrar binarios gratuitos como this one, que es un instalador simple y funcional para Windows);

  2. Genere sus documentos HTML tradicionales de la forma que prefiera (Ant, Maven, línea de comandos javadoc - su elección);

  3. La GUI es agradable, pero agregar todos los archivos manualmente puede ser engorroso, así que simplemente cree un archivo .book con Tipo de documento configurado en "Página web", agregue uno de los archivos HTML de la carpeta raíz de javadoc generada (ej. , overview-summary.html, cualquiera lo hará, solo como referencia en el paso 5). En la pestaña Salida, seleccione el formato PDF y establezca un nombre para él, y agregue otras opciones al contenido de su corazón (logotipos, colores, muchas cosas interesantes aquí). Guarde este proyecto (por ejemplo, myjavadocpdf.book) y cierre la GUI

  4. Genere una lista de todos los archivos HTML en su javadoc. Lo hice con el comando de búsqueda Cygwin (mis días de shell de DOS/cmd ya pasaron), pero puede hacer lo que quiera, siempre que obtenga una lista de archivos. En mi caso, un find . | grep html$ | sort -r > files.txt hizo el truco; Para usuarios de Windows, dir /s/b *.html > files.txt debe hacer lo mismo (pero tenga en cuenta que es posible que tenga que reemplazar \ s con / s si aparecen así en el siguiente paso).

  5. Abrir el archivo .book generada en el paso 3 en su editor de texto favorito pura (como programador debería tener fuertes opiniones sobre eso, así que va a mantener mis opiniones - NOT ;-)) y anexar la lista generada en el paso 4 de este archivo .book (mantiene la lista de archivos al final, haciendo la vida realmente fácil).No olvide corregir las rutas relativas, si es necesario con una búsqueda/reemplazo global (es por eso que necesitaba al menos un archivo agregado en el paso 3 para ver qué patrón de ruta de archivo htmldoc espera);

  6. Ahora debe ordenar los archivos en un orden conveniente. Primero pongo mi visión general, luego las descripciones de los paquetes y cada clase, luego el índice completo y todo lo demás al final. Recuerde que cualquier archivo que elimine se convertirá en un enlace externo (por lo tanto, no funcionará), así que elija sabiamente;

  7. Guarde su archivo .book y vuelva a abrirlo en HTMLDOC. Voila: todos los archivos agregados y clasificados. Haga clic en generar. ¡Eso es!

Es posible que desee juguetear con las imágenes (sugerencia: utilice HTML ancho/alto, no estilo/css). Al final, el archivo resultante es sorprendentemente bueno: atractivo y totalmente navegable para enlaces internos y externos. Impresionante cuando considera que la herramienta no es compatible con Java (Doc) ...

+3

para aquellos en Mac OS, un paquete puede descargarse de http://code.google.com/p/ rudix/wiki/htmldoc. No tiene GUI, por lo que deberá encontrar un [ejemplo de archivo .book] (http://sunsite.ualberta.ca/Documentation/Misc/htmldoc-1.8.23/htmldoc.book) y modificarlo. Luego use el comando 'htmldoc --batch htmldoc.book' para generar el pdf – emerix

+2

FYI fue capaz de encontrar el binario de la versión mac aquí: http://rudix.org/packages/htmldoc.html notar que tiene una GUI en Yosemite –

+1

el procedimiento sugerido funciona bastante bien en windows, pero tuve que reemplazar todos los caracteres "\" por "/" en la lista generada que inserté dentro del archivo .book – jmd

2

De acuerdo con las preguntas frecuentes de Sun JavaDoc, hay un par de opciones, en su mayoría gratuitas, con una o dos ofertas comerciales también. Échale un vistazo al http://java.sun.com/j2se/javadoc/faq/index.html#print.

+1

De esa página probé el Doclet MIF (no compatible con las anotaciones), html2ps (casi imposible hacer trabajo en Windows, que es lo que estoy atrapado en el extranjero en este momento) y HTMLDOC (que requiere comprar o una compilación que no tuvo éxito en mi primer intento). Todavía tengo que comprobar PDFDoclet, pero decidí preguntar aquí primero para estar seguro (después de todo, dos doclets que no hacen exactamente lo mismo pueden detectar algo obvio que puede faltar, parámetro/setup-wise). ¿Ha usado usted (o alguien) anteriormente en tales condiciones? ¡Gracias! – chesterbr

+0

Desafortunadamente, no, no lo he hecho. Estoy trabajando con un equipo lo suficientemente pequeño en este momento que no hay mucho beneficio para imprimir los documentos, y el código aún es lo suficientemente nuevo como para que una copia impresa del los documentos quedarían obsoletos en un par de semanas de todos modos. – MCory

+0

Sí, estoy totalmente de acuerdo: el valor real de la mayoría de los JavaDocs es su característica "en vivo". Pero esta fue una solicitud externa ...: -/ – chesterbr

2

Si esta pregunta fue golpeada de todos modos, puedo usar esto para vincular mi proyecto ltxdoclet.

Esto crea desde la fuente (por ser un plugin de JavaDoc) documentación en formato LaTeX, que luego puede pasar a través de PdfLaTeX para producir un PDF.

Opcionalmente también puede incluir código fuente bastante impreso.

Cuestiones relacionadas