asp.net core调用wps实现word转pdf的方法

忧郁的蛋~ 2024-10-05 08:05:02 阅读 68

1,首先安装wps,从官网下载安装包

2,创建.net core控制项目

添加com引用,搜索wps

 

 

准备一个word文档,名字叫001.docx,随便编写一些文字内容

3,word转pdf

编写代码

<code>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>code>

/// <param name="outputFileName"></param>code>

/// <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里面查找 

 

<code>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 

<code>/// <summary>

/// Excel转换为pdf文件

/// </summary>

/// <param name="fileName"></param>code>

/// <param name="outputFileName"></param>code>

/// <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>code>

/// <param name="outputFileName"></param>code>

/// <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();



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。