如何在电子邮件中编辑/发送pdf模板?

时间:2011-06-02 19:27:35

标签: c# .net asp.net email pdf

我有一个模板,我想通过电子邮件进行编辑和发送。我有以下代码,但编辑后的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;
    }

1 个答案:

答案 0 :(得分:1)

我认为当您将数据写入MemoryStream时,您需要将流的位置重置为0,然后再次读取它。

尝试使用FileStream而不是MemoryStream保存到临时文件中,以便缩小问题范围。