首页 程序笔记 C# Word转换成Pdf的方法

C# Word转换成Pdf的方法

ASP.NET将word文档转换成pdf的代码。

一、添加引用

using Microsoft.Office.Interop.Word;

二、转换方法

1、方法

/// <summary>

    /// 把Word文件转换成pdf文件

    /// </summary>

    /// <param name="sourcePath">需要转换的文件路径和文件名称</param>

    /// <param name="targetPath">转换完成后的文件的路径和文件名名称</param>

    /// <returns>成功返回true,失败返回false</returns>

    public static bool WordToPdf(string sourcePath, string targetPath)

    {

        bool result = false;

        WdExportFormat wdExportFormatPDF = WdExportFormat.wdExportFormatPDF;//转换格式1.wdExportFormatPDF转换成pdf格式 2.wdExportFormatXPS转换成xps格式

        object missing = Type.Missing;

        Microsoft.Office.Interop.Word.ApplicationClass applicationClass = null;

        Document document = null;

        try

        {

            applicationClass = new Microsoft.Office.Interop.Word.ApplicationClass();

            object inputfileName = sourcePath;//需要转格式的文件路径

            string outputFileName = targetPath;//转换完成后PDF或XPS文件的路径和文件名名称

            WdExportFormat exportFormat = wdExportFormatPDF;//导出文件所使用的格式

            bool openAfterExport = false;//转换完成后是否打开

            WdExportOptimizeFor wdExportOptimizeForPrint = WdExportOptimizeFor.wdExportOptimizeForPrint;//导出方式1.wdExportOptimizeForPrint针对打印进行导出,质量较高,生成的文件大小较大。2.wdExportOptimizeForOnScreen 针对屏幕显示进行导出,质量较差,生成的文件大小较小。

            WdExportRange wdExportAllDocument = WdExportRange.wdExportAllDocument;//导出全部内容(枚举)

            int from = 0;//起始页码

            int to = 0;//结束页码

            WdExportItem wdExportDocumentContent = WdExportItem.wdExportDocumentContent;//指定导出过程中是否只包含文本或包含文本的标记.1.wdExportDocumentContent:导出文件没有标记,2.导出文件有标记

            bool includeDocProps = true;//指定是否包含新导出的文件在文档属性

            bool keepIRM = true;//

            WdExportCreateBookmarks wdExportCreateWordBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks;//1.wdExportCreateNoBookmarks:不要在导出文件中创建书签,2.wdExportCreateHeadingBookmarks:标题和文本框导出的文件中创建一个书签,3.wdExportCreateWordBookmarks每个字的书签,其中包括除包含页眉和页脚中的所有书签导出的文件中创建一个书签。

            bool docStructureTags = true;

            bool bitmapMissingFonts = true;

            bool UseISO19005_1 = false;//生成的文档是否符合 ISO 19005-1 (PDF/A)

            document = applicationClass.Documents.Open(ref inputfileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

            if (document != null)

            {

                document.ExportAsFixedFormat(outputFileName, exportFormat, openAfterExport, wdExportOptimizeForPrint, wdExportAllDocument, from, to, wdExportDocumentContent, includeDocProps, keepIRM, wdExportCreateWordBookmarks, docStructureTags, bitmapMissingFonts, UseISO19005_1, ref missing);

            }

            result = true;

        }

        catch

        {

            result = false;

        }

        finally

        {

            if (document != null)

            {

                document.Close(ref missing, ref missing, ref missing);

                document = null;

            }

            if (applicationClass != null)

            {

                applicationClass.Quit(ref missing, ref missing, ref missing);

                applicationClass = null;

            }

        }

        return result;

    }

2、简洁方法

/// <summary>

    /// 把Word文件转换成pdf文件

    /// </summary>

    /// <param name="sourcePath">需要转换的文件路径和文件名称</param>

    /// <param name="targetPath">转换完成后的文件的路径和文件名名称</param>

    /// <returns>成功返回true,失败返回false</returns>

    public static bool WordToPdf(object sourcePath, string targetPath)

    {

        bool result = false;

        WdExportFormat wdExportFormatPDF = WdExportFormat.wdExportFormatPDF;

        object missing = Type.Missing;

        Microsoft.Office.Interop.Word.ApplicationClass applicationClass = null;

        Document document = null;

        try

        {

            applicationClass = new Microsoft.Office.Interop.Word.ApplicationClass();

            document = applicationClass.Documents.Open(ref sourcePath, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);

            if (document != null)

            {

                document.ExportAsFixedFormat(targetPath, wdExportFormatPDF, false, WdExportOptimizeFor.wdExportOptimizeForPrint, WdExportRange.wdExportAllDocument, 0, 0, WdExportItem.wdExportDocumentContent, true, true, WdExportCreateBookmarks.wdExportCreateWordBookmarks, true, true, false, ref missing);

            }

            result = true;

        }

        catch

        {

            result = false;

        }

        finally

        {

            if (document != null)

            {

                document.Close(ref missing, ref missing, ref missing);

                document = null;

            }

            if (applicationClass != null)

            {

                applicationClass.Quit(ref missing, ref missing, ref missing);

                applicationClass = null;

            }

        }

        return result;

    }

三、方法调用

 OfficeToPdf.WordToPdf("d:\\1234.doc", "d:\\1234.pdf");

2

站心网

ASP.NET将word文档转换成pdf的代码。 一、添加引用 using Microsoft.Office.Interop.Word; 二、转换方法 1..

为您推荐

软件产品开发中常见的10个问题及处理方法

常见的10个问题#产品开发中常见的10个问题思维导图需求相关#1. 需求不明确#在日常工作中,需求来源于用户、老板、客户、竞品分析、业务部门、产品经理等,这些人或部门会提出需求,因为他们不是产品经理,提出的需求..

一个提升运营/营销转化率的万能方法!

之前,笔者有分享过说我最喜欢的增长是可复制可持续的增长,它一般都会有三个关键过程:首先是小范围测试,低成本试错,也就是最小可行性验证,让ROI最大化。然后是把测试的最优结果整理为可执行的标准化化流程。前..

学习最重要是方法,管理最重要是高度

技术学习要兼顾深度和广度夯实技术基础这么多年来,我面试了很多人。我越发感到「技术基础」非常重要。很多技术的本质是一样的。技术基础足够好的话,学东西可以非常快。往下到操作系统层面,甚至计算机硬件层面,你..

Java中String类常见的方法

以下介绍字符串常见的几个方法。介绍String类在 Java 中,String类是一个代表字符串的类,具有以下特性:不可变性:String对象一旦被创建就是不可变的,即它们的值在创建后不能被更改。任何对String对象的修改操作实..

.net 通过 HttpClient 下载文件同时报告进度的方法

通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsync 可以返回当前读到的长度,将读取到的长度加起来就是已经下载的长度看起来很简单,于是直接给代码private static async Task ..

javascript 6种连接数组的方法和对比

在 JavaScript 中,有多种方法可以用来连接数组,以下是常见的几种:1. concat() 方法用于连接两个或多个数组,返回一个新的数组,不修改原数组。const arr1 = [1, 2, 3];const arr2 = [4, 5, 6];const result = arr..

.NET开源ORM FreeSql常见问题和解决方法

FreeSql 是一个功能强大的 .NET 开源 ORM(对象关系映射)工具,支持多种数据库类型并提供丰富的功能特性。以下是使用 FreeSql 过程中常见的问题及其解决方法:1. 数据库连接问题问题描述:无法连接数据库,报错提示..

js 数组方法 - 修改篇

js数组方法可分为三类:修改、访问、迭代。修改:改变原有数组访问:不改变原有数组,从原有数组中获取数据迭代:对数组的每一项进行处理,返回数据本文主要介绍数组的修改篇一、增加1、push()含义:在数组末尾添加..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

.NET开发中常见的异常报错原因和解决方法?

在 .NET 开发中,常见的报错通常涉及代码编写、配置和运行时环境。以下是一些常见的报错类型及其解决建议:1. NullReferenceException原因:尝试访问空对象的成员。解决:在访问对象之前检查是否为 null,可以使用 C..

修改VisualSVN Server地址为ip地址,修改svn服务端地址为ip或者域名地址的方法

svn服务端搭建成功之后,地址太长很麻烦,想搞一个服务器专门做svn服务端,修改svn地址为ip地址无奈网上教程不靠谱,于是自己研究了下1.修改VisualSVN 的地址2修改地址并保存很多人不成功就在这里,点击确认之后复制..

Angular Mock 一个类的静态方法

理解 Angular Mock 和 静态方法在 Angular 单元测试中,Angular Mock 是一个强大的工具,它允许我们模拟和替换 Angular 的服务、组件和其他依赖项。而静态方法 是属于类本身,而不是类的实例的方法。它们可以直接通..

解决.NET JAVA PHP中写入及读取memcache中数据不一致的方法

解决.NET JAVA PHP中写入及读取memcache中数据不一致的方法。公司部分接口使用PHP开发,部分接口使用.NET开放,.NET使用redis,PHP使用memcache作为分布式缓存服务器,但是部分业务需要.NET读取memcache里的数据。m..

AutoMapper使用方法

什么是AutoMapper? 一些orm框架,在用到Entity的时候有一些开源代码用到了automapper,将数据对象转成DTO。比如在ORM中,与数据库交互用的Model模型是具有很多属性。而当我们与其它系统(或系统中的其它结构)进行..

.NET调试Windows服务的方法

很多朋友编写Windows服务的时候都会觉得调试很麻烦,甚至不知道怎么调试。有些人可能添加个windows窗体用按键触发相关方法或者靠打印日志调试,那么到底windows服务怎么调试呢? 怎么编写代码就不说了。就说调试吧,..

c# ThreadPool使用方法

ThreadPool类提供一个线程池,该线程池可用于发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。 线程池通过为应用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程。一个线程监视排到线程..

WebClient上传文件方法UploadFile

测试环境 服务器端:Windows Server 2003,IIS6.0. 上传文件的代码: [csharp] view plaincopy在CODE上查看代码片派生到我的代码片 using (WebClient client = new WebClient() { Credentials = CredentialCache.De..

c#.net字符串处理方法

1.字符串比较 字符串.ComparTo(目标字符串) "a".ComparTo("b"); 2.查找子串 字符串.IndexOf(子串,查找其实位置) ; 字符串.LastIndexOf(子串) ;最后一次出现的位置 str.IndexOf("ab",0); 3.插入子串 字符串.Insert(..

WebApi中使用OutPutCache Strathweb.CacheOutput.WebApi2使用方法

ASP.NET WebApi里没有MVC里的OutPutCache缓存,使用Strathweb.CacheOutput.WebApi2可以实现OutPutCache功能。首先从Nuget安装最新的Strathweb.CacheOutput.WebApi2版本。Strathweb.CacheOutput.WebApi2使用方法很简..

在ASP.NET Core 2.1中使用HttpClientFactory的3种方法

Microsoft在.NET Framework 4.5中引入了HttpClient,这是在.NET服务器端代码中使用Web API最流行的方法。但是,它存在一些严重的问题,比如处理HttpClient对象不会立即关闭套接字,影响性能的实例太多,以及singleto..

发表回复

返回顶部