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

news/2024/12/21 22:05:26/

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/news/1526527.html

相关文章

UVM仿真的运行(四)—— objection 机制

0. 引言 前面介绍了uvm仿真的启动,按照domain中指定的DAG的phase node 顺序执行各个组件的phase。 在执行run_phase node的Executing 状态时,以fork...join_none的方式在后台调用run_phase imp的traverse方法去并行执行各个component的run_phase方法,同时会等待task运行结…

Spring security 动态权限管理(基于数据库)

一、简介 如果对该篇文章不了解&#xff0c;请移步上一篇文章&#xff1a;spring security 中的授权使用-CSDN博客 当我们配置的 URL 拦截规则请求 URL 所需要的权限都是通过代码来配置的&#xff0c;这样就比较死板&#xff0c;如果想要调整访问某一个 URL 所需要的权限&…

【网络安全】基础知识详解(非常详细)零基础入门到精通

一、什么是网络安全&#xff1f; 百度上对“网络安全”是这么介绍的&#xff1a; “网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露、系统连续可靠正常地运行&#xff0c;网络服务不中断。” 嗯…是不…

libmodbus:写一个modbusTCP服务

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

828华为云征文|部署知识库问答系统 MaxKB

828华为云征文&#xff5c;部署知识库问答系统 MaxKB 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 核心竞争力1.3 计费模式 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 MaxKB3.1 MaxKB 介绍3.2 Docker 环境搭建3.3 MaxKB 部署3.4 Max…

Java API 搜索引擎测试报告

一、测试项目介绍 基于SpringBoot开发的 Java API 文档搜索引擎&#xff0c;输入具体的类名或包名就能找到对应相关的搜索结果&#xff0c;点击标题即可跳转到对应官方网页。 二、测试 测试环境&#xff1a;Windows11&#xff0c;Google chrome浏览器 128.0.6613.138 (正式版…

自动驾驶自动泊车场景应用总结

自动泊车技术是当前智能驾驶技术的一个重要分支,其目标是通过车辆自身的感知、决策和控制系统,实现车辆在有限空间内的自主泊车操作。目前自动泊车可分为半自动泊车、全自动泊车、记忆泊车、自主代客泊车四种产品形态,其中, 根据搭载传感器和使用场景的不同,全自动泊车又可…

《C++位域:在复杂数据结构中的精准驾驭与风险规避》

在 C的广阔编程世界中&#xff0c;位域作为一种强大的工具&#xff0c;可以在复杂数据结构中实现高效的内存利用和特定的数据表示。然而&#xff0c;若使用不当&#xff0c;位域也可能带来未定义行为&#xff0c;成为程序中的潜在隐患。本文将深入探讨 C位域在复杂数据结构中的…