manishss Ответов: 1

Как сохранить динамический pdf генератор в папке или на сервере в C#


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

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

protected void Page_Load(отправитель объекта, EventArgs e)
{
если (! страница.IsPostBack)
{
// SendSMS("9766018423", "Дорогой господин/Mam , повторное обращение успешно утилизировать для регистрации нет :MHSIC/НГ/с/2016/000005");
DataTable dt = новый DataTable();
ДТ.Столбцы.AddRange(new DataColumn[3] {
новый столбец данных ("OrderId"),
новая колонка данных ("продукт"),
новая колонка данных ("количество")});
dt. Rows. Add(101, "солнцезащитные очки", 5);
dt. Rows. Add(102, "джинсы", 2);
dt. Rows. Add(103, "брюки", 12);
dt. Rows. Add(104, "рубашки", 9);
SendPDFEmail(dt);
}
}
private void SendPDFEmail(DataTable dt)
{
использование (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
строку "название" = "ASPSnippets";
int orderNo = 2303;
Проверьте новое окно инструментов();
СБ.Добавить("");
СБ.Добавить("");
СБ.Добавить("");
СБ.Добавить("");
СБ.Добавить("");
СБ.Добавить("
Лист Заказа
Приказ № :");
sb. Append(orderNo);
СБ.Добавить("
Дата: ");
СБ.Добавить(Тип Datetime.Сейчас);
СБ.Добавить("
название компании : ");
СБ.Добавить ("название");
СБ.Добавить("
");
СБ.Добавить("
");
СБ.Добавить("");
СБ.Добавить("");
foreach (столбец DataColumn в dt.Столбцы)
{
СБ.Добавить("");
}
СБ.Добавить("");
по каждому элементу (объекта datarow Row в ДТ.Строк)
{
СБ.Добавить("");
foreach (столбец DataColumn в dt.Столбцы)
{
СБ.Добавить("");
}
СБ.Добавить("");
}
СБ.Добавить("
");
СБ.Добавить(колонка.Имя_столбца);
СБ.Добавить("
");
sb. Append(строка[столбец]);
СБ.Добавить("
");
StringReader sr = новый StringReader(sb. ToString());

Документ pdfDoc = новый документ(PageSize. A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = новый HTMLWorker(pdfDoc);
использование (MemoryStream memoryStream = новый MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Открыть();
htmlparser.Синтаксический анализ(СР);
pdfDoc.Рядом();
byte[] bytes = memoryStream.Метод toArray();
поток памяти.Закрывать();
Получить помощь получить помощь = Новый получить помощь();
Почтовый адрес fromAddress = новый адрес электронной почты(диспетчер конфигураций.AppSettings ["имя пользователя"]);
почтовое сообщение.From = fromAddress;
почтовое сообщение.Для.Добавить(Диспетчер Конфигураций.AppSettings ["имя пользователя"]);
почтовое сообщение.Body = " это тестовая электронная почта";
почтовое сообщение.IsBodyHtml = true;
почтовое сообщение.Тема = " Второе Обращение";
Системы.Нет.Почте.Привязанность привязанность;


attachment=new Attachment(new MemoryStream(bytes), " iTextSharpPDF. pdf");

почтовое сообщение.Вложения.Добавить (вложение);
SmtpClient smtpClient = новый SmtpClient();
smtpClient.Host = ConfigurationManager.AppSettings ["хост"];
smtpClient.Порт = Преобразовать.ToInt32(ConfigurationManager.AppSettings ["порт"]);
smtpClient.Отправить (mailMessage);



Элемента управления scriptmanager.RegisterStartupScript(это, это.GetType (), " перенаправление",
"alert ('Mail Send ');", true);

}
}
}
}

1 Ответов

Рейтинг:
8

ManojDhobale

Вы могли бы просто использовать.

File.WriteAllBytes(@"C:\yourserverFolder\filename.pdf", bytes);


manishss

спасибо @Manoj