Highlighted

GENERATING PDF FROM HTML IN ADOBE EXPERIENCE MANAGER

Avatar

Avatar

errsheenah

Avatar

errsheenah

errsheenah

26-09-2018


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

Replies

Highlighted

Avatar

Avatar

kautuk_sahni

Community Manager

Total Posts

5.5K

Likes

955

Correct Answer

1.1K

Avatar

kautuk_sahni

Community Manager

Total Posts

5.5K

Likes

955

Correct Answer

1.1K
kautuk_sahni
Community Manager

26-09-2018

Nice article. Thanks for sharing.

Avatar

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

958

Correct Answer

820

Avatar

Arun_Patidar

MVP

Total Posts

2.9K

Likes

958

Correct Answer

820
Arun_Patidar
MVP

26-09-2018

Thanks for sharing !!!

Highlighted

Avatar

Avatar

Veena_Vikram

MVP

Avatar

Veena_Vikram

MVP

Veena_Vikram
MVP

26-09-2018

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

Highlighted

Avatar

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K

Avatar

smacdonald2008

Total Posts

12.7K

Likes

1.4K

Correct Answer

2.3K
smacdonald2008

26-09-2018

Great community content!

Highlighted

Avatar

Avatar

greggd3945325

Avatar

greggd3945325

greggd3945325

29-11-2018

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

Highlighted

Avatar

Avatar

shridhar_sahu

Avatar

shridhar_sahu

shridhar_sahu

17-10-2019

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