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

embedded/2024/9/24 0:24:11/

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

2,创建.net core控制项目

添加com引用,搜索wps

 

 

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

3,wordpdf

编写代码

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


http://www.ppmy.cn/embedded/112816.html

相关文章

谈谈OpenResty 简介及其容器化实践

引言 OpenResty 是一个基于 Nginx 与 Lua 的高性能 web 平台&#xff0c;它扩展了 Nginx 的功能&#xff0c;使之能够处理更加复杂的业务逻辑。通过集成 Lua 脚本&#xff0c;OpenResty 可以实现高效的请求处理、缓存、负载均衡等功能。本文将介绍 OpenResty 的基本概念、如何…

[Python办公]常用Python数据采集爬虫技术对比

常用的数据采集技术可以分为以下几种&#xff1a; 1.网页抓取&#xff08;Web Scraping&#xff09; 网页抓取是通过模拟浏览器行为或直接发送请求来获取网页内容的技术。其核心目标是从 HTML 网页中提取有价值的数据。 常用工具&#xff1a;requests、BeautifulSoup、Selen…

linux gcc 静态库的简单介绍

在 Linux 上&#xff0c;使用 GCC 编译器来创建和调用静态库时&#xff0c;涉及的实现原理和调用机制可以分为以下几个步骤&#xff1a; 1. 静态库的创建 静态库&#xff08;通常以 .a 结尾&#xff09;是由多个目标文件&#xff08;.o 文件&#xff09;打包在一起的归档文件…

OKHttp实现原理分享

前言介绍 大约在2年半之前&#xff0c;就想写一篇关于OKHttp原理的文章&#xff0c;一来深入了解一下其原理&#xff0c;二来希望能在了解原理之后进行更好的使用。但是因为种种原因&#xff0c;一直无限往后推迟&#xff0c;最近因为我们情景智能半个月一次的分享轮到我了&…

C++——多线程编程(从入门到放弃)

进程&#xff1a;运行中的程序 线程&#xff1a;进程中的进程 线程的最大数量取决于CPU的核心数 一、将两个函数添加到不同线程中 demo&#xff1a;两个函数test01()和test02()&#xff0c;实现将用户输入的参数进行打印输出1000次 将这两个函数均放到独立的线程t1和t2中&…

git flow

分支管理 dev&#xff1a;开发 test&#xff1a;测试 gray&#xff1a;灰度(条件允许) master&#xff1a;生产 开发阶段&#xff1a; 基于dev分支checkout功能分支&#xff0c;开发完后合到dev 测试阶段&#xff1a; 测试&#xff1a;所有功能分支合到dev后&#xff0c;dev…

容器技术--Docker应用部署

应用部署 容器部署mysql 搜索并拉取镜像;基于镜像启动容器,注意端口映射、目录映射启动后即可连接# 搜索镜像 docker search mysql # 拉取镜像 docker pull mysql:5.7 # docker pull mysql 默认拉取最新的# 创建mysql容器, -p端口映射(宿主端口:容器端口) -e 环境变量,镜…

FPGA与Matlab图像处理之直方图均衡化

文章目录 一、什么是直方图?二、什么是直方图均衡化&#xff1f;三、Matlab实现直方图均衡化的步骤第一步&#xff1a; 彩色图像转成灰度图像第二步&#xff1a;提取亮度通道的直方图第三步&#xff1a;累计亮度通道的像素值频率第四步&#xff1a; 映射到新的灰度值 四、Veri…