PdfRpt.Core.Helper.PdfImageHelper.GetITextSharpImageFromAcroForm C# (CSharp) Method

GetITextSharpImageFromAcroForm() public static method

Fills an AcroForm automatically and then Converts the selected page number of an existing pdf template file to an instance of iTextSharp.text.Image
public static GetITextSharpImageFromAcroForm ( this pdfWriter, string pdfTemplateFilePath, IList data, Action onFillAcroForm, IList fonts, int pageNumber = 1 ) : Image
pdfWriter this PdfWriter object
pdfTemplateFilePath string pdf file path
data IList Row's data
onFillAcroForm Action FillAcroForm Formula
fonts IList Controls fonts
pageNumber int selected page number of an existing pdf template file
return iTextSharp.text.Image
        public static iTextSharp.text.Image GetITextSharpImageFromAcroForm(
                            this PdfWriter pdfWriter,
                            string pdfTemplateFilePath,
                            IList<CellData> data,
                            Action<IList<CellData>, AcroFields, PdfStamper> onFillAcroForm,
                            IList<iTextSharp.text.Font> fonts,
                            int pageNumber = 1)
        {
            using (var writerStream = new MemoryStream())
            {
                var pdfReader = new PdfReader(pdfTemplateFilePath);
                using (var stamper = new PdfStamper(pdfReader, writerStream))
                {
                    foreach (var font in fonts)
                    {
                        stamper.AcroFields.AddSubstitutionFont(font.BaseFont);
                    }

                    var form = stamper.AcroFields;
                    form.GenerateAppearances = true;
                    onFillAcroForm.Invoke(data, form, stamper);

                    stamper.FormFlattening = true;

                    stamper.Writer.CloseStream = false;
                    stamper.Close();
                    pdfReader.Close();
                }

                writerStream.Position = 0;
                var reader = new PdfReader(writerStream);
                var importedPage = pdfWriter.GetImportedPage(reader, pageNumber);
                //reader.Close(); // iTextSharp 5.4.1.0 needs this to be open.
                return iTextSharp.text.Image.GetInstance(importedPage).checkImage();
            }
        }