Как правильно отобразить datagridview в pdf c помощью iTextSharp?

496
12 сентября 2017, 07:04

По этому мануала пытался настроить мануал iTextSharp.

Столкнулся с тем, что мой datagridview

отображается в PDF

Почему он пропускает два столбца с информацией?

    SqlDataAdapter adapt;

    public Form1()
    {
        InitializeComponent();
        DisplayData();
    }
    private void DisplayData()
    {
        DataTable dt = new DataTable();
        adapt = new SqlDataAdapter("select * from posts", con);
        adapt.Fill(dt);
        dataGridView1.DataSource = dt;
    }

    private void btnExportPdf_Click(object sender, EventArgs e)
    {
        //Creating iTextSharp Table from the DataTable data
        PdfPTable pdfTable = new PdfPTable(dataGridView1.ColumnCount);
        //Adding Header row
        foreach (DataGridViewColumn column in dataGridView1.Columns)
        {
            PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText));
            cell.BackgroundColor = new iTextSharp.text.Color(240, 240, 240);
            pdfTable.AddCell(cell);
        }
        //Adding DataRow
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            foreach (DataGridViewCell cell in row.Cells)
            {
                pdfTable.AddCell(cell.Value.ToString());
            }
        }
        //Exporting to PDF
        string folderPath = "C:\\PDFs\\";
        if (!Directory.Exists(folderPath))
        {
            Directory.CreateDirectory(folderPath);
        }
        using (FileStream stream = new FileStream(folderPath + "DataGridViewExport.pdf", FileMode.Create))
        {
            Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f);
            PdfWriter.GetInstance(pdfDoc, stream);
            pdfDoc.Open();
            pdfDoc.Add(pdfTable);
            pdfDoc.Close();
            stream.Close();
        }
    }
}

}

READ ALSO
C#. Компилятор ругается, не может использовать лямбда выражение, т.к. не может определить тип аргумента. Как обойти?

C#. Компилятор ругается, не может использовать лямбда выражение, т.к. не может определить тип аргумента. Как обойти?

От одного и того же класса наследуются несколько других с дополнительными свойствамиХочу написать универсальную функцию, которая бы работала...

211
Подключение к базе данных oracle 11g

Подключение к базе данных oracle 11g

ЗдравствуйтеЕсть программа c# ASP

264
Очень длинная арифметика

Очень длинная арифметика

Решил написать программу для сложения больших чисел с использованием длинной арифметики, но Visual Studio выдаёт ошибку "Индекс находился вне...

299
VkNet - Как изъять id человека VK? [С#]

VkNet - Как изъять id человека VK? [С#]

Делаю приложение основанное на vk api (VkNet)Любые операции с профилем другого человека производится только если у вас есть его id

357