I'm generating a PDF report with itextsharp, the header of the report has the information of the Customer, In the body of the report contains a list of customer transactions.
My doubt is: How to generate a header dynamically for each client?
I need an example to generate a header dynamically to the report. Every new page Header need to have the data that client when changing client header should contain information on the new client.
Your question risks down-voting or at least comments in the sense of "What have you tried?"
However, I've written you a small example in Java which you can easily adapt to C# as iText and iTextSharp share more or less the same syntax.
The example is called
VariableHeader
and these are the most interesting snippets:First I create a custom implementation of the
PdfPageEvent
interface (usingPdfPageEventHelper
). It's important to understand that you can't use theonStartPage()
method (for reasons described in my book), use theonEndPage()
method instead.As you can see, the text of the header is stored in a variable that can be changed using the
setHeader()
method we created.The event is declared to the
PdfWriter
like this:I change the header
Phrase
before invoking thenewPage()
method:In my simple example, I generate a document that lists the factors of all the numbers from 2 to 300: variable_header.pdf. The header of each page says "THE FACTORS OF X" where X is the number of which the factors are shown on that page.
You can easily adapt this to show different customer names instead of numbers.