В настоящее время я работаю над проектом, в котором мне нужно создать «панель мониторинга», которую можно экспортировать в формате PDF.Я хотел использовать Rotativa, но поскольку наше приложение использует .NET Framework 4.0, это невозможно.Итак, я нашел NReco PdfGenerator.
Вот код, которым я создаю результат PDF:
var ViewAsString = RenderViewAsString("~/Views/QMetrics/StandardDashboard.cshtml", viewModel);
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
htmlToPdf.PageWidth = 1600;
htmlToPdf.PageHeight = 900;
var pdfBytes = htmlToPdf.GeneratePdf(ViewAsString);
FileResult FileResult = new FileContentResult(pdfBytes, "application/pdf");
FileResult.FileDownloadName = "Dashboard-" + viewModel.ProjectName + "-" +
DateTime.Now.ToString() + "-.pdf";
return FileResult;
Он успешно создает страницу PDF со всем содержимым, полученным из бэкэнда (информация о проекте и т. Д.), Ностраница выглядит очень некрасиво.На исходной странице у меня есть 2 столбца, а на странице PDF все помещается в один столбец.Я попробовал несколько разных размеров страниц, и я также изменил макет, чтобы он не отвечал, но ничего не изменилось.
Моим первым предложением было то, что файлы CSS и JS, на которые есть ссылки, не были включены при создании PDF get, поэтому я скопировал весь материал, полученный из внешних файлов (bootstrap, Chart.js), и вставил его непосредственно вФайл .cshtml.Но ничего не изменилось.Моя Диаграмма не рендерится / не загружается, а отсутствующие CSS-элементы все еще отсутствуют.
На веб-сайте NReco PDFGenerator говорят, что он поддерживает сложный код CSS, а также код JavaScript, поэтому я не совсем понимаю, почему это не работает.
Кто-нибудь здесь сталкивается с NReco или кто-то может порекомендовать что-то еще, что работает для .NET 4.0?