19

Years ago we created PDF documents from published Tridion content, but turned it off due to poor performance. The name "FOP Tool" rings a bell.

Have things moved on at all? What is the best method to now offer a "create PDF" call to action that generates a document that may be styled slightly differently to the web page.

1
  • what should your PDF contain exactly, all the content of the current Page, or should it more be a PDF created based on a Component on the Page (so only partial content of the actual web page)? Commented Jun 5, 2013 at 15:56

5 Answers 5

12

We have recently implemented a solution to publish PDFs and PowerPoint slides from a given component type.

There is an extension available on sdltridionworld that helps generate PDFs: http://sdltridionworld.com/community/extension_overview/pdf_creator.aspx

However, we created our own because we needed some advanced PDF generation features. So we relied on the DynamicPDF framework: http://www.dynamicpdf.com/ and integrated it into a C# TBB.

If you want to go all out, then have a look at the Tridion InDesign Connector: http://sdltridionworld.com/releases/release_news/connector_2009_for_indesign_released.aspx

9

We have had some success with http://pdfcrowd.com/

You can just output a link like this <a href="http://pdfcrowd.com/url_to_pdf/">Convert this page to a PDF</a> e.g. Convert this page to a PDF, and it will convert the current page to a PDF. It's also free (with a small watermark).

More details here: http://pdfcrowd.com/save-to-pdf/

8

Since you seem to want to do this on the delivery side, and with the requirement that it

generates a document that may be styled slightly differently to the web page

then I have to assume that your content is published in some sort of structured data format. You can, as before, use XSL:FO for this, or use something more advanced like wkhtmltopdf or paid tools like html2pdf or whatever else you fancy.

Depending on implementation parameters, I tend to prefer generating the PDF at publish time (since it saves CPU cycles on the delivery tier, and I have the whole object model to work with), but what tool to use for this is really up to you.

8

Following are few options I have worked on or aware about:

  • iTextSharp - Most versatile. Used it for creating multipage, multi-language heavy content and graphics reports. Biggest advantage is that it is open source and can be changed to next level
  • wkhtmltopdf - Used it recently, all looks good but have faced issues with Custom Fonts
  • ExpertPDF - Good to use but scalability will be a problem and might give you poor performance for a bulk of pages
  • QuickPDF Library - Easy to use and provide methods to direct manipute/integrate with HTML
  • ABCpdf - Easy to use and provide methods to direct manipute/integrate with HTML
  • DynamicPDF - You may want to explore this, No experience with this
  • PDFSharp - Open source .NET based solution for creating decent PDFs from HTML but not good for report (or report level PDF generation)

I hope it helps.

7

Not sure about any performance issues with Apache FOP (which is what you meant I guess) and if they have been solved in the reset releases. So you might want to check that out yourself.

As for alternatives, there is iText (and its C# counterpart iTextSharp), this is basically a relatively easy to use PDF library (which can create and manipulate PDF documents). Add to that Flying Saucer and you have a tool which can render XHTML to PDFs. And there are also a bunch of online services which can handle this like html2pdf.

I haven't seen any new (open source) extensions in our community lately unfortunately (other than this PDF creator using Apache FOP).

1
  • I've seen iTextSharp work for both on-the-fly generation (based on XML published from Tridion) and batch nightly jobs reading XML files. If I could revisit this, I'd look at generation during publish or adjusting visitor expectations on the delivery side. Commented Jun 6, 2013 at 23:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.