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

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值