我必须创建一个API在点网络核心,这将返回excel作为PDF。Excel运行良好,但是当我尝试以PDF格式发送它时,您可以在下面的代码中看到:
[HttpPost]
[Route("ExportToPdf")]
public IActionResult ExportToPdf()
{
MemoryStream stream = MyClassExcelWorkBook.GetExcel();
return File(stream, "application/pdf", "excel-Demo.pdf");
}MyClassExcelWorkBook是GetExcel()中返回已创建的excel的MemoryStream的类。我已经从epplus.core库创建了excel内存流,这是我从NuGet安装的。有人能帮助创建excel内存流到pdf作为响应吗?
发布于 2022-03-23 15:50:28
xlsx流是Microsoft存档,但PDF是打印机输出,因此基本应用程序不能将zip文件转换为打印机文件,除非使用MS导出XLS呈现到MS打印机。这将是Office.net个人电脑上最好的方法。
假设您允许MS.net用户无需安装任何版本的MS。
EPPlus有许多变体或加载项可以完成对PDF的必要转换,而https://www.nuget.org/packages/EpplusExcel/是专门设计为其中之一的,但它的V1和过去7年没有更新的V1可能不是最好的最终支持解决方案,但是值得一试,看看它的方法是如何为您工作的。它是由https://www.nuget.org/profiles/e-iceblue开发的,一个现代的支付等价物将是spire xlsx产品。
避免互操作的最常见的转换器是使用Libre/ Office及其基本语言替代VBA将表区域打印到PDF打印。
我将避免任何X/HTML方法,如从工作表区域结构更改为不适合PDF固定页面生成的填充文本,除非每个页面/工作表被转换为等于单个PDF页的固定布局。
发布于 2022-03-23 14:52:23
根据EPPlus的官方文件,图书馆不支持任何直接输出到PDF。
但是有一个解决办法是使用EPPlus 6.0 beta特性之一HtmlExporter导出Excel,并获取HtmlExporter和样式。
这可以输入到html到PDF转换器,如iText pdfHTML,sharkPdf(wkhtmltopdf的.NET包装器)导出为pdf。
https://stackoverflow.com/questions/71497423
复制相似问题