Monday, November 16, 2015

Possibilities to obtain PDF from DITA

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr
Lately while attending Tekom 2015 and DITA OT Day 2015 I happened to come across two more DITA to PDF solutions that I did not know about so I tried to compile below a list of all DITA to PDF possibilities that I know of, along with some details:
  • Legacy DITA to PDF editing solution. It is no longer distribute with DITA OT 2.x and is probably not compatible anymore with it.
  • Default DITA to PDF solution embedded in the DITA Open Toolkit distribution. Besides Apache FOP you can also use RenderX XEP or Antenna House for publishing. It's customization can be done either via a plugin or via a PDF customization folder:
  • DITA to PDF using CSS. This open source DITA OT plugin was developed by Oxygen as an alternative to the default PDF publishing. It allows styling the DITA content using CSS and publishing to PDF using either Prince XML or Antenna House.
  • Antenna House DITA OT plugin for producing PDF from DITA using Antenna House. There is also a DITA specialization plugin which allows you to set specific formatting attributes directly to DITA elements.
  • DITA to HTML 5 to PDF using CSS. This open source DITA OT Plugin publishes DITA to HTML5 and then passes the output to node-html-pdf. This plugins takes a HTML file as a parameter and returns a PDF document.
  • The TopLeaf XML Publisher commercial product allows you to produce various outputs like PDF and EPUB from XML content. The application also has a visual PDF layout formatter, it comes also with a DITA OT plugin and has installation instructions for Oxygen:
  • Miramo, again a commercial solution which recently started developing support for DITA using a DITA OT plugin. Possibly user based DITA to PDF publishing will be free and server based production will require buying a license. Like TopLeaf, it also has a visual PDF layout designer.
  • Adobe FrameMaker can also publish to PDF using its own solution.

Now the question would be, why there are so many solutions available? In my opinion all these solutions are available because the default DITA to PDF output still requires quite a lot of XSLT skills in order to customize. Jarno Elovirta's PDF plugin generator covers some of the mainstream possible customizations but not all.

What do you think?


  1. After a discussion on the Oxygen Users List Ben McGinnes suggested this approach:

    DITA to [X]HTML + CSS then generate the PDF using wkhtmltopdf.

    or to publish DITA to MS Word OOXML or Libre Office ODT and then convert that to PDF using another tool like for example Pandoc.

    I would personally consider a PDF printing solution complete if:

    1) It generates a table of contents.
    2) It generates an index page.
    3) It properly generates links between pages.
    4) It presents images.
    5) It allows for extra customization.
    6) Ideally it is multi platform.

    so any solution which first obtains HTML from DITA in my opinion does not have enough semantic tagging to properly generate a TOC and an index page.

  2. This comment has been removed by a blog administrator.

  3. I think XSLT and XSL-FO are so cool that the other solutions are not necessary. But I guess I'm just really weird.

    1. It depends what you are comfortable with.
      Lowering the technological entry level for customizing the DITA output would mean a larger market for DITA, having smaller companies adopt it and use it to produce manuals.
      Ideally this would probably mean allowing end users to customize how the PDF output looks like via a GUI configuration tool.

  4. It seems that yet another solution is being developed called Rinoh:

  5. Rinoh reads the DITA files directly and thus does not suffer from solutions that go through HTML. It already implements all of the requirements you listed above, except for number 2, which shouldn't be too much work. Stay tuned for the beta!

    Brecht Machiels (Rinoh author)

    1. Thanks for the details Brecht.
      Indeed the index page generation for the PDF should be a quite useful thing to have.

  6. F.Baube7:35 PM

    This is a great compilation. This is the kind of seriously time-saving info that absolutely should be edited/added into the DITA-OT documentation. If it never is, that might be a symptom of an unwieldy workflow? My 0,02€, YMMV.

    1. In my opinion the DITA OT docs should be about plugins which come bundled with the DITA OT and about the core DITA OT functionality. But I agree that links to all these possible solutions should be present in some kind of DITA wiki, maybe here: