Выравнивание столбцов в нескольких таблицах в iTextsharp - PullRequest
3 голосов
/ 02 августа 2011

Я создаю таблицу, в которой каждый столбец имеет свое выравнивание, как показано ниже.Как мне сделать это на уровне столбца, чем на уровне ячейки?

enter image description here

1 Ответ

4 голосов
/ 03 августа 2011

iText и iTextSharp не поддерживают стили столбцов и форматирование.Единственный способ сделать это, как вы делаете в настоящее время, ячейка за ячейкой.

EDIT

Самый простой способ обойти это создать вспомогательные методы, которые устанавливают ваши общие свойства,Это можно сделать либо с помощью методов расширения, либо с помощью обычных static методов.Передо мной нет C # IDE, поэтому приведенный ниже пример кода написан на VB, но его следует довольно легко перевести.

Вы можете создать несколько быстрых методов для каждого выравнивания:

Public Shared Function CreateLeftAlignedCell(ByVal text As String) As PdfPCell
    Return New PdfPCell(New Phrase(text)) With {.HorizontalAlignment = PdfPCell.ALIGN_LEFT}
End Function
Public Shared Function CreateRightAlignedCell(ByVal text As String) As PdfPCell
    Return New PdfPCell(New Phrase(text)) With {.HorizontalAlignment = PdfPCell.ALIGN_RIGHT}
End Function
Public Shared Function CreateCenterAlignedCell(ByVal text As String) As PdfPCell
    Return New PdfPCell(New Phrase(text)) With {.HorizontalAlignment = PdfPCell.ALIGN_CENTER}
End Function

Или только один, который вам нужно передать в одной из известных констант:

Public Shared Function CreatePdfPCell(ByVal text As String, ByVal align As Integer) As PdfPCell
    Return New PdfPCell(New Phrase(text)) With {.HorizontalAlignment = align}
End Function

Тогда вы можете просто сделать следующее:

Dim T As New PdfPTable(3)
T.AddCell(CreateCenterAlignedCell("Hello"))
...