源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#开发word批量转pdf源码分享

  • 时间:2022-07-18 17:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#开发word批量转pdf源码分享
微软Office Word本身已经提供了另存为PDF文档功能,对于少量文档,手工使用该方式进行Word转换为PDF尚可,一旦需要处理大量的文档,可能就显得有些捉襟见肘了。不过对于已经安装有Office环境,借助一些简单的代码即可实现批量Word转PDF了。 源码:
[u]复制代码[/u] 代码如下:
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创建PDF文档,请确认!");             System.Console.Write("y(yes) or n(no) ?  ");             strFlag = System.Console.ReadLine();             if (strFlag == "y")             {                 System.Console.WriteLine("\n开始创建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行,否则会产生临时文件;②及时关闭“WINWORD”线程,否则所处理的Word文档会一直处于被该线程占用的情况。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部