Я пытаюсь использовать ItextSharp для создания pdf-файла из своего веб-приложения. , чтобы создать раздел заголовка на каждой странице моего pdf-файла, я создаю частичный класс, где я переопределяю метод OnEndPage
. Все работает отлично, за одним исключением. Я сконструировал свой заголовок как таблицу с двумя столбцами, вначале я разместил логотип, а во втором я хочу показать некоторый текст на нескольких строках; поэтому во второй ячейке я создал подтаблицу с 1 столбцом и несколькими строками, но эта подтаблица всегда показывает внешнюю черную границу, которую я не могу удалить. Вот код:iTextSharp добавить подтаблицу без внешней границы
Public Overrides Sub OnEndPage(writer As PdfWriter, document As Document)
Dim headerIMG As Image = Image.GetInstance(HttpContext.Current.Server.MapPath(logoPath))
Dim pageSize As Rectangle = document.PageSize
Dim headerTbl As New PdfPTable(2)
headerTbl.TotalWidth = 600
headerTbl.HorizontalAlignment = Element.ALIGN_CENTER
Dim cell As New PdfPCell(headerIMG)
cell.Border = 0
cell.PaddingLeft = 10
cell.PaddingBottom = 10
headerTbl.AddCell(cell)
Dim subTable = New PdfPTable(1)
For Each s As String In HeaderText
Dim myCell As New PdfPCell(New Paragraph(s))
myCell.Border = 0
subTable.AddCell(myCell)
Next
subTable.DefaultCell.BorderWidth = 0
headerTbl.AddCell(subTable)
headerTbl.WriteSelectedRows(0, -1, 0, pageSize.GetTop(5), writer.DirectContent)
End Sub
Любой человек может помочь? Большое спасибо
Я заменил 'OnStartPage' на' OnEndPage', потому что вы никогда не должны добавлять контент в метод 'OnStartPage' (как задокументировано). –
Одно предложение и вопрос: можете ли вы избежать подтаблицы? Вместо подтаблицы просто добавьте контент в правую ячейку. 'DIm ss As String =" ": для каждого s As String В HeaderText: ss + = s + vbCrLf: Next: cell = New PdfPCell (новый абзац (ss)): cell.BorderWidth =" 0 ": headerTbl.AddCell (ячейка) '... просто хранить' ss' в правой ячейке. Если у вас должен быть подтаблик, то ничего. И, конечно же, это то, что написал Бруно. – nelek