我有一个模板,我想通过电子邮件进行编辑和发送。我有以下代码,但编辑后的pdf表示我的数据“已损坏,无法修复”。我不确定我是否正在编辑要发送的pdf。任何帮助表示赞赏。
using (MemoryStream ms = new MemoryStream())
{
PdfStamper formFiller = new PdfStamper(reader, ms);
AcroFields formFields = formFiller.AcroFields;
formFields.SetField("Name", formData.Name);
formFields.SetField("Location", formData.Address);
formFields.SetField("Date", DateTime.Today.ToShortDateString());
formFields.SetField("Email", formData.Email);
formFiller.FormFlattening = true;
formFiller.Close();
MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("to@email.com"));
msg.From = new MailAddress("from@email.com");
msg.Subject = "Application Form";
msg.Body = "TEST";
msg.IsBodyHtml = true;
ms.Position = 0;
msg.Attachments.Add(new Attachment(ms, "Application.pdf", "application/x-pdf"));
SmtpClient client = new SmtpClient("10.1.1.15");
client.UseDefaultCredentials = true;
}
答案 0 :(得分:1)
我认为当您将数据写入MemoryStream时,您需要将流的位置重置为0,然后再次读取它。
尝试使用FileStream而不是MemoryStream保存到临时文件中,以便缩小问题范围。