填写PDF表格并使用iTextSharp通过电子邮件发送填写的表格

时间:2015-05-22 05:49:06

标签: c# pdf itextsharp

我有一个可以手动填写的PDF表格。

我想动态地填充数据并通过电子邮件发送此PDF文件。

您建议使用哪个dll以及如何操作?

1 个答案:

答案 0 :(得分:3)

让我们开始, 首先使用NuGet将iTextSharp添加到您的项目中。Link 让我们继续:

可编辑PDF中的每个字段都有自己的名称。在学习了这个字段名称之后。

private static void FillPDFForm()
        { 
                // Original File
                const string pdfTemplate="Uploads\CV.PDF";
                // New file which will be created after fillin PDF
                var newFile ="Uploads\FilledCV.PDF"
                var pdfReader = new PdfReader(pdfTemplate);
                var pdfStamper = new PdfStamper(pdfReader, new FileStream(
                    newFile, FileMode.Create));
                var pdfFormFields = pdfStamper.AcroFields;

                // So one of our fields in PDF is FullName I am filling it with my full name
                pdfFormFields.SetField("FullName", "Vuqar Qasimov");                    

                // flatten the form to remove editting options, set it to false
                // to leave the form open to subsequent manual edits

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

        }

Bingo我们已经创建了文件,可以将其附加到电子邮件并发送给它

  public void SendEmailWithAttachment()
        {
            var objMailMessage = new MailMessage("EnterFromEmailAddress", "ReceiverEmailAddress")
            {
                Subject = "EnterEmailSubject",
                IsBodyHtml = true,
                Body = "EnterEmailBody"
            };
            //You can add more attachments
            objMailMessage.Attachments.Add(new Attachment("EnterAttachmentLocationPath")); 
            var smtp = new SmtpClient("smtp.office365.com");
            var login = new NetworkCredential("SenderEmail","SenderEmailPAssword");
            smtp.Credentials = login;
            smtp.Port =  587;
            smtp.EnableSsl = true; 
            smtp.Send(objMailMessage); 
        } 
  • 我使用Office 365作为电子邮件。如果您使用不同的电子邮件帐户,则可能需要更改端口或其他凭据。
  • 根据我的经验,而不是使用iTextSharp或其他软件包设计PDF文件,更好地使用第三方应用程序进行设计,并使用iTextSharp填充它。它看起来会更好,花费更少的时间。