Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges


Level 1
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.


6 Replies
Community Advisor
Community Advisor

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

Level 1
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.


Level 3
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.

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