site to generate all the xdocs files and the image ressources.pdf target to generate the pdf documentation for your project.To automate the pdf creation you can add a post goal to the site like this :
<postGoal name="site"> <attainGoal name="pdf"/> </postGoal>
To generate a PDF from documentations defined in several sub-projects, you must copy all the xdocs files from these projects.
Here is an example on how to do it :
<attainGoal name="multiproject:site"/>
<maven:reactor
basedir="${basedir}"
postProcessing="true"
includes="**/project.xml"
collectOnly="true"
ignoreFailures="false"
collectionVar="multiprojects"/>
<!-- We copy the generated files to use them in the pdf -->
<j:forEach var="reactorProject" items="${multiprojects}">
<j:set var="fromDir" value="${reactorProject.context.getVariable('maven.gen.docs')}"/>
<ant:copy todir="${maven.build.dir}/pdf/${maven.multiproject.aggregateDir}${reactorProject.artifactId}">
<ant:fileset dir="${fromDir}" force="true">
<ant:include name="**/*.*"/>
</ant:fileset>
</ant:copy>
</j:forEach>
<attainGoal name="pdf"/>
You can also createa dynamic menu using Velocity macro in your navigation.xml file. For example :
<project name="$pom.name">
<body>
<links/>
<menu name="Overview">
#if ($overviewPageCreate == "true" )
<item name="${overviewPageLinkTitle}" href="${overviewPageLink}.html"/>
#end
</menu>
<menu name="Sub-Projects">
#foreach ($reactorProject in $multiprojects)
<item name="$reactorProject.name" href="/${aggregateDir}${reactorProject.artifactId}/index.html"/>
<item name="$reactorProject.name test" href="/${aggregateDir}${reactorProject.artifactId}/test.html"/>
#end
</menu>
</body>
</project>
You can use images types that FOP can use.
The table below summarizes the theoretical support for graphical formats within FOP.
| Format | Type | Support Thru |
|---|---|---|
| BMP (Microsoft Windows Bitmap) | bitmap | FOP native |
| EPS (Encapsulated PostScript) | metafile (both bitmap and vector), probably most frequently used for vector drawings | FOP native (limited support, see restrictions below) |
| GIF (Graphics Interchange Format) | bitmap | FOP native |
| JPEG (Joint Photographic Experts Group) | bitmap | FOP native |
| PNG (Portable Network Graphic) | bitmap | JIMI (using the property "maven.jar.jimi") or JAI (using properties "maven.jar.jaicore" and "maven.jar.jaicodec") |
| SVG (Scalable Vector Graphics) | vector (with embedded bitmaps) | Batik |
| TIFF (Tag Image Format File) | bitmap | FOP native or JAI (using properties "maven.jar.jaicore" and "maven.jar.jaicodec"), depending on the subformat. See TIFF for more details.(JIMI also supports TIFF, but this has not been implemented within FOP). |
You must download and put somewhere on your disk JAI or JIMI (on your repository is a good place for it).
Then you must register the one you installed with for JIMI :
maven.jar.jimi=${maven.repo.local}/jimi/jars/jimi-X.Y.Z.jarOr for JAI :
maven.jar.jaicore=${maven.repo.local}/jai/jars/jai_core-X.Y.Z.jar
maven.jar.jaicodec=${maven.repo.local}/jai/jars/jai_codec-X.Y.Z.jar