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库进来,然后才可以使用。

  • 相关阅读:
    java开发中的常见类和对象-建议阅读时间3分钟
    周末学习-泛型-就是传入什么类型就是什么类型-花了一个半小时
    实习第二天-String对象的不可变性-未解决
    实习第二天-java参数传递-精华在文章最后2句话
    实习第二天-对象-对象引用-引用变量-精-精-精-下雨天
    实习第一天:try和catch的使用
    实习第二天-今年第一场雨-方法的重载(马上想到println()函数和abs(函数))
    实习第一周第一天:接口 extends是继承类,implement是实现接口,原接口里面的方法填充,方法名也是不变,重写override是父类的方法名不变,把方法体给改了
    实习第一天:static 声明的 变量和 方法
    JavaWeb学习总结(二)-修改Tomcat服务器的端口(半年之后再总结)
  • 原文地址:https://www.cnblogs.com/stemon/p/4617561.html
Copyright © 2011-2022 走看看