zoukankan      html  css  js  c++  java
  • C#文档转换为pdf格式帮助类

    640?wx_fmt=png

    using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;

    using Word = Microsoft.Office.Interop.Word;

    using Excel = Microsoft.Office.Interop.Excel;

    using Microsoft.Office.Core;

    using Microsoft.Office.Interop.Excel;

    using System.IO;


    namespace Reform.FolderManage

    {

        #region

        public class DocToPdfHelper

        {

            static Word.WdExportFormat wd = Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF;


            public static Word.WdExportFormat WordType

            {

                get { return wd; }

            }


            static Excel.XlFixedFormatType excelType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF;


            public static Excel.XlFixedFormatType ExcelType

            {

                get { return excelType; }

            }



            //将word文档转换成PDF格式

            public static bool Convert(string sourcePath, string targetPath, Word.WdExportFormat exportFormat)

            {

                bool result;

                object paramMissing = Type.Missing;

                Word.ApplicationClass wordApplication = new Word.ApplicationClass();

                Word._Document wordDocument = null;

                try

                {

                    object paramSourceDocPath = sourcePath;

                    string paramExportFilePath = targetPath;


                    Word.WdExportFormat paramExportFormat = exportFormat;

                    bool paramOpenAfterExport = false;

                    Word.WdExportOptimizeFor paramExportOptimizeFor =

                            Word.WdExportOptimizeFor.wdExportOptimizeForPrint;

                    Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportAllDocument;

                    int paramStartPage = 0;

                    int paramEndPage = 0;

                    Word.WdExportItem paramExportItem = Word.WdExportItem.wdExportDocumentContent;

                    bool paramIncludeDocProps = true;

                    bool paramKeepIRM = true;

                    Word.WdExportCreateBookmarks paramCreateBookmarks =

                            Word.WdExportCreateBookmarks.wdExportCreateWordBookmarks;

                    bool paramDocStructureTags = true;

                    bool paramBitmapMissingFonts = true;

                    bool paramUseISO19005_1 = false;


                    wordDocument = wordApplication.Documents.Open(

                            ref paramSourceDocPath, ref paramMissing, ref paramMissing,

                            ref paramMissing, ref paramMissing, ref paramMissing,

                            ref paramMissing, ref paramMissing, ref paramMissing,

                            ref paramMissing, ref paramMissing, ref paramMissing,

                            ref paramMissing, ref paramMissing, ref paramMissing,

                            ref paramMissing);


                    if (wordDocument != null)

                        wordDocument.ExportAsFixedFormat(paramExportFilePath,

                                paramExportFormat, paramOpenAfterExport,

                                paramExportOptimizeFor, paramExportRange, paramStartPage,

                                paramEndPage, paramExportItem, paramIncludeDocProps,

                                paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,

                                paramBitmapMissingFonts, paramUseISO19005_1,

                                ref paramMissing);

                    result = true;

                }

                finally

                {

                    if (wordDocument != null)

                    {

                        wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);

                        wordDocument = null;

                    }

                    if (wordApplication != null)

                    {

                        wordApplication.Quit(ref paramMissing, ref paramMissing, ref paramMissing);

                        wordApplication = null;

                    }

                    GC.Collect();

                    GC.WaitForPendingFinalizers();

                    GC.Collect();

                    GC.WaitForPendingFinalizers();

                }

                return result;

            }


            //将excel文档转换成PDF格式

            public static bool Convert(string sourcePath, string targetPath, XlFixedFormatType targetType)

            {

                bool result;

                object missing = Type.Missing;

                Excel.ApplicationClass application = null;

                Workbook workBook = null;

                try

                {

                    application = new Excel.ApplicationClass();

                    object target = targetPath;

                    object type = targetType;

                    workBook = application.Workbooks.Open(sourcePath, missing, missing, missing, missing, missing,

                            missing, missing, missing, missing, missing, missing, missing, missing, missing);


                    workBook.ExportAsFixedFormat(targetType, target, XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing);

                    result = true;

                }

                catch

                {

                    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;

            }





            public static bool Convert(string srcPath, string tgtPath)

            {

                string ext = System.IO.Path.GetExtension(srcPath);

                if (ext == ".doc" || ext == ".docx")

                {

                    Convert(srcPath, tgtPath, WordType);

                }

                else if (ext == ".xls" || ext == ".xlsx")

                {

                    Convert(srcPath, tgtPath, ExcelType);

                }


                return false;


            }


        }

        #endregion

    }


  • 相关阅读:
    windows内核函数1
    驱动程序中获取当前进程的进程名的方法
    vs2008+WDK7600驱动开发环境配置
    P2P之UDP穿透NAT的原理与实现之我见
    设计模式-工厂模式
    C++解析ini文件_转载
    利用sort和lambda表达式对vector中的pair进行排序
    C++ 获取目录下具有指定后缀名的所有文件名_windows
    深度学习提取得到的特征值进行特征值相似度比对
    C/C++从路径字符串中获取文件名
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351900.html
Copyright © 2011-2022 走看看