• Office文件转PDF


      1  /// <summary>
      2     /// Office转PDF
      3     /// </summary>
      4     public class Office2PDFHelper
      5     {
      6         public Office2PDFHelper()
      7         {
      8             //
      9             // TODO: 在此处添加构造函数逻辑
     10             //
     11         }
     12         /// <summary>
     13         /// Word转换成pdf
     14         /// </summary>
     15         /// <param name="sourcePath">源文件路径</param>
     16         /// <param name="targetPath">目标文件路径</param>
     17         /// <returns>true=转换成功</returns>
     18         public static bool DOCConvertToPDF(string sourcePath, string targetPath)
     19         {
     20             bool result = false;
     21             Word.WdExportFormat exportFormat = Word.WdExportFormat.wdExportFormatPDF;
     22             object paramMissing = Type.Missing;
     23             Word.ApplicationClass wordApplication = new Word.ApplicationClass();
     24             Word.Document wordDocument = null;
     25             try
     26             {
     27                 object paramSourceDocPath = sourcePath;
     28                 string paramExportFilePath = targetPath;
     29                 Word.WdExportFormat paramExportFormat = exportFormat;
     30                 bool paramOpenAfterExport = false;
     31                 Word.WdExportOptimizeFor paramExportOptimizeFor = Word.WdExportOptimizeFor.wdExportOptimizeForPrint;
     32                 Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument;
     33                 int paramStartPage = 0;
     34                 int paramEndPage = 0;
     35                 Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;
     36                 bool paramIncludeDocProps = true;
     37                 bool paramKeepIRM = true;
     38                 Word.WdExportCreateBookmarks paramCreateBookmarks = Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;
     39                 bool paramDocStructureTags = true;
     40                 bool paramBitmapMissingFonts = true;
     41                 bool paramUseISO19005_1 = false;
     42                 wordDocument = wordApplication.Documents.Open(
     43                     ref paramSourceDocPath, ref paramMissing, ref paramMissing,
     44                     ref paramMissing, ref paramMissing, ref paramMissing,
     45                     ref paramMissing, ref paramMissing, ref paramMissing,
     46                     ref paramMissing, ref paramMissing, ref paramMissing,
     47                     ref paramMissing, ref paramMissing, ref paramMissing,
     48                     ref paramMissing);
     49                 if (wordDocument != null)
     50                     wordDocument.ExportAsFixedFormat(paramExportFilePath,
     51                         paramExportFormat, paramOpenAfterExport,
     52                         paramExportOptimizeFor, paramExportRange, paramStartPage,
     53                         paramEndPage, paramExportItem, paramIncludeDocProps,
     54                         paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
     55                         paramBitmapMissingFonts, paramUseISO19005_1,
     56                         ref paramMissing);
     57                 result = true;
     58             }
     59             catch
     60             {
     61                 result = false;
     62             }
     63             finally
     64             {
     65                 if (wordDocument != null)
     66                 {
     67                     wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
     68                     wordDocument = null;
     69                 }
     70                 if (wordApplication != null)
     71                 {
     72                     wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
     73                     wordApplication = null;
     74                 }
     75                 GC.Collect();
     76                 GC.WaitForPendingFinalizers();
     77                 GC.Collect();
     78                 GC.WaitForPendingFinalizers();
     79             }
     80             return result;
     81         }
     82 
     83         /// <summary>
     84         /// 把Excel文件转换成PDF格式文件  
     85         /// </summary>
     86         /// <param name="sourcePath">源文件路径</param>
     87         /// <param name="targetPath">目标文件路径</param>
     88         /// <returns>true=转换成功</returns>
     89         public static bool XLSConvertToPDF(string sourcePath, string targetPath)
     90         {
     91             bool result = false;
     92             Excel.XlFixedFormatType targetType = Excel.XlFixedFormatType.xlTypePDF;
     93             object missing = Type.Missing;
     94             Excel.ApplicationClass application = null;
     95             Excel.Workbook workBook = null;
     96             try
     97             {
     98                 application = new Excel.ApplicationClass();
     99                 object target = targetPath;
    100                 object type = targetType;
    101                 workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing,
    102                     missing, missing, missing, missing, missing, missing, missing, missing, missing);
    103                 workBook.ExportAsFixedFormat(targetType, target, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);
    104                 result = true;
    105             }
    106             catch
    107             {
    108                 result = false;
    109             }
    110             finally
    111             {
    112                 if (workBook != null)
    113                 {
    114                     workBook.Close(true, missing, missing);
    115                     workBook = null;
    116                 }
    117                 if (application != null)
    118                 {
    119                     application.Quit();
    120                     application = null;
    121                 }
    122                 GC.Collect();
    123                 GC.WaitForPendingFinalizers();
    124                 GC.Collect();
    125                 GC.WaitForPendingFinalizers();
    126             }
    127             return result;
    128         }
    129         ///<summary>        
    130         /// 把PowerPoint文件转换成PDF格式文件       
    131         ///</summary>        
    132         ///<param name="sourcePath">源文件路径</param>     
    133         ///<param name="targetPath">目标文件路径</param> 
    134         ///<returns>true=转换成功</returns> 
    135         public static bool PPTConvertToPDF(string sourcePath, string targetPath)
    136         {
    137             bool result;
    138             PowerPoint.PpSaveAsFileType targetFileType = PowerPoint.PpSaveAsFileType.ppSaveAsPDF;
    139             object missing = Type.Missing;
    140             PowerPoint.ApplicationClass application = null;
    141             PowerPoint.Presentation persentation = null;
    142             try
    143             {
    144                 application = new PowerPoint.ApplicationClass();
    145                 persentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse); persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue);
    146                 result = true;
    147             }
    148             catch
    149             {
    150                 result = false;
    151             }
    152             finally
    153             {
    154                 if (persentation != null)
    155                 {
    156                     persentation.Close();
    157                     persentation = null;
    158                 }
    159                 if (application != null)
    160                 {
    161                     application.Quit();
    162                     application = null;
    163                 }
    164                 GC.Collect();
    165                 GC.WaitForPendingFinalizers();
    166                 GC.Collect();
    167                 GC.WaitForPendingFinalizers();
    168             }
    169             return result;
    170         }
    171     }
  • 相关阅读:
    locust与jmeter在压测时的比较
    通过python异步通讯方式构建高并发压力测试工具
    开博寄语
    【linux】【root权限的掌控】
    【linux】【qt5界面】【系统托盘图标的实现】
    【win】【qt5】【本地网络相关信息,诸如ip,mac等】
    【win】【qt5】【qt汉化:输入框之右键英文变中文】
    【linux】【qt5】【qt程序防多开设置,通过设置共享内存实现,超短代码,超级有效】
    【qt】【QString的诸多操作】
    【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】
  • 原文地址:https://www.cnblogs.com/felicitytanyin/p/11981603.html
Copyright © 2020-2023  润新知