PdfWriter.GetInstance - System.NullReferenceException: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.”

0

Witam.
Zalazłem dwa tematy podobne, jednak nie chciałem ich aż tak bałaganić dlatego założyłem nowy wątek.
Sprawa wygląda następująco:

Zadaniem jest wyeksportowanie do "PDF" zawartości DataGridView, w tym celu użyłem iTextSharp w starszej wersji 5.
Wszystko wydaje się być jak należy jednak "VS" wywala komunikat o wyjątku " System.NullReferenceException: „Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.” "
Wystąpienie obiektu - problem1.PNG

Kod wygląda następująco:

public void ExportdoPDF(DataGridView guna2DataGridView1, string filename)
{
    try
    {
        BaseFont bf = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, BaseFont.EMBEDDED);
        PdfPTable pdftable = new PdfPTable(guna2DataGridView1.Columns.Count);
        pdftable.DefaultCell.Padding = 3;
        pdftable.WidthPercentage = 100;
        pdftable.HorizontalAlignment = Element.ALIGN_LEFT;
        pdftable.DefaultCell.BorderWidth = 1;

        iTextSharp.text.Font text = new iTextSharp.text.Font(bf, 10, iTextSharp.text.Font.NORMAL);

        // Dodawanie Nagłówka

        foreach (DataGridViewColumn column in guna2DataGridView1.Columns)
        {
            PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText, text));
            cell.BackgroundColor = new iTextSharp.text.BaseColor(240, 240, 240);
            pdftable.AddCell(cell);
        }

        // Dodawanie wiersza
        foreach (DataGridViewRow row in guna2DataGridView1.Rows)
        {
            foreach (DataGridViewCell cell in row.Cells)
            {
                pdftable.AddCell(new Phrase(cell.Value.ToString(), text));
            }
        }

        //Exporting to PDF

        var zapisPliku = new SaveFileDialog();
        zapisPliku.Filter = "PDF (*.pdf)|*.pdf";
        zapisPliku.FileName = filename;
        zapisPliku.DefaultExt = ".pdf";

        if (zapisPliku.ShowDialog() == DialogResult.OK)
        {
            using (FileStream stream = new FileStream(zapisPliku.FileName + DateTime.Now.ToString("dd-MMMM-yy"), FileMode.Create))
            {
                Document pdfdoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
                PdfWriter.GetInstance(pdfdoc, stream);
                pdfdoc.Open();
                pdfdoc.Add(pdftable);
                pdfdoc.Close();
                stream.Close();
            }
        }
        MessageBox.Show("Dane zostały pomyślnie wyeksportowane !!!", "Info");
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error :" + ex.Message);
    }
}
private void btn_PDF_Click(object sender, EventArgs e)
{
    ExportdoPDF(guna2DataGridView1, "Export PDF");

}

Doczytałem się że można rozwinąć nazwy klas do iTextSharp, jednak mimo to nie przynosi rezultatu.
Help ..Program Wypłata365.PNGbold

0

Tutaj wydaje się być rozwiązanie twojego problemu
https://stackoverflow.com/questions/26884908/itextsharp-pdfwriter-getinstance-error

1 użytkowników online, w tym zalogowanych: 0, gości: 1