翼度科技»论坛 编程开发 .net 查看内容

Office文档转pdf格式(二)

3

主题

3

帖子

9

积分

新手上路

Rank: 1

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

    

 注:wpsapi.dll 对应的是Word 文件API;etapi.dll 对应的是Excel 文件API;wppapi 对应的是PPT 文件API;
② 编写Office帮助类
  1. public class WPSOfficeHelper
  2.     {
  3.         /// <summary>
  4.         /// Word转换为pdf文件,适合(.doc、.docx、.mht、.htm文件类型)
  5.         /// </summary>
  6.         /// <param name="sourceFileName">源文件</param>
  7.         /// <param name="targetFileName">目标文件</param>
  8.         /// <returns></returns>
  9.         public static bool WordToPdf(string sourceFileName, string targetFileName)
  10.         {
  11.             Word.Application wordApp = new Word.Application();
  12.             Word._Document wordDoc = null;
  13.             try
  14.             {
  15.                 wordApp.Visible = false;
  16.                 wordDoc = wordApp.Documents.Open(sourceFileName, false, true);
  17.                 wordDoc.ExportAsFixedFormat(targetFileName, Word.WdExportFormat.wdExportFormatPDF);
  18.                 return true;
  19.             }
  20.             catch (Exception ex)
  21.             {
  22.                 return false;
  23.             }
  24.             finally
  25.             {
  26.                 if (wordDoc != null)
  27.                 {
  28.                     wordDoc.Close(false);
  29.                     wordDoc = null;
  30.                 }
  31.                 if (wordApp != null)
  32.                 {
  33.                     wordApp.Quit(false);
  34.                     wordApp = null;
  35.                 }
  36.             }
  37.         }
  38.         /// <summary>
  39.         /// Excel转换为pdf文件
  40.         /// </summary>
  41.         /// <param name="sourceFileName">源文件</param>
  42.         /// <param name="targetFileName">目标文件</param>
  43.         /// <returns></returns>
  44.         public static bool ExcelToPdf(string sourceFileName,string targetFileName)
  45.         {
  46.             Excel.Application excelApp = new Excel.Application();
  47.             Excel._Workbook excelDoc = null;
  48.             try
  49.             {
  50.                 excelApp.Visible = false;
  51.                 excelDoc = excelApp.Workbooks.Open(sourceFileName, false, true);
  52.                 excelDoc.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, targetFileName);
  53.                 return true;
  54.             }
  55.             catch (Exception ex)
  56.             {
  57.                 return false;
  58.             }
  59.             finally
  60.             {
  61.                 if (excelDoc != null)
  62.                 {
  63.                     excelDoc.Close(false);
  64.                     excelDoc = null;
  65.                 }
  66.                 if (excelApp != null)
  67.                 {
  68.                     excelApp.Quit();
  69.                     excelApp = null;
  70.                 }
  71.             }
  72.         }
  73.         /// <summary>
  74.         /// PPT转换为pdf文件
  75.         /// </summary>
  76.         /// <param name="sourceFileName">源文件</param>
  77.         /// <param name="targetFileName">目标文件</param>
  78.         /// <returns></returns>
  79.         public static bool PPTToPdf(string sourceFileName, string targetFileName)
  80.         {
  81.             PowerPoint.Application pptApp = new PowerPoint.Application();
  82.             PowerPoint.Presentation pptDoc = null;
  83.             try
  84.             {
  85.                 pptDoc = pptApp.Presentations.Open(sourceFileName);
  86.                 pptDoc.ExportAsFixedFormat(targetFileName,PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF);
  87.                 return true;
  88.             }
  89.             catch (Exception ex)
  90.             {
  91.                 return false;
  92.             }
  93.             finally
  94.             {
  95.                 if (pptDoc != null)
  96.                 {
  97.                     pptDoc.Close();
  98.                     pptDoc = null;
  99.                 }
  100.                 if (pptApp != null)
  101.                 {
  102.                     pptApp.Quit();
  103.                     pptApp = null;
  104.                 }
  105.             }
  106.         }
  107.     }
复制代码
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】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具