Itextsharp适合宽度并给出边框

时间:2015-05-31 07:47:50

标签: vb.net itext

我正在使用itextsharp设计一个pdf表。我想问一下是否有人知道:

  1. 如何给边框(喜欢color = silver,1px,适合宽度) 标题文字?
  2. 如何使表适合页面宽度(如100%)?
  3. 我正在使用vb.net

    Protected Sub Create_Pdf_Click(sender As Object, e As EventArgs) Handles Create_Pdf.Click
        Dim pdfDoc As New Document()
        Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(pdfDoc, New FileStream("D://PDF/myfile.pdf", FileMode.Create))
        pdfDoc.Open()
        pdfDoc.Add(New Paragraph("Here is header text"))
        Dim table As New PdfPTable(3)
        Dim cell As New PdfPCell(New Phrase("Header spanning 3 columns"))
        cell.Colspan = 3
        cell.HorizontalAlignment = 1
    
        table.AddCell(cell)
        table.AddCell("Col 1 Row 1")
        table.AddCell("Col 2 Row 1")
        table.AddCell("Col 3 Row 1")
        table.AddCell("Col 1 Row 2")
        table.AddCell("Col 2 Row 2")
        table.AddCell("Col 3 Row 2")
        pdfDoc.Add(table)
        pdfDoc.Close()
    End Sub
    

1 个答案:

答案 0 :(得分:0)

当您像这样定义Document时:

Dim pdfDoc As New Document()

您定义的文档的页面大小为A4,边距为36个用户单位。如果您不想要任何边距,则需要创建如下文档:

Document doc = new Document(PageSize.A4, 0f, 0f, 0f, 0f);

当你像这样创建PdfPTable时:

Dim table As New PdfPTable(3)

您创建的表格占可用宽度的80%。您可以通过添加以下行将其更改为100%:

table.WidthPercentage = 100

或者,如果要指定特定宽度,则可以使用:

table.TotalWidth = 595f
table.LockedWidth = true

请注意,595是A4页面的宽度(用户单位)。

边界定义为PdfPCell

PdfPCell cell = new PdfPCell(phrase)
cell.BorderColor = BaseColor.RED
cell.BorderWidth = 3f
cell.Border = Rectangle.BOX

当然,您也可以单独定义每个边框。这在此解释:ITextSharp: Set table cell border color

在您的情况下,您可能希望为DefaultCell定义这些属性。这样,您就不必为每个单独的单元格反复定义它们。

如果我更详细一点(例如,我也可以谈论表事件和单元事件,例如绘制虚线边框),这将导致我们走得太远。请下载免费的电子书The Best iText Questions on StackOverflow,在那里你会找到一些比你更少的问题的答案。