NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Ignore DSSSL and RTF (Score:2)
First of all, if you're talking DSSSL, you're talking OpenJade, which is a large package, somewhat difficult to build, and very difficult to troubleshoot unless you have some background in SGML arcana, or wish to acquire it. It's like expending the effort to master Victorian era metallurgy -- wonderful if you want to maintain an old engine, but not the best path to pursue if your goal is to ship cargo today.
Second, the RTF "specification" gets updated about once per release of MSWord. We're up to 1.7 right now. If I had to guess, the RTF backend for OpenJade was done in the era of RTF 1.4 or earlier. So whatever new features got added into RTF since the backend was updated simply cannot be generated from a DSSSL toolchain. I don't know what these features would be, so this is possibly just FUD.
Third, the RTF output that OpenJade generates is a small (but useful) subset of whatever level of RTF it implemented. Plus, there are complications between different interpretations of what a page model should be. For example, I think that DSSSL can handle nested tables, but RTF (or the RTF backend) cannot generate them properly.
And there are many RTF features that are not accessible from the DSSSL side of the fence -- things like annotating a block of text as an RTF style. In the DSSSL world, styles are resolved as the page goes into the back end. So if you have a style called "Heading 1" that renders as 36pt Helvetica, the output is specified as 36pt Helvetica, not symbolically as "the style named 'Heading 1'".
So while an RTF generator may be useful, DSSSL isn't the best tool for the job. I'd look at RTF::Writer [cpan.org], which can touch the entire (modern) RTF spec, or be made to do so much more easily. And you don't need to learn/use Scheme to get there. ;-)
Reply to This