PageOffice6最简集成代码(.NetCore)
本文描述了PageOffice产品在.NetCore项目中如何集成调用。
- 新建.NetCore项目:PageOffice6-Net-Core-Simple
- 在此项目的“依赖项-包-管理NuGet程序包”中搜索到“Zhuozhengsoft.PageOffice"程序后安装最新版本。
- 下载PageOffice客户端安装程序。
- windows客户端安装程序:posetup_6.x.x.x.exe;
- 国产操作系统客户端安装程序:对应芯片的PageOffice客户端deb安装包;
PageOffice客户端安装程序下载地址:https://gitee.com/pageoffice/pageoffice6-client/releases
拷贝PageOffice客户端安装程序到项目的bin目录下(项目的生成目录,比如:bin\Debug\net5.0)
修改Startup.cs文件,添加PageOffice服务器端程序的相关配置,代码如下:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
app.UseMiddleware<PageOfficeNetCore.POServer.ServerHandlerMiddleware>();
}
如果是.Net6项目,就在Program.cs文件中添加代码:app.UseMiddleware<PageOfficeNetCore.POServer.ServerHandlerMiddleware>();
- 在D盘根目录下准备一个有内容的test.docx文件。
- 新建WordController,并编写代码在线打开test.docx。WordController.cs代码如下:
public class WordController : Controller
{
public IActionResult Index()
{
PageOfficeNetCore.PageOfficeCtrl poCtrl = new PageOfficeNetCore.PageOfficeCtrl(Request);
poCtrl.SaveFilePage = "/Word/SaveFile"; //设置处理保存客户端上传文件流的Action方法
poCtrl.WebOpen("D:\\test.docx", PageOfficeNetCore.OpenModeType.docNormalEdit, "tom");
ViewBag.POCtrl = poCtrl.GetHtmlCode();
return View();
}
//接收客户端上传的文件流,并保存到文件
public async Task<ActionResult> SaveFile()
{
PageOfficeNetCore.FileSaver fs = new PageOfficeNetCore.FileSaver(Request, Response);
await fs.LoadAsync();
fs.SaveToFile("D:\\" + fs.FileName);
return fs.Close();
}
}
- 编写“Word/Index”的view视图文件Index.cshtml,代码如下:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
function Save() {
pageofficectrl.WebSave();
}
function OnPageOfficeCtrlInit() {
pageofficectrl.AddCustomToolButton("保存", "Save", 1);
}
</script>
</head>
<body>
<div style=" width:auto; height:98vh;">
@Html.Raw(ViewBag.POCtrl)
</div>
</body>
</html>
- 在需要实现“点击超链接在线打开文件”的页面(比如:Views/Shared/_Layout.cshtml)中添加对pageoffice.js的引用。
注意
项目中并不存在pageoffice.js文件,此文件来自于Startup.cs中配置的PageOffice服务器端程序,此程序中封装了pageoffice.js。
- 然后在页面(比如:Views/Shared/_Layout.cshtml)中添加一个超链接,点击超链接调用POBrowser对象的openWindow方法,弹出新浏览器窗口访问“Word/Index”在线打开文件,代码如下:
<a href="javascript:POBrowser.openWindow('Word/Index' , 'width=1200px;height=800px;');">
在线打开文档
</a>
- 启动项目,点击“在线打开文档”超链接,查看在线打开编辑保存Office文件的效果。
参考链接:PageOffice最简集成代码(.NetCore)
PageOffice6最简集成代码(.NetCore)的更多相关文章
- windows本地自动集成代码+SSH服务器配置
在windows环境下使用Jenkins自动集成代码 描述: 局域网电脑A是本地服务器,安全win7系统,安装了Jenkins:现在想让A成为测试服务器,需要隔一段时间从SVN里同步出最新的代码,供客 ...
- 游戏音频技术备忘 (五)Wwise Unreal Engine 集成代码浅析 二
AkAmbientSound类的实现 Unreal Engine提供了一个基本对象的构造器ObjectInitializer,一般来说用户创建的类总是拥有很多变量,因此 AkAmbientSound ...
- 集成代码编辑器ACE的经验
ACE是最流行的在线代码编辑器之一,在CanTK的集成开发环境GameBuilder里也使用了ACE.ACE的功能非常强大,但是由于使用方法不当,大家反映GameBuilder的代码编辑器不好用.最近 ...
- 30段极简Python代码:这些小技巧你都Get了么
学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...
- 游戏音频技术备忘 (四) Wwise Unreal Engine 集成代码浅析 (一)
在Engine\Plugins\Wwise\Source下为主要Wwise相关代码,AkAudio文件夹下为运行时相关代码,AudiokineticTools下为编辑器工具相关代码,Audiokine ...
- EasyDSS流媒体解决方案实现的实时数据统计报表、视频文件上传、点播、分享、集成代码等功能
之前的EasyDSS作为rtmp流媒体服务器自从推出就备受用户好评,随着用户的需求的变更产品自身的发展是必须的: 为了更好的用户体验和和功能的完善,我们在EasyDSS的基础上增添了服务器硬件数据报表 ...
- 24.集成ASP.NETCore Identity
正常的情况下view页面的错误的显示应该是这么去判断的 这里我们就不加判断为了,直接用这个div 显示就可以了.当有错误会自动显示在div内 asp.net core Identity加入进来 这里用 ...
- 30段极简Python代码
Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性.如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发.作者简单概览了 30 段代码,它们都是 ...
- .NetCore中的日志(2)集成第三方日志工具
.NetCore中的日志(2)集成第三方日志工具 0x00 在.NetCore的Logging组件中集成NLog 上一篇讨论了.NetCore中日志框架的结构,这一篇讨论一下.NetCore的Logg ...
- iOS开发:集成支付宝(遇见的坑和便捷撸代码)
开发iOS最重要的就是支付了,天朝之内最常用的就是支付宝了,下面就以自己的经历说明如何集成支付宝+遇见的坑. 首先,集成支付宝最好别使用Cocoapods,很多人都说使用起来很方便,可是我每次只要使用 ...
随机推荐
- #威佐夫博弈#洛谷 2252 [SHOI2002]取石子游戏
题目 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子. 游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子: 二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完 ...
- Windows开发的瑞士军刀,NewSPYLite发布
宗旨:延续了SpyLite的方便易用,同时也丰富了更多的功能,更适合开发者使用. 在SpyLite的基础功能上,开发了更多人性化并且好用的功能,增强的信息的可读性,以及软件总体的可用性. New Sp ...
- Java轻松实现,每天给对象发情话!
一.引言 最近看到一篇用js代码实现表白的文章,深有感触.然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞实现思路: 使用HttpClient远程获取彩虹屁生成 ...
- 技术传递温度,HMS Core手语服务走进暖心课堂
近日,华为HMS Core手语服务携手吉林大学.长春大学特教学院联合打造暖心课堂,在直播网课中加入AI手语翻译,于人文中融入科技,知识中融入温暖. 手语翻译:同学们大家好 HMS Core手语服务通过 ...
- R语言学习1:基本数据类型,文件读取
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
- 知识图谱在RAG中的应用探讨
在这篇文章中,我们来详细探讨知识图谱(KG)在RAG流程中的具体应用场景. 缘起 关于知识图谱在现在的RAG中能发挥出什么样的作用,之前看了360 刘焕勇的一个分享,简单的提了使用知识图谱增强大模型的 ...
- npm发包教程
1-npm注册账号 访问npm官网注册账号,邮件验证激活账号 npm官网 2-项目npm配置 在项目下打开终端,初始化npm npm init -y 此时项目下会生成package.json 配置文件 ...
- HarmonyOS助力构建“食用菌智慧农场”
原文:https://mp.weixin.qq.com/s/qK4aRY5UKc3GvpLxhwpqww,点击链接查看更多技术内容. [开发者说]栏目是为HarmonyOS开发者提供的展示和分享 ...
- 最全能的AI换脸软件,FaceFusion下载介绍(可直播)
FaceFusion是一款多功能的AI换脸软件,它不仅能图片.视频换脸,还可以直播换脸,换脸效果真实.自然 与大多数换脸软件不同的是,FaceFusion不仅支持N卡处理程序(Azure),还额外提供 ...
- 重新整理数据结构与算法(c#)—— 二叉树排序树[二十二]
前言 什么是二叉堆排序呢? 就是上面这种,一个节点大于左节点,但是小于右节点,再我写的例子中会写出大于等于右节点. 那么如何让一个数组进行变成这种二叉树呢? 其实只要有规律就很简单. 第一个元素(0) ...