Добавьте pag pagemax с событием itextsharp onendpage и VB.NET
У меня есть событие OnEndPage, я хотел бы добавить в поле моей таблицы Номер страницы и количество максимальных страниц, например, Pag 1 из 5, Pag 2 из 5 и т. д.,
Я создаю PDF-файл с переменными страницами, которые содержат заголовок и данные в табличном формате.
Как я могу заранее знать, сколько страниц будет иметь файл, который я создаю?
Тогда я должен его напечатать.
Должен ли я сначала создать его, чтобы узнать, сколько в нем страниц? и после регенерации он все еще знает, сколько всего страниц там есть?
или в этом есть какая-то функция?
Спасибо
Что я уже пробовал:
Public Class Form1 'Dim xxx As New _events Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim Doc As Document = New Document(PageSize.A4, 20, 20, 215, 20) ' Dim Doc As Document = New Document(PageSize.A4, 36, 36, 36 + _ < height, [of], table > _, 36)' deve partire dopo l 'intestazione Dim ev As _events = New _events() ' la classe Dim wri As PdfWriter = PdfWriter.GetInstance(Doc, New FileStream("simple2.pdf", FileMode.Create)) wri.PageEvent = ev Doc.Open() '' ''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx '' ''xxxxxxxxxxxxxxxxxxxxxxxxxx- CREAZIONE GRIGLIA -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx '' ''xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx TableGrid = New PdfPTable(5) ' diventata pubblica TableGrid.WidthPercentage = 100 ' Table size is set to 100% of the page TableGrid.HorizontalAlignment = 0 '0=left, 1=centre , 2 = right TableGrid.SpacingAfter = 10 ' mette uno spazio di 10 , dopo Dim TableGridWidths(4) As Single TableGridWidths(0) = 150 ' se li metto tutti e 3 uguali è come se faccio il 33% TableGridWidths(1) = 200 TableGridWidths(2) = 500 TableGridWidths(3) = 50 TableGridWidths(4) = 100 TableGrid.SetWidths(TableGridWidths) ' Set the column widths on table creation. Unlike HTML cells cannot be sized. Try For i = 0 To 100 '2° riga verde Dim GrillCell1 As New PdfPCell(New Phrase("Pos.Mag" & i, fntNormal12)) 'CellOne.Rotation = -90 ' inclina il testo GrillCell1.HorizontalAlignment = 1 '0=left, 1=centre , 2 = right TableGrid.AddCell(GrillCell1) Dim GrillCell2 As New PdfPCell(New Phrase("PN" & i, fntNormal12)) 'CellTwo.Border = 0 GrillCell2.HorizontalAlignment = 1 '0=left, 1=centre , 2 = right TableGrid.AddCell(GrillCell2) Dim GrillCell3 As New PdfPCell(New Phrase("Descrizione" & i, fntNormal12)) GrillCell3.HorizontalAlignment = 1 '0=left, 1=centre , 2 = right TableGrid.AddCell(GrillCell3) Dim GrillCell4 As New PdfPCell(New Phrase(i, fntNormal12)) GrillCell4.HorizontalAlignment = 1 '0=left, 1=centre , 2 = right TableGrid.AddCell(GrillCell4) Dim GrillCell5 As New PdfPCell(New Phrase(i, fntNormal12)) GrillCell5.HorizontalAlignment = 1 '0=left, 1=centre , 2 = right TableGrid.AddCell(GrillCell5) Next i ' quetsa volta aggiungo direttamente sul documento .doc, mentre nella classe aggiungo prima una cella e poi tutta la cela dentro la tabella esterna Doc.Add(TableGrid) Catch ex As Exception MsgBox(ex.ToString) Doc.Close() End Try 'For i = 0 To 1000 ' Doc.Add(New Phrase("TESTING\n")) 'Next i Doc.Close() Process.Start("simple2.pdf") End Sub
В событии OnEndPage я создаю заголовок на каждой странице