
Folks, I've been working on improving our ability to generate PDF's from Quickbook/Docbook source using a "torture-test" consisting of a subset of the Math lib docs. I have some questions/feedback required, but first some observations: FO Generators: ~~~~~~~~~~~~~~ I've tried three FO processors: Apache FOP-0.23: lot's of flow control issues, and SVG rendering problems. Don't use unless you have to. Apache FOP-0.93 (latest stable release): Some flow control issues, but hugely improved compared to 0.23. Doesn't render symbol characters (Greek characters for example) correctly without manually editing the FO output. XEP from RenderX (www.renderx.com): Everything I've tried just plain works first time. It's command line compatible with FOP so it fit's into Boost.Build with just a trivial change to your user_config.jam. Only downside is that it's a commercial product and the free personal edition puts a small logo at the bottom of each page. Test outputs from each can be found in the vault: http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=PDF%20Test Improving Our Stylesheets ~~~~~~~~~~~~~~~~~~~~~~~~~ I've made some changes (not committed yet) to our fo.xsl stylesheet to: * Syntax highlight C++ code. * Put a box around code blocks and admonishments. * Improve the appearance of tables. * Added some keep-together instructions to improve flow-control around tables/code/admonishments. I've tried to mimic our HTML stylesheets as far possible, and the effects can be seen in the test PDF's. The Questions: ~~~~~~~~~~~~~~ 1) How do folks feel about the look and feel of these: are these heading in the right direction? 2) Do we want a consistent look/feel across all Boost-PDF's? If yes, is it OK to commit the stylesheet changes (diff's attached)? 3) Many of the page layout options (margins etc) I'm using are expressed as xsl-params in my Jamfile, should these be in the fo.xsl as well? Currently I have: # PDF Options: # TOC Generation: this is needed for FOP-0.9 and later: # <xsl:param>fop1.extensions=1 # TOC for XEP only: <xsl:param>xep.extensions=1 # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9 or XEP! <xsl:param>fop.extensions=0 # No indent on body text: <xsl:param>body.start.indent=0pt # Margin size: <xsl:param>page.margin.inner=0.5in # Margin size: <xsl:param>page.margin.outer=0.5in # Yes, we want graphics for admonishments: <xsl:param>admon.graphics=1 # Set this one for PDF generation *only*: # default pnd graphics are awful in PDF form, # better use SVG's instead: <xsl:param>admon.graphics.extension=".svg" 4) Do we have a consistent location for PDF downloads: if not should we have? Outstanding Issues: ~~~~~~~~~~~~~~~~~~~ The biggest one is that PDF generation is a lot harder than it should be with bjam: if we could get FO's and PDF's placed in a "pdf" subdirectory that would help enormously - currently they get generated in a directory of bjam's choosing under bin.v2 which results in all links to images breaking :-( FO generation also fails if the FO file already exists. So basically I need a Boost.Build expert to help with these: or at least explain how the existing rules work! Anyway, thanks in advance for any feedback you may have, John.