更新之前PDF转word遇到的坑 在使用offic系列的转换 在本地测试完全ok,部署到服务器上会出现Could not load file or assembly ‘office, Version=

**更新之前PDF转word遇到的坑 在使用offic系列的转换 在本地测试完全ok,部署到服务器上会出现Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral,等错误。
发布之后 一定要修改服务器应用的权限,否则是调用不了应用的Word或者wps应用的,(引用其他dll)调用其他应用也类型。
**
在我调试的过程中,发现了一种更好的解决办法,就是使用WPS去进行转换,代码如下:` public class WpsWordToPdf : IDisposable
{

    dynamic wps;
    public WpsWordToPdf()
    {
        Type type = Type.GetTypeFromProgID("KWps.Application");
        wps = Activator.CreateInstance(type);
    }
    /// <summary>
    /// 根据word文件的路径转换为pdf文件,并删除word文件
    /// </summary>
    /// <param name="wordFileName">Wps文件路径</param>
    /// <param name="pdfFileName">Pdf文件路径</param>
    /// <returns></returns>
    public void ToPdf(string wordFileName, string pdfFileName = null)
    {
        if (wordFileName == null)
        {
            throw new ArgumentNullException("wpsFilename");
        }
        if (pdfFileName == null)
        {
            pdfFileName = wordFileName.Replace(".docx", ".pdf");
        }
        dynamic doc = wps.Documents.Open(wordFileName, Visible: false);
        //doc 转pdf 
        doc.ExportAsFixedFormat(pdfFileName, 17);
        doc.Close();
        wps.Quit();
        DeleteFileByPath(wordFileName);
    }
    public void Dispose()
    {
        if (wps != null) { wps.Quit(); }
    }
    /// <summary>
    /// 删除根据路径删除文件
    /// </summary>
    /// <param name="path">文件路径</param>
    public static void DeleteFileByPath(string path)
    {
        FileAttributes attr = File.GetAttributes(path);
        if (attr == FileAttributes.Directory)
        {
            Directory.Delete(path, true);
        }
        else
        {
            File.Delete(path);
        }
    }

}

调用

                //word转pdf,并删除word文件
                WpsWordToPdf wpsWordToPdf = new WpsWordToPdf();
                wpsWordToPdf.ToPdf(reportData.FilePath);

可以全美解决问题
切记修改IIs服务器上的 应用程序池中的自己的应用的标识。下班啦!!!

posted @   doufei  阅读(320)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示