SlideShare a Scribd company logo
Understanding and Configuring  the FO Plug-in  for Generating PDF Files Part I (Beginner Level) Adena Frazer Suite Solutions
Who am I? Background in Computer Science and Education Experience in several computer companies over  the past decade+ Web applications Telecommunications Early member of the Suite Solutions team Various webinars and on-site training seminars  in Boston and Santa Clara PDF and HTML style sheet projects FO plug-in support for PDF output Project Management
What is Suite Solutions? Our Mission To increase our customers’ profitability by significantly improving the efficiency of their  information development and delivery processes. Qualitative Advantage Content Lifecycle Implementation (CLI) is Suite Solutions’  comprehensive approach – from concept to publication – to maximizing the value of your information assets. Our professionals are with you at every phase, determining, recommending and implementing the most cost-effective, flexible and long term solution for your business.
Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
DITA-OT Components DOST.jar XSL Transforms XSL style sheets Pre-process General processing Transform to output   format (xhtml, fo) XSLT Engines SAXON XALAN Apache ANT Batik.jar (FOP) Resolver.jar (resolves DTD) Icu4j.jar (internationalization) Fop.jar XML  Parser XERCES
PDF Generation XSL style sheets dita2pdf XSLT Engine SAXON XALAN Merged XML file generated from all referenced topics FO file XSL-FO Rendering Engine Antenna House RenderX Apache FOP Final PDF Output
Intermediate Files (1) DITA files _MERGED.xml stage1.xml  stage2.fo The Plug-in creates intermediate files in the process of rendering a PDF Ditamaps are resolved and DITA files are pulled into one XML file Index preprocessing   Style sheets are applied
Intermediate Files (2) stage2.fo  stage3.fo  topic.fo .pdf Internationalization preprocessing   Internationalization postprocessing    FO document is converted to a PDF File using an XSL-FO rendering engine
Using the Intermediate Files  The style sheets are applied to  stage1.xml  during PDF rendering.  All XPATH and related code should be written with this in mind.  Debug style sheet issues by opening up  stage1.xml  to see to what XML the style sheets are being applied. Location of Intermediate Files Topic.fo  is created in the output directory The other intermediate files ( _MERGED.xml, stage1.xml, stage2.fo, stage3.fo ) are created in the temp directory. By default, the intermediate files are deleted by the Toolkit They can be retained by telling the plug-in not to delete these files
Retaining the Intermediate Files  In older versions of the toolkit, comment out the deletion code from demo/fo/build.xml. In newer versions of the toolkit, use parameters to prevent the deletion of these files Retain.topic.fo  – Set to “yes” to retain the topic.fo file Clean.temp  – set to “no” to retain the other intermediate files
ANT Build File
Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
Why use the FO Plug-in? Legacy PDF code is deprecated Plug-in provides for increased functionality  Index and TOC generation Characters can be remapped to different fonts Extensive customization of publishing output by setting variables and attribute-sets A catalog-based customization framework where you can customize variables, attribute-sets and XSL files without modifying toolkit code: your custom settings live in files in a separate customization hierarchy Bookmap support See  c:ditaot\demo\fo\readme.txt  for more details
PDF Transtypes In older versions of the toolkit, PDF processing is included in the toolkit without a plug-in.  There is also an option to install the FO Plug-in for greater functionality. PDF  transtype references the old pdf code PDF2  transtype references the FO Plug-in code. In recent versions of the toolkit, the FO Plug-in code has become the default code for PDF processing. PDF  transtype references the FO Plug-in code.  ( PDF2  has been retained for backwards compatibility). The  legacypdf  transtype references the old PDF code.
FO Plug-in Directory Structure
Document Components (1) Front Matter (Title Page) front-matter.xsl, front-matter-attr.xsl Table of Contents (TOC)   toc.xsl, toc-attr.xsl Static Content (includes footers and headers) static-content.xsl, static-content-attr.xsl Links (includes reltables) links.xsl, links-attr.xsl  Index  index.xsl, index_1.0.xsl, index-attr.xsl Bookmarks  bookmarks.xsl, bookmarks_1.0.xsl, bookmarks-attr.xsl Layout Information layout-masters.xsl (new in v1.4.3!), layout-masters.xml
Document Components (2) Body Content Formatting   Programming Domain  pr-domain.xsl, pr-domain-attr.xsl Software Domain sw-domain.xsl, sw-domain-attr.xsl User Interface (includes menu cascade) ui-domain.xsl, ui-domain-attr.xsl  Highlighting Domain (includes bold and italics) hi-domain.xsl, hi-domain-attr.xsl  Titles commons.xsl, commons-attr.xsl  Lists lists.xsl, lists-attr.xsl Tables (includes Definition Lists) tables.xsl, tables_1.0.xsl, tables-attr.xsl
Basic-settings.xsl Located in  ditaot\demo\fo\cfg\fo\attrs  Contains the following global variables: page-width page-margin-top page-height page-margin-bottom page-margins side-col-width page-margin-left default-font-size page-margin-right
Layout-masters.xsl Located in  ditaot\demo\fo\cfg\fo References the global variables for page layout Centralizes document settings Catalog.xml no longer needs to be used to override layout-masters Can be located anywhere in the customization directory Layout-masters .xml  was retained for backwards compatibility
Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
How to Customize (1) Pick a directory Put your customizations directly in the ‘customization’ directory OR  Create your own customization directory by copying ‘customization’ and renaming  Include changed templates Copy relevant template files to customization\fo\xsl and include file names in  customization\fo\xsl\custom.xsl  OR Paste whole changed templates directly into  customization\fo\xsl\custom.xsl
How to Customize (2) Include changed attribute sets Copy attribute files to  customization\fo\attr  dir and include file names in  customization\fo\attr\custom.xsl  OR  Paste whole changed attributes sets directly into  customization\fo\attr\custom.xsl NOTE:  Pasting code directly into custom.xsl is only prudent for small customizations.  We generally recommend including changed files in custom.xsl  Change the entry in  customization\catalog.xml Copy  catalog.xml.orig Rename to  catalog.xml Uncomment relevant entries
How to Customize (3) If you created your own customization directory, send the name of your customization directory as a parameter in your ANT build file. <param name=&quot;customization.dir&quot; value=“<your customization dir>&quot; /> NOTE:   Customization allows you to easily install your changes on another machine by simply transferring the customization directory to the  demo\fo  or  plugin\fo  directory of that machine and sending the appropriate parameter in the ANT build file.
Customizing for Specialization (1) DITA is designed for specialization A specialization of topics should, by default, act like topics until told otherwise The preprocessing adds a  class  attribute to each element, which includes text representing the base element and the specialized element For example, a concept topic is a specialization of a general topic.  Its class is “ - topic/topic concept/concept ” The class for each element can be found in the DITA language reference in the Inheritance section
Customizing for Specialization (2) XSLT templates in the plug-in match based on the class in order to support specialized elements Sample template: Best Practice:  Always develop XPATH using the class attribute, as opposed to the element name.  This will ensure that all elements specialized from a given class will inherit the formatting of that class.
How Customization Works Your code  overrides  the plug-in using XSLT’s regular rules of precedence Your template overrides the template with the same name Your template has higher priority, which can have unintended consequences If you override a general type, you also override a specialized type. Your attribute-sets  add to  the plug-in’s attribute-sets Erasing one attribute from a set won’t help
Customization using  Antenna House’s  XSL-FO Formatter Using the Graphical User Interface Can apply style sheets to XML documents Displays document in the pre-PDF stage Shows borders of FO elements, which helps the user visualize how the formatting works Provides moveable rulers to measure document elements, which can be set to different units of measurements. Displays formatting errors Aids development by allowing developer to directly adjust the FO document and see the result without needing to change the style sheets and recompile the PDF each time.
Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
End of Session: Understanding and Configuring  the FO Plug-in for Generating PDF Files  Part I (Beginner Level)
Ad

More Related Content

What's hot (18)

Processing OpenDocument Format
Processing OpenDocument FormatProcessing OpenDocument Format
Processing OpenDocument Format
Alexandro Colorado
 
Rational Publishing Engine with Rational DOORS
Rational Publishing Engine with Rational DOORSRational Publishing Engine with Rational DOORS
Rational Publishing Engine with Rational DOORS
GEBS Reporting
 
Ot performance webinar
Ot performance webinarOt performance webinar
Ot performance webinar
Suite Solutions
 
Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007
David Truxall
 
Pdf open parameters
Pdf open parametersPdf open parameters
Pdf open parameters
negliadesign
 
Oracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresOracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new features
Philip Stoyanov
 
Ch2 neworder
Ch2 neworderCh2 neworder
Ch2 neworder
davidlahr32
 
ILUG 2007 - Notes and Office Integration
ILUG 2007 - Notes and Office IntegrationILUG 2007 - Notes and Office Integration
ILUG 2007 - Notes and Office Integration
John Head
 
DITA Quick Start for Authors Part II
DITA Quick Start for Authors Part IIDITA Quick Start for Authors Part II
DITA Quick Start for Authors Part II
Suite Solutions
 
Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...
Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...
Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...
GEBS Reporting
 
Understanding_Markdowns_Pandoc_and_YALM
Understanding_Markdowns_Pandoc_and_YALMUnderstanding_Markdowns_Pandoc_and_YALM
Understanding_Markdowns_Pandoc_and_YALM
Hellen Gakuruh
 
Localization and Shared Preferences in android
Localization and Shared Preferences in androidLocalization and Shared Preferences in android
Localization and Shared Preferences in android
Aly Arman
 
Oracle D2K reports
Oracle D2K reports Oracle D2K reports
Oracle D2K reports
Rajesh Ch
 
03 x files
03 x files03 x files
03 x files
Baskarkncet
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
Octavian Nadolu
 
BMID training - Mobyle Workshop - September 28, 2012
BMID training  - Mobyle Workshop - September 28, 2012BMID training  - Mobyle Workshop - September 28, 2012
BMID training - Mobyle Workshop - September 28, 2012
Hervé Ménager
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
jaxLondonConference
 
X FILES
X FILESX FILES
X FILES
SaraswathiRamalingam
 
Processing OpenDocument Format
Processing OpenDocument FormatProcessing OpenDocument Format
Processing OpenDocument Format
Alexandro Colorado
 
Rational Publishing Engine with Rational DOORS
Rational Publishing Engine with Rational DOORSRational Publishing Engine with Rational DOORS
Rational Publishing Engine with Rational DOORS
GEBS Reporting
 
Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007Day Of Dot Net Ann Arbor 2007
Day Of Dot Net Ann Arbor 2007
David Truxall
 
Pdf open parameters
Pdf open parametersPdf open parameters
Pdf open parameters
negliadesign
 
Oracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new featuresOracle Sql Developer Data Modeler 3 3 new features
Oracle Sql Developer Data Modeler 3 3 new features
Philip Stoyanov
 
ILUG 2007 - Notes and Office Integration
ILUG 2007 - Notes and Office IntegrationILUG 2007 - Notes and Office Integration
ILUG 2007 - Notes and Office Integration
John Head
 
DITA Quick Start for Authors Part II
DITA Quick Start for Authors Part IIDITA Quick Start for Authors Part II
DITA Quick Start for Authors Part II
Suite Solutions
 
Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...
Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...
Generate Excel documents with Rational Publishing Engine 1.1.2 and Reporting ...
GEBS Reporting
 
Understanding_Markdowns_Pandoc_and_YALM
Understanding_Markdowns_Pandoc_and_YALMUnderstanding_Markdowns_Pandoc_and_YALM
Understanding_Markdowns_Pandoc_and_YALM
Hellen Gakuruh
 
Localization and Shared Preferences in android
Localization and Shared Preferences in androidLocalization and Shared Preferences in android
Localization and Shared Preferences in android
Aly Arman
 
Oracle D2K reports
Oracle D2K reports Oracle D2K reports
Oracle D2K reports
Rajesh Ch
 
Compare And Merge Scripts
Compare And Merge ScriptsCompare And Merge Scripts
Compare And Merge Scripts
Octavian Nadolu
 
BMID training - Mobyle Workshop - September 28, 2012
BMID training  - Mobyle Workshop - September 28, 2012BMID training  - Mobyle Workshop - September 28, 2012
BMID training - Mobyle Workshop - September 28, 2012
Hervé Ménager
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
jaxLondonConference
 

Similar to Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I (Beginner Level) (20)

Developing Plugins
Developing PluginsDeveloping Plugins
Developing Plugins
Suite Solutions
 
The Big Documentation Extravaganza
The Big Documentation ExtravaganzaThe Big Documentation Extravaganza
The Big Documentation Extravaganza
Stephan Schmidt
 
Learning XSLT
Learning XSLTLearning XSLT
Learning XSLT
Overdue Books LLC
 
Must be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docxMust be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docx
herthaweston
 
C:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterC:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse Infocenter
Suite Solutions
 
Putting DITA Localization into Practice
Putting DITA Localization into PracticePutting DITA Localization into Practice
Putting DITA Localization into Practice
XMetaL
 
T4 presentation
T4 presentationT4 presentation
T4 presentation
Gary Pedretti
 
Introduction To Docbook 4 .5 Authoring
Introduction To Docbook 4 .5   AuthoringIntroduction To Docbook 4 .5   Authoring
Introduction To Docbook 4 .5 Authoring
Viswanath J
 
Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)
STC-Philadelphia Metro Chapter
 
RPE - Template formating, style and stylesheet usage
RPE - Template formating, style and stylesheet usageRPE - Template formating, style and stylesheet usage
RPE - Template formating, style and stylesheet usage
GEBS Reporting
 
93 peter butterfield
93 peter butterfield93 peter butterfield
93 peter butterfield
Society for Scholarly Publishing
 
Automating API Documentation
Automating API DocumentationAutomating API Documentation
Automating API Documentation
Selvakumar T S
 
How to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMakerHow to reduce DTP and translation costs with FrameMaker
How to reduce DTP and translation costs with FrameMaker
Globalization Partners International
 
Mdst 3559-02-01-html
Mdst 3559-02-01-htmlMdst 3559-02-01-html
Mdst 3559-02-01-html
Rafael Alvarado
 
Doc manual 3.x
Doc manual 3.xDoc manual 3.x
Doc manual 3.x
setankecos
 
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML
Alexandro Colorado
 
Customizing IBM Connections 3.0 - LS11 AD304
Customizing IBM Connections 3.0 - LS11 AD304Customizing IBM Connections 3.0 - LS11 AD304
Customizing IBM Connections 3.0 - LS11 AD304
malexanderIBM
 
Spotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creationSpotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creation
Ambareesh Kulkarni
 
From Planning to Publishing: How Business Objects Migrated Documentation to D...
From Planning to Publishing: How Business Objects Migrated Documentation to D...From Planning to Publishing: How Business Objects Migrated Documentation to D...
From Planning to Publishing: How Business Objects Migrated Documentation to D...
Scott Abel
 
ebs xml.ppt
ebs xml.pptebs xml.ppt
ebs xml.ppt
shubhtomar5
 
The Big Documentation Extravaganza
The Big Documentation ExtravaganzaThe Big Documentation Extravaganza
The Big Documentation Extravaganza
Stephan Schmidt
 
Must be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docxMust be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docx
herthaweston
 
C:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse InfocenterC:\Users\User\Desktop\Eclipse Infocenter
C:\Users\User\Desktop\Eclipse Infocenter
Suite Solutions
 
Putting DITA Localization into Practice
Putting DITA Localization into PracticePutting DITA Localization into Practice
Putting DITA Localization into Practice
XMetaL
 
Introduction To Docbook 4 .5 Authoring
Introduction To Docbook 4 .5   AuthoringIntroduction To Docbook 4 .5   Authoring
Introduction To Docbook 4 .5 Authoring
Viswanath J
 
RPE - Template formating, style and stylesheet usage
RPE - Template formating, style and stylesheet usageRPE - Template formating, style and stylesheet usage
RPE - Template formating, style and stylesheet usage
GEBS Reporting
 
Automating API Documentation
Automating API DocumentationAutomating API Documentation
Automating API Documentation
Selvakumar T S
 
Doc manual 3.x
Doc manual 3.xDoc manual 3.x
Doc manual 3.x
setankecos
 
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML
Alexandro Colorado
 
Customizing IBM Connections 3.0 - LS11 AD304
Customizing IBM Connections 3.0 - LS11 AD304Customizing IBM Connections 3.0 - LS11 AD304
Customizing IBM Connections 3.0 - LS11 AD304
malexanderIBM
 
Spotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creationSpotfire Integration & Dynamic Output creation
Spotfire Integration & Dynamic Output creation
Ambareesh Kulkarni
 
From Planning to Publishing: How Business Objects Migrated Documentation to D...
From Planning to Publishing: How Business Objects Migrated Documentation to D...From Planning to Publishing: How Business Objects Migrated Documentation to D...
From Planning to Publishing: How Business Objects Migrated Documentation to D...
Scott Abel
 
Ad

More from Suite Solutions (20)

SuiteHelp 4.0: Latest Features in Enterprise Webhelp
SuiteHelp 4.0: Latest Features in Enterprise WebhelpSuiteHelp 4.0: Latest Features in Enterprise Webhelp
SuiteHelp 4.0: Latest Features in Enterprise Webhelp
Suite Solutions
 
Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...
Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...
Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...
Suite Solutions
 
Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Increasing Findability with Subject Schemes (Advanced DITA Webinar)Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Suite Solutions
 
SuiteHelp 3.2.5 Latest Features
SuiteHelp 3.2.5 Latest FeaturesSuiteHelp 3.2.5 Latest Features
SuiteHelp 3.2.5 Latest Features
Suite Solutions
 
Using Taxonomy for Customer-centric Dynamic Publishing
Using Taxonomy for Customer-centric Dynamic PublishingUsing Taxonomy for Customer-centric Dynamic Publishing
Using Taxonomy for Customer-centric Dynamic Publishing
Suite Solutions
 
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet RequirementsDITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
Suite Solutions
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project Plan
Suite Solutions
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project Plan
Suite Solutions
 
DITA Quick Start: System Architecture of a Basic DITA Toolset
DITA Quick Start: System Architecture of a Basic DITA ToolsetDITA Quick Start: System Architecture of a Basic DITA Toolset
DITA Quick Start: System Architecture of a Basic DITA Toolset
Suite Solutions
 
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
Suite Solutions
 
DITA Quick Start Webinar Series: Getting Started with Information Architecture
DITA Quick Start Webinar Series: Getting Started with Information ArchitectureDITA Quick Start Webinar Series: Getting Started with Information Architecture
DITA Quick Start Webinar Series: Getting Started with Information Architecture
Suite Solutions
 
Introduction to S1000D
Introduction to S1000DIntroduction to S1000D
Introduction to S1000D
Suite Solutions
 
DITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part IDITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part I
Suite Solutions
 
Suite Labs: Generating SuiteHelp Output
Suite Labs: Generating SuiteHelp OutputSuite Labs: Generating SuiteHelp Output
Suite Labs: Generating SuiteHelp Output
Suite Solutions
 
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITAOverview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
 
LocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputsLocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputs
Suite Solutions
 
ImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlaggingImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlagging
Suite Solutions
 
AdvancedXPath
AdvancedXPathAdvancedXPath
AdvancedXPath
Suite Solutions
 
PDF Localization
PDF  LocalizationPDF  Localization
PDF Localization
Suite Solutions
 
SuiteHelp 4.0: Latest Features in Enterprise Webhelp
SuiteHelp 4.0: Latest Features in Enterprise WebhelpSuiteHelp 4.0: Latest Features in Enterprise Webhelp
SuiteHelp 4.0: Latest Features in Enterprise Webhelp
Suite Solutions
 
Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...
Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...
Moving your Organization up the Knowledge Value Chain (Proposal for Lavacon 2...
Suite Solutions
 
Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Increasing Findability with Subject Schemes (Advanced DITA Webinar)Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Increasing Findability with Subject Schemes (Advanced DITA Webinar)
Suite Solutions
 
SuiteHelp 3.2.5 Latest Features
SuiteHelp 3.2.5 Latest FeaturesSuiteHelp 3.2.5 Latest Features
SuiteHelp 3.2.5 Latest Features
Suite Solutions
 
Using Taxonomy for Customer-centric Dynamic Publishing
Using Taxonomy for Customer-centric Dynamic PublishingUsing Taxonomy for Customer-centric Dynamic Publishing
Using Taxonomy for Customer-centric Dynamic Publishing
Suite Solutions
 
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet RequirementsDITA Quick Start Webinar: Defining Your Style Sheet Requirements
DITA Quick Start Webinar: Defining Your Style Sheet Requirements
Suite Solutions
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project Plan
Suite Solutions
 
DITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project PlanDITA Quick Start Webinar Series: Building a Project Plan
DITA Quick Start Webinar Series: Building a Project Plan
Suite Solutions
 
DITA Quick Start: System Architecture of a Basic DITA Toolset
DITA Quick Start: System Architecture of a Basic DITA ToolsetDITA Quick Start: System Architecture of a Basic DITA Toolset
DITA Quick Start: System Architecture of a Basic DITA Toolset
Suite Solutions
 
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open ToolkitDITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
DITA Quick Start Webinar Series: Getting Started with the DITA Open Toolkit
Suite Solutions
 
DITA Quick Start Webinar Series: Getting Started with Information Architecture
DITA Quick Start Webinar Series: Getting Started with Information ArchitectureDITA Quick Start Webinar Series: Getting Started with Information Architecture
DITA Quick Start Webinar Series: Getting Started with Information Architecture
Suite Solutions
 
DITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part IDITA Quick Start for Authors - Part I
DITA Quick Start for Authors - Part I
Suite Solutions
 
Suite Labs: Generating SuiteHelp Output
Suite Labs: Generating SuiteHelp OutputSuite Labs: Generating SuiteHelp Output
Suite Labs: Generating SuiteHelp Output
Suite Solutions
 
Overview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITAOverview of SuiteHelp 3.1 for DITA
Overview of SuiteHelp 3.1 for DITA
Suite Solutions
 
LocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputsLocalizingStyleSheetsForHTMLOutputs
LocalizingStyleSheetsForHTMLOutputs
Suite Solutions
 
ImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlaggingImplementingChangeTrackingAndFlagging
ImplementingChangeTrackingAndFlagging
Suite Solutions
 
Ad

Recently uploaded (20)

IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdfIPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
IPL QUIZ | THE QUIZ CLUB OF PSGCAS | 2025.pdf
Quiz Club of PSG College of Arts & Science
 
The role of wall art in interior designing
The role of wall art in interior designingThe role of wall art in interior designing
The role of wall art in interior designing
meghaark2110
 
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docxPeer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
19lburrell
 
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFAMCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
Dr. Nasir Mustafa
 
spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)
Mohamed Rizk Khodair
 
How to Configure Public Holidays & Mandatory Days in Odoo 18
How to Configure Public Holidays & Mandatory Days in Odoo 18How to Configure Public Holidays & Mandatory Days in Odoo 18
How to Configure Public Holidays & Mandatory Days in Odoo 18
Celine George
 
PUBH1000 Slides - Module 11: Governance for Health
PUBH1000 Slides - Module 11: Governance for HealthPUBH1000 Slides - Module 11: Governance for Health
PUBH1000 Slides - Module 11: Governance for Health
JonathanHallett4
 
Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)
Mohamed Rizk Khodair
 
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFAMEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
Dr. Nasir Mustafa
 
DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...
DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...
DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...
PoojaSen20
 
antiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidenceantiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidence
PrachiSontakke5
 
CNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscessCNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscess
Mohamed Rizk Khodair
 
How to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 WebsiteHow to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 Website
Celine George
 
Origin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theoriesOrigin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theories
PrachiSontakke5
 
The History of Kashmir Karkota Dynasty NEP.pptx
The History of Kashmir Karkota Dynasty NEP.pptxThe History of Kashmir Karkota Dynasty NEP.pptx
The History of Kashmir Karkota Dynasty NEP.pptx
Arya Mahila P. G. College, Banaras Hindu University, Varanasi, India.
 
Final Evaluation.docx...........................
Final Evaluation.docx...........................Final Evaluation.docx...........................
Final Evaluation.docx...........................
l1bbyburrell
 
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon DolabaniHistory Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
fruinkamel7m
 
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptxU3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
Mayuri Chavan
 
puzzle Irregular Verbs- Simple Past Tense
puzzle Irregular Verbs- Simple Past Tensepuzzle Irregular Verbs- Simple Past Tense
puzzle Irregular Verbs- Simple Past Tense
OlgaLeonorTorresSnch
 
The role of wall art in interior designing
The role of wall art in interior designingThe role of wall art in interior designing
The role of wall art in interior designing
meghaark2110
 
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docxPeer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
Peer Assessment_ Unit 2 Skills Development for Live Performance - for Libby.docx
19lburrell
 
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFAMCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
MCQS (EMERGENCY NURSING) DR. NASIR MUSTAFA
Dr. Nasir Mustafa
 
spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)spinal cord disorders (Myelopathies and radiculoapthies)
spinal cord disorders (Myelopathies and radiculoapthies)
Mohamed Rizk Khodair
 
How to Configure Public Holidays & Mandatory Days in Odoo 18
How to Configure Public Holidays & Mandatory Days in Odoo 18How to Configure Public Holidays & Mandatory Days in Odoo 18
How to Configure Public Holidays & Mandatory Days in Odoo 18
Celine George
 
PUBH1000 Slides - Module 11: Governance for Health
PUBH1000 Slides - Module 11: Governance for HealthPUBH1000 Slides - Module 11: Governance for Health
PUBH1000 Slides - Module 11: Governance for Health
JonathanHallett4
 
Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)
Mohamed Rizk Khodair
 
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFAMEDICAL BIOLOGY MCQS  BY. DR NASIR MUSTAFA
MEDICAL BIOLOGY MCQS BY. DR NASIR MUSTAFA
Dr. Nasir Mustafa
 
DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...
DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...
DEATH & ITS TYPES AND PHYSIOLOGICAL CHANGES IN BODY AFTER DEATH, PATIENT WILL...
PoojaSen20
 
antiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidenceantiquity of writing in ancient India- literary & archaeological evidence
antiquity of writing in ancient India- literary & archaeological evidence
PrachiSontakke5
 
CNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscessCNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscess
Mohamed Rizk Khodair
 
How to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 WebsiteHow to Configure Extra Steps During Checkout in Odoo 18 Website
How to Configure Extra Steps During Checkout in Odoo 18 Website
Celine George
 
Origin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theoriesOrigin of Brahmi script: A breaking down of various theories
Origin of Brahmi script: A breaking down of various theories
PrachiSontakke5
 
Final Evaluation.docx...........................
Final Evaluation.docx...........................Final Evaluation.docx...........................
Final Evaluation.docx...........................
l1bbyburrell
 
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon DolabaniHistory Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
History Of The Monastery Of Mor Gabriel Philoxenos Yuhanon Dolabani
fruinkamel7m
 
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptxU3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
U3 ANTITUBERCULAR DRUGS Pharmacology 3.pptx
Mayuri Chavan
 
puzzle Irregular Verbs- Simple Past Tense
puzzle Irregular Verbs- Simple Past Tensepuzzle Irregular Verbs- Simple Past Tense
puzzle Irregular Verbs- Simple Past Tense
OlgaLeonorTorresSnch
 

Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I (Beginner Level)

  • 1. Understanding and Configuring the FO Plug-in for Generating PDF Files Part I (Beginner Level) Adena Frazer Suite Solutions
  • 2. Who am I? Background in Computer Science and Education Experience in several computer companies over the past decade+ Web applications Telecommunications Early member of the Suite Solutions team Various webinars and on-site training seminars in Boston and Santa Clara PDF and HTML style sheet projects FO plug-in support for PDF output Project Management
  • 3. What is Suite Solutions? Our Mission To increase our customers’ profitability by significantly improving the efficiency of their information development and delivery processes. Qualitative Advantage Content Lifecycle Implementation (CLI) is Suite Solutions’ comprehensive approach – from concept to publication – to maximizing the value of your information assets. Our professionals are with you at every phase, determining, recommending and implementing the most cost-effective, flexible and long term solution for your business.
  • 4. Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
  • 5. DITA-OT Components DOST.jar XSL Transforms XSL style sheets Pre-process General processing Transform to output format (xhtml, fo) XSLT Engines SAXON XALAN Apache ANT Batik.jar (FOP) Resolver.jar (resolves DTD) Icu4j.jar (internationalization) Fop.jar XML Parser XERCES
  • 6. PDF Generation XSL style sheets dita2pdf XSLT Engine SAXON XALAN Merged XML file generated from all referenced topics FO file XSL-FO Rendering Engine Antenna House RenderX Apache FOP Final PDF Output
  • 7. Intermediate Files (1) DITA files _MERGED.xml stage1.xml stage2.fo The Plug-in creates intermediate files in the process of rendering a PDF Ditamaps are resolved and DITA files are pulled into one XML file Index preprocessing Style sheets are applied
  • 8. Intermediate Files (2) stage2.fo stage3.fo topic.fo .pdf Internationalization preprocessing Internationalization postprocessing FO document is converted to a PDF File using an XSL-FO rendering engine
  • 9. Using the Intermediate Files The style sheets are applied to stage1.xml during PDF rendering. All XPATH and related code should be written with this in mind. Debug style sheet issues by opening up stage1.xml to see to what XML the style sheets are being applied. Location of Intermediate Files Topic.fo is created in the output directory The other intermediate files ( _MERGED.xml, stage1.xml, stage2.fo, stage3.fo ) are created in the temp directory. By default, the intermediate files are deleted by the Toolkit They can be retained by telling the plug-in not to delete these files
  • 10. Retaining the Intermediate Files In older versions of the toolkit, comment out the deletion code from demo/fo/build.xml. In newer versions of the toolkit, use parameters to prevent the deletion of these files Retain.topic.fo – Set to “yes” to retain the topic.fo file Clean.temp – set to “no” to retain the other intermediate files
  • 12. Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
  • 13. Why use the FO Plug-in? Legacy PDF code is deprecated Plug-in provides for increased functionality Index and TOC generation Characters can be remapped to different fonts Extensive customization of publishing output by setting variables and attribute-sets A catalog-based customization framework where you can customize variables, attribute-sets and XSL files without modifying toolkit code: your custom settings live in files in a separate customization hierarchy Bookmap support See c:ditaot\demo\fo\readme.txt for more details
  • 14. PDF Transtypes In older versions of the toolkit, PDF processing is included in the toolkit without a plug-in. There is also an option to install the FO Plug-in for greater functionality. PDF transtype references the old pdf code PDF2 transtype references the FO Plug-in code. In recent versions of the toolkit, the FO Plug-in code has become the default code for PDF processing. PDF transtype references the FO Plug-in code. ( PDF2 has been retained for backwards compatibility). The legacypdf transtype references the old PDF code.
  • 15. FO Plug-in Directory Structure
  • 16. Document Components (1) Front Matter (Title Page) front-matter.xsl, front-matter-attr.xsl Table of Contents (TOC) toc.xsl, toc-attr.xsl Static Content (includes footers and headers) static-content.xsl, static-content-attr.xsl Links (includes reltables) links.xsl, links-attr.xsl Index index.xsl, index_1.0.xsl, index-attr.xsl Bookmarks bookmarks.xsl, bookmarks_1.0.xsl, bookmarks-attr.xsl Layout Information layout-masters.xsl (new in v1.4.3!), layout-masters.xml
  • 17. Document Components (2) Body Content Formatting Programming Domain pr-domain.xsl, pr-domain-attr.xsl Software Domain sw-domain.xsl, sw-domain-attr.xsl User Interface (includes menu cascade) ui-domain.xsl, ui-domain-attr.xsl Highlighting Domain (includes bold and italics) hi-domain.xsl, hi-domain-attr.xsl Titles commons.xsl, commons-attr.xsl Lists lists.xsl, lists-attr.xsl Tables (includes Definition Lists) tables.xsl, tables_1.0.xsl, tables-attr.xsl
  • 18. Basic-settings.xsl Located in ditaot\demo\fo\cfg\fo\attrs Contains the following global variables: page-width page-margin-top page-height page-margin-bottom page-margins side-col-width page-margin-left default-font-size page-margin-right
  • 19. Layout-masters.xsl Located in ditaot\demo\fo\cfg\fo References the global variables for page layout Centralizes document settings Catalog.xml no longer needs to be used to override layout-masters Can be located anywhere in the customization directory Layout-masters .xml was retained for backwards compatibility
  • 20. Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
  • 21. How to Customize (1) Pick a directory Put your customizations directly in the ‘customization’ directory OR Create your own customization directory by copying ‘customization’ and renaming Include changed templates Copy relevant template files to customization\fo\xsl and include file names in customization\fo\xsl\custom.xsl OR Paste whole changed templates directly into customization\fo\xsl\custom.xsl
  • 22. How to Customize (2) Include changed attribute sets Copy attribute files to customization\fo\attr dir and include file names in customization\fo\attr\custom.xsl OR Paste whole changed attributes sets directly into customization\fo\attr\custom.xsl NOTE: Pasting code directly into custom.xsl is only prudent for small customizations. We generally recommend including changed files in custom.xsl Change the entry in customization\catalog.xml Copy catalog.xml.orig Rename to catalog.xml Uncomment relevant entries
  • 23. How to Customize (3) If you created your own customization directory, send the name of your customization directory as a parameter in your ANT build file. <param name=&quot;customization.dir&quot; value=“<your customization dir>&quot; /> NOTE: Customization allows you to easily install your changes on another machine by simply transferring the customization directory to the demo\fo or plugin\fo directory of that machine and sending the appropriate parameter in the ANT build file.
  • 24. Customizing for Specialization (1) DITA is designed for specialization A specialization of topics should, by default, act like topics until told otherwise The preprocessing adds a class attribute to each element, which includes text representing the base element and the specialized element For example, a concept topic is a specialization of a general topic. Its class is “ - topic/topic concept/concept ” The class for each element can be found in the DITA language reference in the Inheritance section
  • 25. Customizing for Specialization (2) XSLT templates in the plug-in match based on the class in order to support specialized elements Sample template: Best Practice: Always develop XPATH using the class attribute, as opposed to the element name. This will ensure that all elements specialized from a given class will inherit the formatting of that class.
  • 26. How Customization Works Your code overrides the plug-in using XSLT’s regular rules of precedence Your template overrides the template with the same name Your template has higher priority, which can have unintended consequences If you override a general type, you also override a specialized type. Your attribute-sets add to the plug-in’s attribute-sets Erasing one attribute from a set won’t help
  • 27. Customization using Antenna House’s XSL-FO Formatter Using the Graphical User Interface Can apply style sheets to XML documents Displays document in the pre-PDF stage Shows borders of FO elements, which helps the user visualize how the formatting works Provides moveable rulers to measure document elements, which can be set to different units of measurements. Displays formatting errors Aids development by allowing developer to directly adjust the FO document and see the result without needing to change the style sheets and recompile the PDF each time.
  • 28. Overview of FO Plug-in Main Topics Overview of PDF Generation Introduction to the FO Plug-in Customizing the FO Plug-in
  • 29. End of Session: Understanding and Configuring the FO Plug-in for Generating PDF Files Part I (Beginner Level)

Editor's Notes

  • #3: Suite Solutions: DITA Quick Start Training for Authors iDTP, March 16-18, 2009
  • #4: Suite Solutions: DITA Quick Start Training for Authors iDTP, March 16-18, 2009
  • #6: Suite Solutions: DITA Quick Start Training for Authors iDTP, March 16-18, 2009 Apache ANT – Another Neat Tool – it is a JAVA program (a bunch of scripts). Java-based build tool which enables creation of XML-based configuration files Allows you to pass parameters Allows you to extend and customize how the toolkit runs Stylesheets are how exactly all this works is outside the scope of this course – it is covered fully in the wonderful Advanced DITA course
  • #16: DITA Open Toolkit Workshop September 2008
  • #22: DITA Open Toolkit Workshop September 2008
  • #23: DITA Open Toolkit Workshop September 2008
  • #24: DITA Open Toolkit Workshop September 2008
  • #27: DITA Open Toolkit Workshop September 2008
  翻译: