Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

GENERATING PDF FROM HTML IN ADOBE EXPERIENCE MANAGER

Avatar

Level 1


Hi Everyone!

We all have viewed, used or sent PDF files and it is surely one of the most informative and common document formats on the internet.

In this discussion, I would like to share an implementation of generating PDFs from the HTML of a webpage(s) programmatically and easily.

We will make use of two Java libraries: Flying Saucer and iText, along with that to JSOUP – another open-source Java library has been used, for modifying the HTML dynamically.

You can get more information on the Flying Saucer API here.

Here is a brief overview of the implementation :

  • An interface/component with a button, on click of which an AJAX call (using GET method) will be triggered.
  • Path of the page to be converted to PDF will be selected by the author in a dialog which will be sent as a parameter to the servlet.
  • In response we are generating a PDF which opens in a new tab, the user can save it with any name he/she wishes.
  • Requests have been implemented to get all the HTML from the page and the CSS that is being applied on the page.
  • iTextRenderer object is used to set the layout and generate the PDF.
  • To render images MediaReplacedElementfactory is implemented which replaces the image element with iText image element which can be rendered by Flying Saucer API.
  • Utility class using Jsoup has been used to handle all the HTML manipulations i.e removal of certain tags like button, header, and footer of the page.
  • Special CSS has been applied for certain cases to make sure the PDF layout is looking good.

In this blog post, I am going to explain how to implement these steps along with the code required.

Note: Go through this link : GENERATING PDF FROM HTML IN ADOBE EXPERIENCE MANAGER

7 Replies

Avatar

Administrator

Nice article. Thanks for sharing.



Kautuk Sahni

Avatar

Community Advisor

Thanks for sharing !!!



Arun Patidar

Avatar

Community Advisor

I am going to try this out thanks for sharing. We had some similar requirement lined up for a new requirement

Avatar

Level 1

Will this support or render java script prior to sending to itext?

I have pages with JavaScript and Itext needs us to "use a JavaScript preprocessor to convert the JavaScript into static HTML which can then be fed into" itext.

Gregg

Avatar

Level 3

I have a use-case in which i need to generate PDF from HTML page using URL.

I have sample Landing page which accepts a url-encoded parameter id

At the time of page load an ajax call gets triggered and some html gets rendered dynamically through jquery based on that url parameter.

I tried itextpdf7, over here static pdf were getting generated as javascript is not supported.

https://stackoverflow.com/questions/58342600/can-pdfhtml-handle-dynamically-generated-html-content

Can itextpdf & flying saucer handle Javascript(HTML Generated after ajax call) to PDF?

Also,  Can we achieve the use-case using pdf generator without using AEM Forms?

Adobe Experience Manager Help | Converting files using PDF Generator

Avatar

Level 1

Can you share the link ? Unable to access the link.I have similar requirement of  generating pdf in AEM