安装wps
https://www.wps.cn/
创建.net core控制项目
添加com引用,搜索wps
准备word,名字叫001.docx
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也可以问题根本原因是路径的问题,不能些相对路径,必须绝对路径
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();