Я работаю с утилитой ExpertPDF Html-to-PDF для этого вопроса (хотя я открыт для других библиотек, если есть достаточно документации).
Короче говоря, у меня есть представление, которое отформатировано определенным образом, и я хотел бы отобразить его в виде документа PDF, который пользователь может сохранить на диск.
Пока что у меня есть PrintService (который реализует интерфейс IPrintService), и в этой реализации есть две перегрузки для PrintToPDF (), одна из которых принимает только URL, а другая - строку HTML, и обе из которых возвращают байт []. Я только проработал детали второй перегрузки, которая требует строку HTML.
То, что я хотел бы сделать с моего контроллера, выглядит примерно так:
public FileStreamResult Print(int id)
{
var model = _CustomRepository.Get(id);
string renderedView = SomethingThatRendersMyViewAsAString(model);
Stream byteStream = _PrintService.PrintToPdf(renderedView);
HttpContext.Response.AddHeader("content-disposition",
"attachment; filename=report.pdf");
return new FileStreamResult(byteStream, "application/pdf");
}
, который теоретически выдает PDF на страницу. Это «SomethingThatRendersMyViewAsAString», с которой я ищу помощи. Есть ли быстрый способ получить строковое представление вида? Или, может быть, я должен просто придерживаться перегрузки URL-адреса и передать URL-адрес для просмотра ... Есть еще мысли?
Спасибо!