asp.net core调用wps实现word转pdf的过程

https://www.wps.cn/
添加com引用,搜索wps
准备word,名字叫001.docx
编写代码
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也可以问题根本原因是路径的问题,不能些相对路径,必须绝对路径
/// 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();
/// 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();
asp.net core调用wps实现word转pdf的过程