如何在内存流中获取word文件,将其存储在缓冲区中并return作为PDF?
How to take word file in memory stream, store it in buffer and return as PDF?
我搜索了很多this, this, this关于如何在 C# 中将 word 文件转换为 pdf,但似乎所有的方法:
1)itextsharp -- 需要许可证(买不起)
2)Interop.Word -- 需要安装 Office\word 才能使用(不可以)
3)winnovative wordtopdf -- 需要许可证(买不起)
4)evopdf.word转pdf -- 同winnovative wordtopdf(买不起)
5) 在线 api 的 -- 安全漏洞
我的想法是在 Filestream 中获取数据并将其作为 word 文件进行操作,如下所示:
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
FileStream fileStream = System.IO.File.OpenRead(FilePath);
response.Content = new StreamContent(fileStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return new FileContentResult(response.Content.ReadAsByteArrayAsync().Result, "application/pdf");
当然,此代码将不起作用,但我可以知道我添加了哪些额外参数,或者 word 到 pdf 转换器的实际工作原理是什么?或者也许将 word 文件转换为 OpenXMl(读取它写在某处)然后转换为 PDf?提前致谢。
顺便说一句,所有这些都是在 MVC 控制器中完成的。
编辑1。请注意我已经提到过我不能使用 Interop。所以这不是我想要的答案。
遗憾的是,OpenXML 不是一个完整的选项,因为它不包含将 Word 文档转换为 PDF 文件的渲染引擎 - 它只包含读取和解释 OpenXML 文件格式的 SDK。 (参见:)
您的代码在读取文件后需要一个渲染阶段。 PDF 是一种很好的文件格式,但众所周知难以处理,这就是推荐使用 Interop 或外部库的原因。如果 Interop 对您来说不是一个可行的解决方案,您可能不得不推迟到 iText 等外部资源才能实现您想要的。
我搜索了很多this, this, this关于如何在 C# 中将 word 文件转换为 pdf,但似乎所有的方法:
1)itextsharp -- 需要许可证(买不起)
2)Interop.Word -- 需要安装 Office\word 才能使用(不可以)
3)winnovative wordtopdf -- 需要许可证(买不起)
4)evopdf.word转pdf -- 同winnovative wordtopdf(买不起) 5) 在线 api 的 -- 安全漏洞
我的想法是在 Filestream 中获取数据并将其作为 word 文件进行操作,如下所示:
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
FileStream fileStream = System.IO.File.OpenRead(FilePath);
response.Content = new StreamContent(fileStream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
return new FileContentResult(response.Content.ReadAsByteArrayAsync().Result, "application/pdf");
当然,此代码将不起作用,但我可以知道我添加了哪些额外参数,或者 word 到 pdf 转换器的实际工作原理是什么?或者也许将 word 文件转换为 OpenXMl(读取它写在某处)然后转换为 PDf?提前致谢。
顺便说一句,所有这些都是在 MVC 控制器中完成的。
编辑1。请注意我已经提到过我不能使用 Interop。所以这不是我想要的答案。
遗憾的是,OpenXML 不是一个完整的选项,因为它不包含将 Word 文档转换为 PDF 文件的渲染引擎 - 它只包含读取和解释 OpenXML 文件格式的 SDK。 (参见:)
您的代码在读取文件后需要一个渲染阶段。 PDF 是一种很好的文件格式,但众所周知难以处理,这就是推荐使用 Interop 或外部库的原因。如果 Interop 对您来说不是一个可行的解决方案,您可能不得不推迟到 iText 等外部资源才能实现您想要的。