Как печатать текущую страницу с webBrowser control в pdf? Всем привет! Хочу печатать текущую страницу с webBrowser в pdf
В 10 винде есть “Microsoft Print to PDF”
Стандартные примеры, когда принтеру посылают графику - работают.... а вот как послать на печать текущую страницу webBrowser контрола? Причем без диалоговых окон, так как мне программно разные страницы нужно сохранять.private void button4_Click(object sender, EventArgs e)
{
// generate a file name as the current date/time in unix timestamp format
string file = (string)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString();
// the directory to store the output.
string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// initialize PrintDocument object
PrintDocument doc = new PrintDocument();
doc.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);

doc.PrinterSettings.PrinterName = "Microsoft Print to PDF";
// tell the object this document will print to file
doc.PrinterSettings.PrintToFile = true;
doc.PrinterSettings.PrintFileName = Path.Combine(directory, file + ".pdf");
doc.Print();
//webBrowser1.Print();
}
private void pd_PrintPage(object o, PrintPageEventArgs e)
{
webBrowser1.Navigate("https://stackoverflow.com/questions/40812996/programmatically-provide-a-filepath-as-input-file-for-microsoft-print-to-pdf-p");
}
сохраняет пустой пдф документ...

21 Авг 2019 в 06:28
177 +1
0
Ответы
1

Вы можете использовать библиотеку iTextSharp для создания PDF файлов в C#. Вот пример кода, который позволит вам сохранить текущую страницу webBrowser control в PDF файл:

private void button4_Click(object sender, EventArgs e)
{
// generate a file name as the current date/time in unix timestamp format
string file = (string)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds.ToString();
// the directory to store the output.
string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// initialize a PDF document
iTextSharp.text.Document doc = new iTextSharp.text.Document();
PdfWriter.GetInstance(doc, new FileStream(Path.Combine(directory, file + ".pdf"), FileMode.Create));
doc.Open();
// get the HTML content of the web page
string html = webBrowser1.DocumentText;
// parse the HTML content and add it to the PDF document
iTextSharp.text.html.simpleparser.HTMLWorker worker = new iTextSharp.text.html.simpleparser.HTMLWorker(doc);
worker.Parse(new StringReader(html));
doc.Close();
}

Убедитесь, что вы добавили ссылку на библиотеку iTextSharp именно для вашего проекта. Также, учтите, что данная библиотека может не обрабатывать все HTML элементы и стили на вашей веб-странице, поэтому результат может отличаться от оригинала.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир