onlyoffice document builder使用

office这个体系分为四个大教程

1、【document server文档服务器基础搭建】

2、【连接器(connector)或者jsApi调用操作office】-进阶

3、【document builder文档构造器使用】-进阶

4、【Conversion API(文档转化服务)】-进阶

如果需要连接器,可以查看:onlyofficeV7.5.1 jsApi调用 进阶开发 二次开发 连接器(connector)开发 - 知乎 (zhihu.com)

一、首先部署基础环境

比如:

http://47.94.91.67:10100/web-apps/apps/api/documents/api.js

二、Document Builder 文档生成器介绍

        文档生成器我们可以理解为【后端】操作,类似于java的poi、easyExcel等等,由代码级别操作office文档。

        只是说onlyoffice的生成效果可能会比poi等框架好一些,这个需要开发者自行实验查看效果。

        Api文档:ONLYOFFICE Api Documentation - GetRangeBySelect

文档目录说明:

图1

三、PostMan效果测试

图2

四、服务URL说明

        官方是这样写的:https://documentserver/docbuilder

        也就是说,http://office部署地址/docbuilder,比如:http://47.94.91.67:10100/docbuilder,实际上就是第一步中提到的基础环境部署地址了。

五、参数展示

        参数说明:ONLYOFFICE Api Documentation - Web Document Builder API

        比如,目前的请求url为:http://47.94.91.67:10100/docbuilder,需要使用post方法的json格式进行参数传递。参照【图2】

{
    "async": false,是否异步非常重要,将决定获取生成文件的逻辑
    "url": "http://192.168.71.162:8081/caorui_7.3.3/demo/doc_builder/demo.docbuilder"
}

        首先说一下【url】,这个就是生成office的脚本文件了,比如:demo.docbuilder,官方说的是需要使用【.docbuilder】后缀,但是我测试后发现用【.txt】也可以,对于文件格式的需求,就由各位开发者自行测试了。

        或者,直接使用【.docbuilder】更方便些。

        其次说一下【async】,是否开启异步决定了获取生成好文件的方法不同,其实所有异步的本质都一样:

        async:false,直接就返回生成好的文件了【锚点1】。

        async:true,需要个key做标识,然后不断通过key轮训获取文件的生成情况【锚点2】。

        【锚点1】当 async:false时:直接等待就可以获取文件了。

 
请求参数
{
    "async": false,
    "url": "http://192.168.71.162:8081/caorui_7.3.3/demo/doc_builder/demo.docbuilder"
}


返回参数
{
    "key": "bld_c9f97878f0879467",
    "urls": {
        "demo.docx": "http://192.168.70.10:10100/cache/files/data/bld_c9f97878f0879467/output/demo.docx/demo.docx?md5=9SKQIWKqhH5em6qA1qVAXQ&expires=1708399869&filename=demo.docx"
    },
    "end": true
}

        【锚点2】当async:true时:会返回当前【async task】的key,并且返回【end】状态,接下来就是不断通过key去轮询任务了。

请求参数
{
    "async": true,
    "url": "http://192.168.71.162:8081/caorui_7.3.3/demo/doc_builder/demo.docbuilder"
}

返回参数
{
    "key": "bld_1f713a5ce29e5a65",
    "end": false
}

--------------------------------------------------

第一次到key以后,重新使用key发送请求
{
    "key": "bld_1f713a5ce29e5a65",
    "end": false
}

直到监听end:true
{
    "key": "bld_1f713a5ce29e5a65",
    "urls": {
        "demo.docx": "http://192.168.70.10:10100/cache/files/data/bld_1f713a5ce29e5a65/output/demo.docx/demo.docx?md5=z7ue3-McCrvlWRgxSvxClQ&expires=1708400013&filename=demo.docx"
    },
    "end": true
}

六、demo.docbuilder脚本测试

builder.CreateFile("docx");
var oDocument = Api.GetDocument();
var oHeading1Style = oDocument.CreateStyle("Heading 1", "paragraph");
var oParaPr = oHeading1Style.GetParaPr();
oParaPr.SetKeepNext(true);
oParaPr.SetKeepLines(true);
oParaPr.SetSpacingAfter(240);
var oTextPr = oHeading1Style.GetTextPr();
oTextPr.SetColor(0xff, 0x68, 0x00, false);
oTextPr.SetFontSize(70);
oTextPr.SetFontFamily("Calibri Light");
var oParagraph = oDocument.GetElement(0);
oParagraph.SetStyle(oHeading1Style);
oParagraph.AddText("Weekly Report | QTR 3 Week 12");
var oDrawing =Api.CreateImage("https://api.onlyoffice.com/content/img/docbuilder/examples/api-word.jpg", 220 * 36000, 350 * 36000);
oDrawing.SetWrappingStyle("behind");
oDrawing.SetHorAlign("page", "left");
oDrawing.SetVerAlign("page", "top");
oParagraph.AddDrawing(oDrawing);
oParagraph = Api.CreateParagraph();
var oChart = Api.CreateChart("bar3D", [ [200, 140, 180, 160, 240, 240], [250, 190, 200, 180, 260, 260] ], ["Projected Revenue", "Estimated Costs"], ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], 80 * 36000, 55 * 36000, 24);
var oFill = Api.CreateSolidFill(Api.CreateRGBColor(51, 51, 51));
oChart.SetSeriesFill(oFill, 0, false);
oFill = Api.CreateSolidFill(Api.CreateRGBColor(255, 111, 61));
oChart.SetSeriesFill(oFill, 1, false);
oChart.SetVerAxisTitle("USD In Thousands", 10);
oChart.SetLegendPos("bottom");
oChart.SetShowDataLabels(false, false, true, false);
oChart.SetTitle("Financial Overview", 13);
oChart.SetDistances(5 * 36000, 5 * 36000, 5 * 36000, 36000);
oChart.SetWrappingStyle("square");
oChart.SetHorAlign("page", "left");
oChart.SetHorPosition("leftMargin", 30 * 36000);
oParagraph.AddDrawing(oChart);
oParagraph.AddText("Regardless of your sector or industry, it’s likely that your finances department is the beating heart of your entire operation. Without financial fluency, it’s difficult for an organization to thrive, which means that keeping your monetary affairs in order is essential.");
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oParagraph.AddText("As a business, you need the reliability of frequent financial reports to better understand the state of your finances, both current and future. Financial reports give you the ability to take a proactive approach to managing your company's economy and improve long-term profitability with short-term company financial reports.");
oDocument.Push(oParagraph);
oParagraph = Api.CreateParagraph();
oParagraph.AddText("A robust finance report communicates crucial accounting information that covers a specified period through daily, weekly, and monthly financial reports. These are powerful tools that you can apply to increase internal business performance. A data-driven finance report is also an effective means of remaining updated with any significant progress or changes in the status of your finances and helps you measure your results, cash flow, and financial position.");
oDocument.Push(oParagraph);
builder.SaveFile("docx", "demo.docx");
builder.CloseFile();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/397277.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

认识Redis:不只是缓存,还有这些厉害的功能!

在当今数据驱动的世界中,快速存取信息成为了技术发展的关键。而在众多存储解决方案中,Redis以其独特的魅力和强大的功能,成为了开发者们的宠儿。今天,就让我们一起来认识一下Redis。 一、Redis是什么,可以用来干什么&…

EasyRecovery易恢复中文破解版2024最新破解序列号

EasyRecovery易恢复是一款来自美国的数据恢复软件,已有35年(或38年)的历史。它支持不同存储介质的数据恢复,包括电脑系统硬盘、移动硬盘等,并针对不同的数据丢失原因提供了相应的恢复方案。 EasyRecovery易恢复是一款功…

【清关知识】毛里求斯的清关文件及清关手续

1、清关文件 1)发票 海关发票(3份)、商业发票。所有货物随货发票必须为正本原始发票,所有进口商在办理清关提货手续时,首先必须向海关呈交商业登记号码,凭此登记号码才可向公司注册局登记。 2&#xff0…

【linux】体系结构和os管理

冯诺依曼体系结构 输入单元:包括键盘, 鼠标,扫描仪, 写板等 中央处理器(CPU):含有运算器和控制器等 输出单元:显示器,打印机等 这里的存储器指的是内存 三者是相互连接的,设备之间会进行数据的来回拷贝&am…

以理论89、上机100分成绩终于通过了OceanBase OBCP的考试

OceanBase OBCP的考试分为理论考试和上机考试,跟OBCA认证考试比较来说,难度上升了一个很多大的层次。OBCA我是好几年前考的了,现在因为公司再去o,准备进OceanBase,所以必须快速考出OBCP证书,本来想着直接背…

【C#】使用代码实现龙年春晚扑克牌魔术(守岁共此时),流程描述篇

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

【Java】图解 JVM 垃圾回收(二):垃圾收集器、Full GC

图解 JVM 垃圾回收(二) 1.垃圾收集器1.1 内存分配与回收策略1.2 Serial 收集器1.3 Parallel Scavenge 收集器1.4 ParNew 收集器1.5 CMS 收集器1.6 G1 收集器 2.Full GC 的触发条件 1.垃圾收集器 Java 虚拟机提供了多种垃圾回收器,每种回收器…

postgresql 文件结构(一) 数据库、表对应的文件

1、问题 甲方要求提供数据库数据量大小,由于各个业务数据库共用一个postgres,因此想把每个数据库占用的空间都统计一下。 2、查找物理存储文件目录 如下图所示,可以查询表、库的物理存储文件名称 -- 查询表对应的文件 select oid,relname…

c编译器学习02:chibicc文档翻译

目的 先粗略地看一遍作者的书籍。 原文档地址 https://www.sigbus.info/compilerbook# “低レイヤを知りたい人のためのCコンパイラ作成入門” 为想了解底层的人准备的C编译器制作入门 Rui Ueyama ruiucs.stanford.edu 2020-03-16 作者简介 https://www.sigbus.info/ 植山…

【前端素材】几款实用的后台管理系统html模板(附带源码)

一、需求分析 后台管理系统是一种用于管理网站、应用程序或系统的工具,它通常作为一个独立的后台界面存在,供管理员或特定用户使用。下面详细分析后台管理系统的定义和功能: 1. 定义 后台管理系统是一个用于管理和控制网站、应用程序或系统…

flink多流操作(connect cogroup union broadcast)

flink多流操作 1 分流操作2 connect连接操作2.1 connect 连接(DataStream,DataStream→ConnectedStreams)2.2 coMap(ConnectedStreams → DataStream)2.3 coFlatMap(ConnectedStreams → DataStream) 3 union操作3.1 u…

一文搞懂LDO !

7.LDO 1.原理 通过运放调节P-MOS的输出 低压差: 输出压降比较低,例如输入3.3V,输出可以达到3.2V。 线性: LDO内部的MOS管工作于线性状态。(可变电阻区) 稳压器: 说明了LDO的用途是用来给电…

LeetCode.590. N 叉树的后序遍历

题目 590. N 叉树的后序遍历 分析 我们之前有做过LeetCode的 145. 二叉树的后序遍历,其实对于 N 叉树来说和二叉树的思路是一模一样的。 二叉树的后序遍历是【左 右 根】 N叉树的后序遍历顺序是【孩子 根】,你可以把二叉树的【左 右 根】想象成【孩子…

Win11专业版安装集成了谷歌框架的安卓子系统,包含谷歌商店

1.摘要 上一篇博客讲述了使用微软商店安装安卓子系统的教程 https://blog.csdn.net/RudeTomatoes/article/details/135958882 上述方法的优点是安装过程简单,但是,由于Windows安卓子系统是微软与亚马逊联合开发,默认没有安装谷歌框架。我尝试…

[SwiftUI]自定义下划线

系统有一个下划线修饰,但最低只支持到iOS16。 extension View {available(iOS 16.0, macOS 13.0, tvOS 16.0, watchOS 9.0, *)public func underline(_ isActive: Bool true, pattern: Text.LineStyle.Pattern .solid, color: Color? nil) -> some View} 下…

金融帝国实验室(CapLab)官方更新_V9.1.62版本(2024年第10次)

〖金融帝国实验室〗(Capitalism Lab)游戏更新记录(2024年度) ————————————— ◎游戏开发:Enlight Software Ltd.(微启软件有限公司) ◎官方网站:https://www.capitalism…

IBM Spectrum LSF Process Manager 在共享分布式计算环境中运行和管理业务关键工作流程

IBM Spectrum LSF Process Manager 设计、记录和运行复杂的计算工作流 亮点 ● 快速创建复杂的分布式工作流 ● 开发可重复的最佳实践 ● 自信地运行关键工作流程 ● 提高流程可靠性 IBM Spectrum LSF Process Manager 使您能够设计和自动化计算或分析流程, 捕获…

http相关概念以及apache的功能

概念 互联网:是网络的网络,是所有类型网络的母集 因特网:世界上最大的互联网网络 万维网:www (不是网络,而是数据库)是网页与网页之间的跳转关系 URL:万维网使用统一资源定位符,…

Spring Cloud微服务网关Zuul灰度发布入门实战

一、灰度发布 灰度发布是指在系统迭代的时候一种平滑过度上线发布方式。灰度发布是在原有的系统的基础上面,额外增加一个新版本,这个新版本包含新上线的需要验证的功能,通过负载均衡引入部分流量到新版本的应用上,如果在这个过程…

Mysql数据库主从集群从库Slave因为RelayLog过多过大引起服务器硬盘爆满生产事故实战解决

Mysql数据库主从集群从库slave因为RelayLog过多过大引起从库服务器硬盘爆满生产事故实战解决 一、MySQL数据库主从集群概念 MySQL数据库主从集群是一种高可用性和读写分离的数据库架构,它基于MySQL的复制(Replication)技术来同步数据。在主…