栋梁之才 发表于 2023-11-2 14:33:17

Office文档转pdf格式(二)

  上一篇我们使用的是微软的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项目为例)
 

来源:https://www.cnblogs.com/Artizan/archive/2023/11/02/17804833.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Office文档转pdf格式(二)