Member 14330973 Ответов: 1

Создание Pdf-файла и отправка его в виде почтового вложения


у меня есть форма ввода , которую я заполнил, теперь при отправке я хочу отправить детали в форме ввода в формате pdf по почте в виде вложения


Код:


[Авторизовать]
[HttpGet]
public ActionResult InCountryForm(строка ac)
{
DisplayLnd dn = новый DisplayLnd();
DbAccess da = новый DbAccess();
dn.Lnd_Program = новый LndFeedback.Модели.lnd_prgm();
ду.Lnd_Program.create_date = Датавремя.Сейчас;
dn.Lnd_Program.from_date = DateTime.Now;
dn.Lnd_Program.till_date = DateTime.Now;
dn.Lnd_Program.create_by = пользователь.Идентичности.Название;
ду.Lnd_Program.prgm_id = ас;
dn.Lnd_Program.prgm_type = "в стране";
dn.Lnd_Program.country_id = 72;
dn.Lnd_Program.no_of_attendees = "0";
dn.txt = DateTime.Now.ToString("dddd, dd MMMM yyyy");
dn.nwTm = DateTime.Now.Тошорттиместринг();
//dn.Lnd_Program.from_date = dn.Lnd_Program.from_date;
//dn.Lnd_Program.till_date = dn.Lnd_Program.till_date;
dn.ListAgency = da.FindAgencyList();
dn.ListState = da.FindStates();
смотреть возвращение(ду);
}

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult InCountryForm(DisplayLnd dn)
{

DbAccess da = новый DbAccess();
lnd_prgm Lnd_Program = dn.Lnd_Program;

Объект DisplayLnd содержит все сведения, заполненные в методе GET
я хочу создать pdf-файл в методе post, а затем отправить его по почте человеку.

Что я уже пробовал:

созданный pdf-файл не должен храниться ни на одном сервере. Так что в основном на лету pdf-файл, а затем отправить его по почте в виде вложения.

Member 14330973

Я использовал следующий код в методе post
строка appl_str = "Уважаемый сэр/мадам,мы получили обратную связь со следующими деталями против вашего идентификатора приложения " + ""+dn.Lnd_Program.prgm_id + ":";
appl_str = appl_str + "" + " Сведения О Заявителе";
appl_str = appl_str + "";
appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "имя" + fname + "код зарплаты" + lnd_app.create_by + "пол" + dis.gender.ToUpper() + "имя отца" + award_app.APPL_FATHER + "имя матери" + award_app.APPL_MOTHER + "категория" + dis.category.ToUpper() + "Class" + dis.cat_class.ToUpper() + "институт" + award_app.APPL_SCHOOL_COLLEGE + "язык" + award_app.APPL_PREFERRED_LANGUAGE + " ";
//appl_str = appl_str + "" + " Адрес Для Переписки Заявителя";
//appl_str = appl_str + "";
//appl_str = appl_str + "в таблице, тд, тд {границы: 1px твердых черный;}й, ТД {обивка: 8 Пикс;текст-выровняйте: центр;} Адрес Для Переписки Заявителя";
appl_str = appl_str + "";
appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
//appl_str = appl_str + "";
appl_str = appl_str + "адрес" + award_app.APPL_ADDR_1 + "" + award_app.APPL_ADDR_2 + "город" + ду.Lnd_Program.agency_name + "района" + ду.Lnd_Program.pgm_city + "государство" + Дис.add_state + "пин-код города" + award_app.APPL_ADDR_PIN + "номер мобильного телефона/города" + award_app.APPL_MOBILE_NO + "альтернативный мобильный номер" + award_app.APPL_ALT_MOBILE_NO + "письмо" + award_app.APPL_ADDR_EMAIL + "дата и время подачи заявки" + ду.Lnd_Program.create_date + " ";
appl_str = appl_str + "для любого запроса, пожалуйста, напишите нам по адресу test@test.in с вашим идентификатором приложения.";
appl_str = appl_str + "уважением" + "АБВ" + "";
Ответ.Четкий();
Ответ.ContentType = "приложение/pdf";
Ответ.AddHeader("content-disposition", "attachment;filename=" + dn.Lnd_Program.prgm_id.Метод toString() + ".формат PDF");
Ответ.Кэш.SetCacheability(HttpCacheability.NoCache);
Ответ.BinaryWrite(GetPDF(appl_str));
Ответ.Конец();
Но это загружает pdf-файл......как использовать вышеуказанный pdf-файл в качестве почтового вложения.

Функция GetPDF.....

public byte[] GetPDF(string pHTML)
{
byte[] bPDF = null;

MemoryStream ms = Новый Поток памяти();
TextReader txtReader = новый StringReader(pHTML);

// 1: создание объекта класса документа itextsharp
Document doc = новый документ(PageSize.A4, 25, 25, 25, 25);

// 2: мы создаем itextsharp pdfwriter, который прослушивает документ и направляет XML-поток в файл
PdfWriter oPdfWriter = PdfWriter.GetInstance(doc, ms);

// 3: Создаем рабочий разбор документа
HTMLWorker htmlWorker = новый HTMLWorker(doc);

// 4: мы открываем документ и запускаем работника над документом
док.Открыть();
htmlWorker.Тот();


// 5: разбор html-кода в документе
htmlWorker.Parse(txtReader);

// 6: закройте документ и работника
htmlWorker.EndDocument();
htmlWorker.Закрывать();
док.Закрывать();

bPDF = МС.Метод toArray();

возврат bPDF;

1 Ответов

Рейтинг:
1

MadMyche

Вероятно, лучший способ сделать это-иметь шаблон PDF и с помощью Acrobat SDK заполнить пробелы для этого шаблона. Как только вы это сделаете, вы можете взять PDF-объект из памяти и закодировать его непосредственно в тело письма.

Я лично сохранил бы PDF-файл, по крайней мере временно, а затем использовал бы методы вложения, чтобы поместить PDF-файл в электронную почту.


Member 14330973

как я могу временно Сохранить pdf-файл, а затем использовать его в Почте? так как после заполнения формы ввода кнопка Отправить должна автоматически вызвать почту вместе с вложением.

MadMyche

Серверная скрипта, отправляющая электронное письмо, должна выполнить создание PDF-файла перед отправкой письма