Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

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