开发者

Adding headers with iTextSharp in VB.NET

I'm wondering how can I put a header into my PDF file, cause I've tried the tutorials from here:

http://itextsharp.sourceforge.net/tutorial/ch04.html

And it has not worked.

I've done this:

Dim head As New HeaderFooter(New Phrase("This is page: "), False)
head.Border = Rectangle.NO_BORDER
document.Header = head

But VS2008 says that HeaderFooter is not defined (line 1), and Footer it's not a member of "iTextSharp.text.document" (line 3).

I've already included the imports at the beginning of my code and iIdon't have any other problems with the iTextsharps (I mean that it is working apart of the header problem):

Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.Data.开发者_如何学编程SQLite
Imports System.IO

So please, can anyone explain to me how can i set a header for my pages?

Regards


The answer to this question depends on which version of the iTextSharp dll you are using.

If you are using a version lower than 5, this should work

Imports iTextSharp.text.pdf
Imports iTextSharp.text
Module Module1
    Sub Main()
        Dim pdfWrite As PdfWriter
        Dim pdfDoc As New Document()
        Dim pdfMemoryStream As New IO.FileStream("tryme.pdf", IO.FileMode.Create)
        pdfWrite = PdfWriter.GetInstance(pdfDoc, pdfMemoryStream)
        Dim pdfHeader As New HeaderFooter(New Phrase("Im at the head: "), False)
        pdfHeader.Border = Rectangle.NO_BORDER
        pdfDoc.Header = pdfHeader
        pdfDoc.Open()
        pdfDoc.Add(New Paragraph("Hello World"))
        pdfDoc.NewPage()
        pdfDoc.Add(New Paragraph("Hello World Again"))
        pdfDoc.Close()
    End Sub
End Module

Update

For version 5+ of iTextSharp the HeaderFooter property has been removed from iTextSharp. To add Headers/Footers now you must use PageEvents. The following code demonstrates how to do this (very simply!)

Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO
Module Module1
    Sub Main()
        Dim pdfDoc As New Document()
        Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(pdfDoc, New FileStream("tryme2.pdf", FileMode.Create))
        Dim ev As New itsEvents
        pdfWrite.PageEvent = ev
        pdfDoc.Open()
        pdfDoc.Add(New Paragraph("Hello World"))
        pdfDoc.NewPage()
        pdfDoc.Add(New Paragraph("Hello World Again"))
        pdfDoc.Close()
    End Sub
End Module

Public Class itsEvents
    Inherits PdfPageEventHelper
    Public Overrides Sub OnStartPage(ByVal writer As iTextSharp.text.pdf.PdfWriter, ByVal document As iTextSharp.text.Document)
        Dim ch As New Chunk("This is my Stack Overflow Header on page " & writer.PageNumber)
        document.Add(ch)
    End Sub
End Class
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜