Я использую Rotativa для создания подарочного ваучера в формате pdf, который затем прикрепляется к электронному письму и отправляется покупателю. Если я использую Rotativa, чтобы просто сгенерировать PDF-файл в виде файла, он работает блестяще, но когда я прикрепляю этот файл к электронному письму, он теряет качество. Смотрите фотографии ниже:
Хорошее качество из сгенерированного pdf
Плохое качество из отправленного по электронной почте pdf
Код ниже:
public Byte[] pdfVoucher_file(string sk = "", int custInt = 0, string voucher_code = "")
{
var pdf = new ActionAsPdf("getVoucher/" + voucher_code, new { sk = sk, custInt = custInt })
{
FileName = "Voucher_" + voucher_code.ToString().Trim() + ".pdf",
};
Byte[] pdfData = pdf.BuildPdf(ControllerContext);
return pdfData;
}
public void email_Voucher(string sk, string voucher_code)
{
try
{
int constId = 123;
string toEmail = ""[email protected]"
string mailBody = "Your Voucher";
MemoryStream pdfStream = new MemoryStream(pdfVoucher_file(sk, constId, voucher_code));
Attachment pdf = new Attachment(pdfStream, "Voucher_" + voucher_code.Trim() + ".pdf", "application/pdf");
MailMessage mail = new MailMessage()
{
Subject = "Your Gift Voucher",
Body = mailBody,
From = new MailAddress("[email protected]")
};
mail.To.Add(toEmail);
mail.IsBodyHtml = true;
mail.Attachments.Add(pdf);
SmtpClient client = new SmtpClient
{
Port = 25,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Host = "my.mailserver.com"
};
client.Send(mail);
}
catch (Exception) { }
}
Лучше всего предположить, что это как-то связано с преобразованием его в объект Byte[]. Любые идеи, как я могу улучшить качество?