.Net 依赖Office将Word转Pdf的实现

开发环境:VS2017、.Net Core2.1 

需求问题:在使用 Aspose.Words 将Word转为pdf时发现,如果是带有图片的word文档,转换Pdf时,会出现错误,转换失败

一、准备工作

安装Office

在项目中创建.Net 类库,从程序集中添加或者NuGet中搜索安装Microsoft.Office.Interop.Word

二、功能实现

word 转pdf代码实现

        /// 
        /// word文档转pdf
        /// 
        /// word文档路径
        /// 生成的pdf路径
        /// 
        public static void WordToPDF(string sourcePath, string targetPath)
        {
            Application application = new Application();
            Document document = null;
            try
            {
                application.Visible = false;
                document = application.Documents.Open(sourcePath);
                document.ExportAsFixedFormat(targetPath, WdExportFormat.wdExportFormatPDF);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                if (document != null)
                {
                    document.Close();
                }
            }
        }

三、相关问题

在pdf转换过程中如果出现 Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 拒绝访问。 (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).的错误,那么需要做如下操作

打开控制面板,以小图标方式查看,然后找到管理工具,再找到管理工具下的组件服务

.Net 依赖Office将Word转Pdf的实现_第1张图片

.Net 依赖Office将Word转Pdf的实现_第2张图片

在组件服务—— 计算机——我的电脑——DCOM配置 中找到Microsoft Word 97-2003 文档,右击“属性”

.Net 依赖Office将Word转Pdf的实现_第3张图片

选择“标识”选项卡,选择交互式用户 

.Net 依赖Office将Word转Pdf的实现_第4张图片

 

选择“安全”选项卡,将 启动和激活权限、访问权限以及配置权限选择自定义选项 

.Net 依赖Office将Word转Pdf的实现_第5张图片

点击“启动和激活权限” 下方的编辑,添加IIS_IUSRS 用户,然后将启动和激活的四个选项全部选中 

.Net 依赖Office将Word转Pdf的实现_第6张图片

点击“访问权限” 下方的编辑,添加IIS_IUSRS 用户,然后选择本地访问和远程访问

.Net 依赖Office将Word转Pdf的实现_第7张图片

点击“配置权限” 下方的编辑,添加IIS_IUSRS 用户 

 

.Net 依赖Office将Word转Pdf的实现_第8张图片

 

点击确定

你可能感兴趣的:(.Net,.Net,Core,C#,Word)