zoukankan      html  css  js  c++  java
  • C#操作Office.word(三)

    前面两篇博客讲解了怎么通过程序控制word的生成,包括生成文字、添加表格、添加图片等。这篇博客主要说一下怎么把word图片转换成pdf。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using Microsoft.Office.Core;
    
    namespace PDFTest
    {
        class PDFUtil
        {
            /// <summary>
            /// 把Word文件转换成为PDF格式文件
            /// </summary>
            /// <param name="sourcePath">源文件路径</param>
            /// <param name="targetPath">目标文件路径</param> 
            /// <returns>true=转换成功</returns>
            public static bool WordToPDF(string sourcePath, string targetPath)
            {
                bool result = false;
                Microsoft.Office.Interop.Word.WdExportFormat exportFormat = Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF;
                Microsoft.Office.Interop.Word.ApplicationClass application = null;
    
                Microsoft.Office.Interop.Word.Document document = null;
                try
                {
                    application = new Microsoft.Office.Interop.Word.ApplicationClass();
                    application.Visible = false;
                    document = application.Documents.Open(sourcePath);
                    document.SaveAs2();
                    document.ExportAsFixedFormat(targetPath, exportFormat);
                    result = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    result = false;
                }
                finally
                {
                    if (document != null)
                    {
                        document.Close();
                        document = null;
                    }
                    if (application != null)
                    {
                        application.Quit();
                        application = null;
                    }
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                return result;
            }
    
            /// <summary>
            /// 把Microsoft.Office.Interop.Excel文件转换成PDF格式文件
            /// </summary>
            /// <param name="sourcePath">源文件路径</param>
            /// <param name="targetPath">目标文件路径</param> 
            /// <returns>true=转换成功</returns>
            //public static bool ExcelToPDF(string sourcePath, string targetPath)
            //{
            //    bool result = false;
            //    Microsoft.Office.Interop.Excel.XlFixedFormatType targetType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;
            //    object missing = Type.Missing;
            //    Microsoft.Office.Interop.Excel.ApplicationClass application = null;
            //    Microsoft.Office.Interop.Excel.Workbook workBook = null;
            //    try
            //    {
            //        application = new Microsoft.Office.Interop.Excel.ApplicationClass();
            //        application.Visible = false;
            //        workBook = application.Workbooks.Open(sourcePath);
            //        workBook.SaveAs();
            //        workBook.ExportAsFixedFormat(targetType, targetPath);
            //        result = true;
            //    }
            //    catch (Exception e)
            //    {
            //        Console.WriteLine(e.Message);
            //        result = false;
            //    }
            //    finally
            //    {
            //        if (workBook != null)
            //        {
            //            workBook.Close(true, missing, missing);
            //            workBook = null;
            //        }
            //        if (application != null)
            //        {
            //            application.Quit();
            //            application = null;
            //        }
            //        GC.Collect();
            //        GC.WaitForPendingFinalizers();
            //        GC.Collect();
            //        GC.WaitForPendingFinalizers();
            //    }
            //    return result;
            //}
            /// <summary>
            /// 把PowerPoint文件转换成PDF格式文件
            /// </summary>
            /// <param name="sourcePath">源文件路径</param>
            /// <param name="targetPath">目标文件路径</param> 
            /// <returns>true=转换成功</returns>
            //public static bool PowerPointToPDF(string sourcePath, string targetPath)
            //{
            //    bool result;
            //    Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType targetFileType = Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsPDF;
            //    object missing = Type.Missing;
            //    Microsoft.Office.Interop.PowerPoint.ApplicationClass application = null;
            //    Microsoft.Office.Interop.PowerPoint.Presentation persentation = null;
            //    try
            //    {
            //        application = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();
            //        //application.Visible = MsoTriState.msoFalse;
            //        persentation = application.Presentations.Open(sourcePath, MsoTriState.msoTrue, MsoTriState.msoFalse, MsoTriState.msoFalse);
            //        persentation.SaveAs(targetPath, targetFileType, Microsoft.Office.Core.MsoTriState.msoTrue);
    
            //        result = true;
            //    }
            //    catch (Exception e)
            //    {
            //        Console.WriteLine(e.Message);
            //        result = false;
            //    }
            //    finally
            //    {
            //        if (persentation != null)
            //        {
            //            persentation.Close();
            //            persentation = null;
            //        }
            //        if (application != null)
            //        {
            //            application.Quit();
            //            application = null;
            //        }
            //        GC.Collect();
            //        GC.WaitForPendingFinalizers();
            //        GC.Collect();
            //        GC.WaitForPendingFinalizers();
            //    }
            //    return result;
            //}
    
            /// <summary>
            /// 把Visio文件转换成PDF格式文件
            /// </summary>
            /// <param name="sourcePath">源文件路径</param>
            /// <param name="targetPath">目标文件路径</param> 
            /// <returns>true=转换成功</returns>
            //public static bool VisioToPDF(string sourcePath, string targetPath)
            //{
            //    bool result;
            //    Microsoft.Office.Interop.Visio.VisFixedFormatTypes targetType = Microsoft.Office.Interop.Visio.VisFixedFormatTypes.visFixedFormatPDF;
            //    object missing = Type.Missing;
            //    Microsoft.Office.Interop.Visio.ApplicationClass application = null;
            //    Microsoft.Office.Interop.Visio.Document document = null;
            //    try
            //    {
            //        application = new Microsoft.Office.Interop.Visio.ApplicationClass();
            //        application.Visible = false;
            //        document = application.Documents.Open(sourcePath);
            //        document.Save();
            //        document.ExportAsFixedFormat(targetType, targetPath, Microsoft.Office.Interop.Visio.VisDocExIntent.visDocExIntentScreen, Microsoft.Office.Interop.Visio.VisPrintOutRange.visPrintAll);
            //        result = true;
            //    }
            //    catch (Exception e)
            //    {
            //        Console.WriteLine(e.Message);
            //        result = false;
            //    }
            //    finally
            //    {
            //        if (application != null)
            //        {
            //            application.Quit();
            //            application = null;
            //        }
            //        GC.Collect();
            //        GC.WaitForPendingFinalizers();
            //        GC.Collect();
            //        GC.WaitForPendingFinalizers();
            //    }
            //    return result;
            //}
    
        }
    }
    

     程序中包含了各种office格式转换pdf的代码,在使用之前,一定要加载对应的COM库进来,然后才可以使用。

  • 相关阅读:
    使用jmeter和fidder进行APP接口测试
    测试模板积累
    功能测试-
    Django 路由
    Django 基础
    JQ 简单动画显示隐藏效果
    JQ $.each详解
    JQ 事件绑定与事件委派
    django模板之forloop
    JQ 属性操作
  • 原文地址:https://www.cnblogs.com/stemon/p/4617561.html
Copyright © 2011-2022 走看看