iText 7 прикрепить к электронной почте - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь прикрепить PDF-файл, созданный с помощью iText7, к электронному письму.Письмо успешно отправлено, но прикрепленный PDF-файл всегда поврежден и имеет размер около 15 байт.Согласно моим прочтениям, это должно быть легко выполнено с помощью MemoryStream, но я думаю, что я испортил «порядок операций».

MemoryStream ms = new MemoryStream();
string fileName = vm.ClientFirstName + vm.ClientLastName + vm.SubmittedDate.Year + vm.SubmittedDate.Month + vm.SubmittedDate.Day + "referral.pdf";
PdfWriter writer = new PdfWriter(ms);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
PdfFont font = PdfFontFactory.CreateFont(iText.IO.Font.Constants.StandardFonts.HELVETICA);
Image img = new Image(ImageDataFactory.Create(HttpContext.Current.Server.MapPath("~\\Content\\Images\\banner.png")));
List list = new List().SetSymbolIndent(12).SetListSymbol("").SetFont(font);
document.Add(img);
document.Add(new Paragraph("Radiology Referral").SetFont(font).SetFontSize(24));
document.Add(new Paragraph("VARIOUS BITS OF INFORMATION FROM THE FORM IN STRING FORMAT").SetFont(font));
document.Flush();
writer.Flush();
ms.Position = 0;
var message = new MailMessage("example@example.com", "example@example.com", "PDF Report", "See the attached PDF.");
var attachment = new Attachment(ms, fileName);
message.Attachments.Add(attachment);

//send email...

Что я испортил?Если я делаю все неправильно, рабочий пример будет фантастическим.Заранее спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Вам нужно добавить

pdf.Close();

Это вызовет pdf.Flush(), что будет записывать в основной поток.

...