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.” "
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 ..bold