Вот мой кусок кода. Он компилируется нормально, и когда я запускаю событие, я получаю электронное письмо, но затем я получаю эту ошибку. ОШИБКА вложения электронной почты в Adobe при открытии (Acrobat не может открыть «Att00002.pdf», потому что это либо не поддерживаемый тип файла, либо потому что файл был поврежден (например, он был отправлен как вложение электронной почты и не был правильно декодирован).
string agentName = "My Name";
MemoryStream _output = new MemoryStream();
PdfReader reader = new PdfReader("/pdf/Agent/Specialist_Certificate.pdf");
using (PdfStamper stamper = new PdfStamper(reader, _output))
{
AcroFields fields = stamper.AcroFields;
// set form fields
fields.SetField("FIELD_AGENT_NAME", agentName);
fields.SetField("FIELD_DATE", AvalonDate);
// flatten form fields and close document
stamper.FormFlattening = true;
SendEmail(_output);
DownloadAsPDF(_output);
stamper.Close();
}
private void SendEmail(MemoryStream ms)
{
Attachment attach = new Attachment(ms, new System.Net.Mime.ContentType("application/pdf"));
EmailHelper.SendEMail("[email protected]", "[email protected]", null, "", "Avalon Cert", "Hope this works", EmailHelper.EmailFormat.Html,attach);
}
ОТРЕДАКТИРОВАНО ****************************************
using (MemoryStream _output = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(reader, _output))
{
AcroFields fields = stamper.AcroFields;
// set form fields
fields.SetField("FIELD_AGENT_NAME", agentName);
fields.SetField("FIELD_DATE", AvalonDate);
// flatten form fields and close document
stamper.FormFlattening = true;
}
SendEmail(_output);
}
PdfStamper
перед вызовомSendEmail
. Вы, вероятно, присоединяете только часть байтового потока PDF, потому что еще не все сброшено для вывода. - person rhens   schedule 13.10.2015