1,首先安装wps,从官网下载安装包
2,创建.net core控制项目
添加com引用,搜索wps
准备一个word文档,名字叫001.docx,随便编写一些文字内容
3,word转pdf
编写代码
namespace WPSStu01{ internal class Program { static void Main(string[] args) { Console.WriteLine("转化开始"); var inputFile = "001.docx"; var outputFile = "001.pdf"; WordExportAsPdf(inputFile, outputFile); Console.WriteLine("转化成功"); Console.ReadKey(); } /// <summary> /// 转换为pdf文件,适合(.doc、.docx、.mht、.htm文件类型) /// </summary> /// <param name="fileName"></param> /// <param name="outputFileName"></param> /// <returns></returns> public static string WordExportAsPdf(string fileName, string outputFileName) { string isSucceed = "OK"; Word.WdExportFormat fileFormat = Word.WdExportFormat.wdExportFormatPDF; Word.Application wordApp = null; if (wordApp == null) wordApp = new Word.Application(); Word._Document wordDoc = null; try { wordDoc = wordApp.Documents.Open(fileName, false, true); wordDoc.ExportAsFixedFormat(outputFileName, fileFormat); } catch (Exception ex) { isSucceed = ex.Message; } finally { if (wordDoc != null) { wordDoc.Close(false); wordDoc = null; } if (wordApp != null) { wordApp.Quit(false); wordApp = null; } } return isSucceed; } }}
如果启动项目报错
要选择一下32位程序
如果发现还是不行,最后换成.net framework 4.8的控制台项目
添加dll的引用,dll需要去安装的wps里面查找
Console.WriteLine("转化开始");var exePath = System.AppDomain.CurrentDomain.BaseDirectory;var inputFile = Path.Combine(exePath, "001.docx");var outputFile = Path.Combine(exePath, "001.pdf");WordExportAsPdf(inputFile, outputFile);Console.WriteLine("转化成功");Console.ReadKey();
asp.net core也可以问题根本原因是路径的问题,不能些相对路径,必须绝对路径
4,excel转pdf
/// <summary>/// Excel转换为pdf文件/// </summary>/// <param name="fileName"></param>/// <param name="outputFileName"></param>/// <returns></returns>public static string ExcelExportAsPdf(string fileName, string outputFileName){ string isSucceed = "OK"; Excel.Application excelApp = null; if (excelApp == null) excelApp = new Excel.Application(); Excel.Workbook workBook = null; try { workBook = excelApp.Workbooks.Open(fileName, false, true); workBook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF,outputFileName); } catch (Exception ex) { isSucceed = ex.Message; } finally { if (workBook != null) { workBook.Close(false); workBook = null; } if (excelApp != null) { excelApp.Quit(); excelApp = null; } } return isSucceed;}
调用
Console.WriteLine("转化开始");var exePath = System.AppDomain.CurrentDomain.BaseDirectory;var inputFile = Path.Combine(exePath, "002.xls");var outputFile = Path.Combine(exePath, "002.pdf");ExcelExportAsPdf(inputFile, outputFile);Console.WriteLine("转化成功");Console.ReadKey();
ppt转pdf
/// <summary>/// PPT转换为pdf文件/// </summary>/// <param name="fileName"></param>/// <param name="outputFileName"></param>/// <returns></returns>public static string PptExportAsPdf(string fileName, string outputFileName){ string isSucceed = "OK"; PowerPoint.Application pptApp = null; if (pptApp == null) pptApp = new PowerPoint.Application(); PowerPoint.Presentation presentation = null; try { presentation = pptApp.Presentations.Open(fileName); presentation.ExportAsFixedFormat(outputFileName,PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF); } catch (Exception ex) { isSucceed = ex.Message; } finally { if (pptApp != null) { presentation.Close(); pptApp = null; } if (pptApp != null) { pptApp.Quit(); pptApp = null; } } return isSucceed;}
调用
Console.WriteLine("转化开始");var exePath = System.AppDomain.CurrentDomain.BaseDirectory;var inputFile = Path.Combine(exePath, "003.pptx");var outputFile = Path.Combine(exePath, "003.pdf");PptExportAsPdf(inputFile, outputFile);Console.WriteLine("转化成功");Console.ReadKey();