Office文档转pdf格式(二)
  vDhTkiDIVuhn 2023年12月31日 21 0

  上一篇我们使用的是微软的Office组件将Word、Excel、Powerpoint转为pdf格式,本文将使用WPS Office组件进行转换。步骤如下:

 ① 添加WPS组件相关引用

    

    

 注:wpsapi.dll 对应的是Word 文件API;etapi.dll 对应的是Excel 文件API;wppapi 对应的是PPT 文件API;

② 编写Office帮助类

public class WPSOfficeHelper
    {

        /// <summary>
        /// Word转换为pdf文件,适合(.doc、.docx、.mht、.htm文件类型)
        /// </summary>
        /// <param name="sourceFileName">源文件</param>
        /// <param name="targetFileName">目标文件</param>
        /// <returns></returns>
        public static bool WordToPdf(string sourceFileName, string targetFileName)
        {
            Word.Application wordApp = new Word.Application();
            Word._Document wordDoc = null;
            try
            {
                wordApp.Visible = false;
                wordDoc = wordApp.Documents.Open(sourceFileName, false, true);
                wordDoc.ExportAsFixedFormat(targetFileName, Word.WdExportFormat.wdExportFormatPDF);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }

            finally
            {
                if (wordDoc != null)
                {
                    wordDoc.Close(false);
                    wordDoc = null;
                }
                if (wordApp != null)
                {
                    wordApp.Quit(false);
                    wordApp = null;
                }
            }
        }

        /// <summary>
        /// Excel转换为pdf文件
        /// </summary>
        /// <param name="sourceFileName">源文件</param>
        /// <param name="targetFileName">目标文件</param>
        /// <returns></returns>
        public static bool ExcelToPdf(string sourceFileName,string targetFileName)
        {
            Excel.Application excelApp = new Excel.Application();
            Excel._Workbook excelDoc = null;
            try
            {
                excelApp.Visible = false;
                excelDoc = excelApp.Workbooks.Open(sourceFileName, false, true);
                excelDoc.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, targetFileName);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
            finally
            {
                if (excelDoc != null)
                {
                    excelDoc.Close(false);
                    excelDoc = null;
                }
                if (excelApp != null)
                {
                    excelApp.Quit();
                    excelApp = null;
                }
            }
        }

        /// <summary>
        /// PPT转换为pdf文件
        /// </summary>
        /// <param name="sourceFileName">源文件</param>
        /// <param name="targetFileName">目标文件</param>
        /// <returns></returns>
        public static bool PPTToPdf(string sourceFileName, string targetFileName)
        {
            PowerPoint.Application pptApp = new PowerPoint.Application();
            PowerPoint.Presentation pptDoc = null;
            try
            {
                pptDoc = pptApp.Presentations.Open(sourceFileName);
                pptDoc.ExportAsFixedFormat(targetFileName,PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
            finally
            {
                if (pptDoc != null)
                {
                    pptDoc.Close();
                    pptDoc = null;
                }
                if (pptApp != null)
                {
                    pptApp.Quit();
                    pptApp = null;
                }
            }
        }

    }
View Code

    最后,就可以调用进行转换了。

注意:

①该方式目前只能用于Windows系统

②该方式依赖WPS Office软件

③在.net framework和.net core的项目下均可使用(以Win Form项目为例)

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月31日 0

暂无评论

推荐阅读
  NPQODODLqddb   2024年05月17日   69   0   0 .NET
  mVIyUuLhKsxa   2024年05月17日   52   0   0 .NET
  XkHDHG7Y62UM   2024年05月17日   45   0   0 .NET
  f18CFixvrKz8   2024年05月18日   86   0   0 .NET
  rBgzkhl6abbw   2024年05月18日   78   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   41   0   0 .NET
  S34pIcuyyIVd   2024年05月17日   60   0   0 .NET
  gKJ2xtp6I8Y7   2024年05月17日   50   0   0 .NET
  MYrYhn3ObP4r   2024年05月17日   39   0   0 .NET
vDhTkiDIVuhn