我有一个可以手动填写的PDF表格。
我想动态地填充数据并通过电子邮件发送此PDF文件。
您建议使用哪个dll以及如何操作?
答案 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);
}