Я работаю с утилитой для конвертации HTML файлов в ExcelPDF для этого вопроса (хотя я открыт для других библиотек при наличии достаточной документации).
Короче говоря, у меня есть представление, которое форматируется определенным образом, и я хотел бы сделать его как документ 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-адрес в представление... Любые другие мысли?
Спасибо!