Arnav121 Ответов: 0

Как itextsharp PDF в DataGrid, чтобы экспорт в PDF совершенно БТ хедер текст небольшой, но вниз клетки не маленькие. Как сделать так, чтобы все шрифты были маленькими по размеру коробки.?


когда я экспортирую в pdf, то шрифт heders маленький, а другие ячейки имеют больший размер.
я могу упомянуть размер шрифта, но не сделал этого.

Что я уже пробовал:

<pre> Dim pdfTable As New PdfPTable(DataGridView1.ColumnCount)
        pdfTable.DefaultCell.Padding = 3
        pdfTable.WidthPercentage = 100
        pdfTable.HorizontalAlignment = Element.ALIGN_LEFT
        pdfTable.DefaultCell.BorderWidth = 1


        Dim yourFont As BaseFont = BaseFont.CreateFont("c:\windows\fonts\arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
        Dim mainFont As New Font(yourFont, 8, Font.Bold)
        'Adding Header row
        For Each column As DataGridViewColumn In DataGridView1.Columns
            Dim cell As New PdfPCell(New Phrase(column.HeaderText, mainFont))
            cell.BackgroundColor = New iTextSharp.text.BaseColor(240, 240, 240)
            pdfTable.AddCell(cell)
        Next

        'Adding DataRow
        For Each row As DataGridViewRow In dataGridView1.Rows
            For Each cell As DataGridViewCell In row.Cells
                pdfTable.AddCell(cell.Value.ToString())
            Next
        Next

        'Exporting to PDF
        '  SaveFileDialog1.FileName = ""
        ' SaveFileDialog1.Filter = "PDF (*.pdf)|*.pdf"
        '  Dim folderPath As String = SaveFileDialog1.ShowDialog
        
        'Using stream As New FileStream(folderPath & "", FileMode.Create)
        '  Dim pdfDoc As New Document(PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F)
        ' PdfWriter.GetInstance(pdfDoc, Stream)
        ' pdfDoc.Open()
        ' pdfDoc.Add(pdfTable)
        ' pdfDoc.Close()
        ' Stream.Close()
        'End Using




        Dim SaveFileDialoga = New SaveFileDialog()
        SaveFileDialoga.Filter = "PDF Files|*.pdf"
        SaveFileDialoga.FilterIndex = 0



        If (SaveFileDialoga.ShowDialog() = DialogResult.OK) Then

        End If

    

        Dim myDocument = New Document(iTextSharp.text.PageSize.A4, 10.0F, 10.0F, 10.0F, 10.0F)
        PdfWriter.GetInstance(myDocument, New FileStream(SaveFileDialoga.FileName, FileMode.Create))
        myDocument.Open()
        myDocument.Add(pdfTable)
        myDocument.Close()

Richard Deeming

Это было бы потому, что вы говорите своим заголовкам, чтобы они отображались на 8pt, но позволяете вашим строкам данных использовать любой размер шрифта по умолчанию.

Arnav121

как отрисовывать строки данных шрифтом есть какие-нибудь идеи?

Richard Deeming

Точно так же, как вы делаете это для строки заголовка.

Arnav121

скажи мне как пример

Richard Deeming

Заменять:

pdfTable.AddCell(cell.Value.ToString())

с:
Dim cell As New PdfPCell(New Phrase(cell.Value.ToString(), mainFont))
pdfTable.AddCell(cell)

Arnav121

своя работа.....

Большое вам спасибо за помощь.

ты же прекрасно знаешь vb.net-что???

0 Ответов