• C# WordToPDF


    1、代码

    using System;
    using System.Collections.Generic;
    using System.IO;
    using Word = Microsoft.Office.Interop.Word;//nuget 直接搜
    
    namespace ConsoleApp3
    {
        class Program
        {
            static void Main(string[] args)
            {
                bool isContinue = true;
                while (isContinue)
                {
                    Console.WriteLine("请输入文件夹地址,或输入N退出!");
                    var filePath = Console.ReadLine();
                    if (filePath == "N")
                    {
                        isContinue = false;
                        continue;
                    }
                    if (!Directory.Exists(filePath))
                    {
                        Console.WriteLine("路径不存在!!!");
                        continue;
                    }
                    List<string> fileList = new List<string>();
                    var dir = new DirectoryInfo(filePath);
                    GetFiles(fileList, dir);
                    if (fileList.Count <= 0)
                    {
                        Console.WriteLine("没有需要转换得文件!");
                        continue;
                    }
                    foreach (var item in fileList)
                    {
                        Console.WriteLine("处理中。。。");
                        WordToPDF(item);
                    }
                    Console.WriteLine("完成!!!!");
                }
            }
    
            public static bool WordToPDF(string sourcePath)
            {
                bool result = false;
                Word.Application application = new Word.Application();
                Word.Document document = null;
                try
                {
                    application.Visible = false;
                    document = application.Documents.Open(sourcePath);
                    var p =sourcePath.LastIndexOf(".");
                    string PDFPath = sourcePath.Substring(0, p) + ".pdf";//pdf存放位置        
                    if (!File.Exists(@PDFPath))//存在PDF,不需要继续转换
                    {
                        document.ExportAsFixedFormat(PDFPath, Word.WdExportFormat.wdExportFormatPDF);
                    }
                    result = true;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    result = false;
                }
                finally
                {
                    document.Close();
                }
                return result;
            }
    
            /// <summary>
            /// 获取目录下所有word文件
            /// </summary>
            /// <param name="list"></param>
            /// <param name="dir"></param>
            public static void GetFiles(List<string> list, DirectoryInfo dir)
            {          
                FileInfo[] allFile = dir.GetFiles();
                foreach (FileInfo item in allFile)
                {
                    var extension = item.Extension;
                    if (extension == ".doc" || extension == ".docx")
                    {
                        list.Add(item.FullName);
                    }
                  
                }
                DirectoryInfo[] allDir = dir.GetDirectories();
                foreach (DirectoryInfo d in allDir)
                {
                    GetFiles(list,d);
                }
              
            }
        }
    }

    2、注意事项

    需要安装office

  • 相关阅读:
    .Net 框架培训
    根据 XSD生成 Data Contract之怪现象
    WCF performance
    IIS7 performance
    【原】[SQL function] SQL Server Split Function
    【原】[Data.Common.Format] 格式化传入的float(浮点型)字符串
    【原】[Crystal Reports] 当前一条记录与前一条记录比较
    【转】C#中处理XML文档的方法
    【原】Crystal Reports水晶报表 格式化传入的float字符串
    【转】[ASP] 用 ASP 创建 GUID
  • 原文地址:https://www.cnblogs.com/xiaoqiyaozou/p/14517511.html
Copyright © 2020-2023  润新知