最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#開發(fā)word批量轉pdf源碼分享

 更新時間:2013年12月20日 10:47:16   作者:  
已經(jīng)安裝有Office環(huán)境,借助一些簡單的代碼即可實現(xiàn)批量Word轉PDF,看下面的實例源碼吧

微軟Office Word本身已經(jīng)提供了另存為PDF文檔功能,對于少量文檔,手工使用該方式進行Word轉換為PDF尚可,一旦需要處理大量的文檔,可能就顯得有些捉襟見肘了。不過對于已經(jīng)安裝有Office環(huán)境,借助一些簡單的代碼即可實現(xiàn)批量Word轉PDF了。

源碼:

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading;
using Microsoft.Office.Interop.Word;

namespace Word2Pdf
{
    class Program
    {
        public static Microsoft.Office.Interop.Word.Document wordDocument { get; set; }

        static void Main(string[] args)
        {
            string strFolder_f = null;
            string strFolder_t = null;
            string strFlag = null;
            System.Console.WriteLine("請輸入Word文檔所在目錄");
            strFolder_f = System.Console.ReadLine();
            if (strFolder_f.Substring(strFolder_f.Length - 1, 1) != "\\")
            {
                strFolder_f += "\\";
            }
            strFolder_t = strFolder_f + @"pdf\";
            System.Console.WriteLine("\n創(chuàng)建PDF文檔,請確認!");
            System.Console.Write("y(yes) or n(no) ?  ");
            strFlag = System.Console.ReadLine();
            if (strFlag == "y")
            {
                System.Console.WriteLine("\n開始創(chuàng)建PDF文檔...");
                CheckFolder(strFolder_t);
                string strPdfFile = null;
                DirectoryInfo TheFolder = new DirectoryInfo(strFolder_f);

                Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Interop.Word.Application();
                object paramMissing = Type.Missing;

                foreach (FileInfo NextFile in TheFolder.GetFiles())
                {
                    strPdfFile = Path.ChangeExtension(strFolder_t + NextFile.Name, ".pdf");
                    wordDocument = appWord.Documents.Open(NextFile.FullName);
                    if (wordDocument != null)
                    {
                        wordDocument.ExportAsFixedFormat(strPdfFile, WdExportFormat.wdExportFormatPDF);
                        wordDocument.Close(ref paramMissing, ref paramMissing, ref paramMissing);
                        wordDocument = null;
                    }
                    System.Console.Write(".. ");
                }

                if (appWord != null)
                {
                    appWord.Quit(ref paramMissing, ref paramMissing, ref paramMissing);
                    appWord = null;
                }
            }

            //KillProcessByName("WINWORD");
            GC.Collect();
            GC.WaitForPendingFinalizers();

            System.Console.Write("\n處理完畢,輸入任意鍵退出");
            System.Console.ReadKey();
        }

        static void CheckFolder(string strFolderPath)
        {
            if (Directory.Exists(strFolderPath))
            {
                Directory.Delete(strFolderPath, true);
                Directory.CreateDirectory(strFolderPath);
            }
            else
            {
                Directory.CreateDirectory(strFolderPath);
            }
        }

        static void KillProcessByName(string name)
        {
            Process[] ps = Process.GetProcessesByName(name);
            foreach (Process p in ps)
            {
                if (p.ProcessName == name)
                    p.Kill();
            }
        }
    }
}

需要注意的兩個問題:①及時關閉代碼中所打開的文檔,見49行,否則會產(chǎn)生臨時文件;②及時關閉“WINWORD”線程,否則所處理的Word文檔會一直處于被該線程占用的情況。

相關文章

  • C#中的那些警告該如何去除(完全去除C#警告)

    C#中的那些警告該如何去除(完全去除C#警告)

    C#(英文名為 CSharp)是微軟開發(fā)的一種面向對象的編程語言,下面這篇文章主要給大家介紹了關于C#中的那些警告該如何去除的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • 詳解ASP.NET中Identity的身份驗證代碼

    詳解ASP.NET中Identity的身份驗證代碼

    這篇文章主要介紹了ASP.NET Identity 的“多重”身份驗證代碼,以及實現(xiàn)的原理講解,需要的朋友參考一下。
    2017-12-12
  • C#使用非托管代碼直接修改字符串的方法

    C#使用非托管代碼直接修改字符串的方法

    在string方法中,如ToUpper等字符串操作方法,都會產(chǎn)生一個新的字符串,這樣增大了運行開支。一個替代方案是通過非托管代碼直接操作字符串。如替代ToUpper方法:
    2013-07-07
  • C#實現(xiàn)3D效果完整實例

    C#實現(xiàn)3D效果完整實例

    這篇文章主要介紹了C#實現(xiàn)3D效果的方法,結合完整實例形式分析了C#實現(xiàn)文字3D顯示效果的具體步驟與相關操作技巧,需要的朋友可以參考下
    2016-08-08
  • C#中String類常用方法匯總

    C#中String類常用方法匯總

    這篇文章主要介紹了C#中String類常用方法,較為詳細的匯總了String類中的常用方法,對于深入掌握C#字符串操作有著很好的學習借鑒價值,需要的朋友可以參考下
    2014-11-11
  • C#多線程系列之線程等待

    C#多線程系列之線程等待

    本文詳細講解了C#多線程中的線程等待,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • c# 類和成員的修飾詳細介紹

    c# 類和成員的修飾詳細介紹

    本文將詳細介紹c# 類和成員的修飾,需要的朋友可以參考下
    2012-11-11
  • C#判斷網(wǎng)站是否能訪問或者斷鏈的方法

    C#判斷網(wǎng)站是否能訪問或者斷鏈的方法

    這篇文章主要介紹了C#判斷網(wǎng)站是否能訪問或者斷鏈的方法,實例分析了C#判斷網(wǎng)站是否能訪問的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • C#實現(xiàn)String類型和json之間的相互轉換功能示例

    C#實現(xiàn)String類型和json之間的相互轉換功能示例

    這篇文章主要介紹了C#實現(xiàn)String類型和json之間的相互轉換功能,涉及C# json格式數(shù)據(jù)的構造、轉換相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#中Abstract方法和Virtual方法的區(qū)別

    C#中Abstract方法和Virtual方法的區(qū)別

    這篇文章介紹了C#中Abstract方法和Virtual方法的區(qū)別,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04

最新評論

道真| 涟水县| 玛曲县| 鹤峰县| 桃江县| 仁怀市| 双柏县| 桂平市| 丰县| 游戏| 安多县| 青岛市| 保德县| 雅江县| 许昌市| 隆林| 宜城市| 乐陵市| 建始县| 精河县| 龙南县| 沿河| 广州市| 西吉县| 辽源市| 昭平县| 若羌县| 乌拉特前旗| 山西省| 樟树市| 彰武县| 嘉兴市| 蓬莱市| 濮阳市| 周口市| 海丰县| 汝城县| 邻水| 江口县| 临武县| 南安市|