iTextsharp中的多表列对齐

时间:2011-08-02 03:20:20

标签: c# alignment itext tabular pdfptable

我正在创建一个表,其中每列都有自己的对齐方式,如下所示。如何在列级别而不是在单元级别完成它?

enter image description here

1 个答案:

答案 0 :(得分:4)

iText和iTextSharp不支持列样式和格式。这样做的唯一方法就是你目前正在逐个细胞地做。

修改

最简单的解决方法是创建设置公共属性的辅助方法。这些可以通过扩展方法完成,也可以只使用常规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"))