#c_sharp #html #pdf
Имеется HTML-страница, состоящая из 3х таблиц(пустых), которые заполняются с помощью JavaScript с определенной периодичностью(данные таблиц обновляются). Страница простматривается с помощью WebBrowser в WPF приложениии. Необходимо сформировать PDF документ, в котором будет содержимое страницы в определенный момент времени (заполненные таблицы). Какими библиотеками это можно выполнить? Пробовал выполнить 2мя способами первый через ExecWB IOleServiceProvider sp = Browser.Document as IOleServiceProvider; if (sp != null) { Guid IID_IWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046"); Guid IID_IWebBrowser2 = new Guid("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E"); const int OLECMDID_PRINT = 6; const int OLECMDEXECOPT_DONTPROMPTUSER = 2; const short PRINT_WAITFORCOMPLETION = 2; dynamic wb; sp.QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, out wb); if (wb != null) { wb.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, PRINT_WAITFORCOMPLETION,null,null); } } Вместо null-ов можно подставить in и out параметры, при попытке указать путь сохранения получаю UnautorisedAccessException Второй способ через PdfSharp, но там я получаю в файле только ту часть WebBrowser, которую вижу на экране, а не всю страницу целиком Альтернативным решением может являться получение чистого Html файла, после выполнения JavaScript
Ответы
Ответ 1
Есть замечательный сервис для конвертации HTML в PDF средствами C#: http://wkhtmltopdf.org Так же есть небольшая библиотека для ускорения работы: https://github.com/codaxy/wkhtmltopdf Думаю сможете разобраться.Ответ 2
Можете попробовать использовать библиотеку для c# iTextsharp, является портом с java itext. Библиотека имеет большой функционал, а так же поддерживает метод перегонки из HTML в PDF. Вот небольшой кусок моего кода, может поможет. html
Акционерное общество «одуванчик» |
Тема: [THEME] |
Выполнил: [AUTHOR] |
[CITY] [YEAR]г. |
Комментариев нет:
Отправить комментарий