Поместите Gridview в шаблон PDF, iTextSharp - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь использовать приведенный ниже код для заполнения шаблона PDF данными из моей веб-формы. Я хочу знать, возможно ли поместить gridview в форму. Исследования дают мне смешанные ответы: одни говорят, что это невозможно, а другие - что можно. Я не опытный разработчик. Заранее спасибо!

protected void btnPrint_Click(object sender, EventArgs e)
        {
            PdfPTable pdfTable = new PdfPTable(GridView2.HeaderRow.Cells.Count);

            foreach (TableCell headerCell in GridView2.HeaderRow.Cells)
            {
                Font font = new Font();
                font.Color = new BaseColor(GridView2.HeaderStyle.ForeColor);

                PdfPCell pdfCell = new PdfPCell(new Phrase(headerCell.Text, font));
                pdfCell.BackgroundColor = new BaseColor(GridView2.HeaderStyle.BackColor);
                pdfTable.AddCell(pdfCell);

            }

            foreach (GridViewRow gridViewRow in GridView2.Rows)
            {
                foreach (TableCell tableCell in gridViewRow.Cells)
                {
                    Font font = new Font();
                    font.Color = new BaseColor(GridView2.RowStyle.ForeColor);

                    PdfPCell pdfCell = new PdfPCell(new Phrase(tableCell.Text));
                    pdfCell.BackgroundColor = new BaseColor(GridView2.RowStyle.BackColor);
                    pdfTable.AddCell(pdfCell);
                }
            }

            string fileNameExisting = Server.MapPath("~/Invoices/Invoice_Template.pdf");
            string fileNameNew = Server.MapPath("~/Invoices/" + GridView1.SelectedRow.Cells[2].Text + "_Invoice.pdf");

            PdfReader pdfReader = new PdfReader(fileNameExisting);
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileStream(fileNameNew, FileMode.Create));
            AcroFields pdfFormFields = pdfStamper.AcroFields;

            pdfFormFields.SetField("txtName", txtEmail.Text);
            **pdfFormFields.SetField("table", pdfTable);**

            string sTmp = "Invoice Generated for " + pdfFormFields.GetField("txtName");
            MessageBox.Show(sTmp, "Finished");

            pdfStamper.FormFlattening = false;
            pdfStamper.Close();

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...