title: How to convert data from dataGridView to a PDF file?
body: <p>I have this dataGridView which I would like to convert to a PDF file. How do I do it? I searched online and found some codes but it seems like the website I found missed out on a lot of things.</p>
  
  <pre><code>using System.IO;
  using System.Data;
  using System.Reflection;
  using iTextSharp.text.pdf;
  using iTextSharp.text;
  
  private void btnExportPdf_Click(object sender, EventArgs e)
  {
      //Creating iTextSharp Table from the DataTable data
      PdfPTable pdfTable = new PdfPTable(dataGridView1.ColumnCount);
      pdfTable.DefaultCell.Padding = 3;
      pdfTable.WidthPercentage = 30;
      pdfTable.HorizontalAlignment = Element.ALIGN_LEFT;
      pdfTable.DefaultCell.BorderWidth = 1;
  
      //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();
      }
  }
  </code></pre>