net core实现htlm转word
1、最开始用的Spire.Doc,但是Spire.Doc只能在windows上使用,部署到docker上无法使用,原因是Spire.Doc使用了库 System.Drawing.Common
2、 之后使用Aspose.Words,示例代码如下:
public static void Run() { Document doc = new Document(@"D:\testhtml.html"); doc.Save(@"D:\aspose_word.docx"); }
可以在windows使用,也可以在linux上使用。不过免费版有水印
3、最后找到了一个库叫sautinsoft.document。可以实现功能,可以linux上使用,并且没有水印。示例代码如下
public static void ConvertFromStream() { // We need files only for demonstration purposes. // The conversion process will be done completely in memory. string inpFile = @"D:\testhtml2.html"; string outFile = @"D:\sautinsoft_word2.docx"; byte[] inpData = File.ReadAllBytes(inpFile); byte[] outData = null; using (MemoryStream msInp = new MemoryStream(inpData)) { // Load a document. DocumentCore dc = DocumentCore.Load(msInp, new SautinSoft.Document.HtmlLoadOptions()); // Save the document to DOCX format. using (MemoryStream outMs = new MemoryStream()) { dc.Save(outMs, new DocxSaveOptions()); outData = outMs.ToArray(); } // Show the result for demonstration purposes. if (outData != null) { File.WriteAllBytes(outFile, outData); System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true }); } }
html转doc给前端返回文件的base64示例代码如下:
byte[] inpData = File.ReadAllBytes(htmlPath); using var msInp = new MemoryStream(inpData); DocumentCore dc = DocumentCore.Load(msInp, new SautinSoft.Document.HtmlLoadOptions()); using MemoryStream outMs = new MemoryStream(); dc.Save(outMs, new DocxSaveOptions()); var outData = outMs.ToArray(); var fileResult = new DownFileResult { FileName = $"word_name.doc", Base64Str = Convert.ToBase64String(outData) };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY