How to convert data from dataGridView to a PDF file?

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.

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(); >>