The last prerequisite step prior to actually converting our HTML into PDF code is to clean up the HTML.
The method I use takes advantage of the XML parser in .NET but in order to use that we have to have XHTML compliant XML.
For this exercise, what I am most concerned about is that the HTML tags all have matching closing tags, that the tags are nested in a hierarchical structure, and that the tags all are lower case.
Some of this we will have to rely on the user to provide, like properly nesting the tags. But some of this we can attempt to clean up in our code. If you know you will have complete control over your HTML, you might be able to skip this step. But I think the code is simple enough that you’ll want to add it anyhow.
Continue reading “iTextSharp – HTML to PDF – Cleaning HTML”
Before we get into the nitty gritty of parsing the HTML so that we can create PDF code from it, it is important that we develop the concept of how text layout works in iTextSharp. So today we will cover those basics.
Continue reading “iTextSharp – HTML to PDF – Prerequisites”
The next series of things I’m going to introduce about using iTextSharp are all going to lead toward taking HTML text and placing it on the PDF document.
There are several items we need to cover before we even get to the part about converting the text from HTML to PDF text. The first is placing the text on the document where it is supposed to be.
Continue reading “iTextSharp – HTML to PDF – Positioning Text”
Last week I showed how to use form fields to control placement of dynamic data.
But what if you want to dynamically place images in your PDF? You can stuff them into a form field like you can with text.
However, one of the items you can retrieve from the form field is its location on the screen. Using this, a little math, and some iTextSharp image code, we can place images in our PDF where the form field was located. Here’s how I do it.
Continue reading “iTextSharp – Adding Images”
When I first started generating PDFs dynamically, I was overwhelmed by the complexity of the API. Not just with iTextSharp, but it seemed that all of the APIs were complex.
In looking through the API and comparing it to what I was actually trying to accomplish, I found there was a very small subset of classes and methods that I needed to use to accomplish the task at hand. Now that I’ve learned more, I still use this same subset of commands for 90% of what I need to do in iTextSharp.
Continue reading “iTextSharp – The easy way”