12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022 |
- MWF.xDesktop.requireApp("process.Xform", "$Module", null, false);
- /** @class WpsOffice Wps组件。
- * @o2cn WpsOffice
- * @example
- * //可以在脚本中获取该组件
- * //方法1:
- * var wpsOffice = this.form.get("fieldId"); //获取组件
- * //方法2
- * var wpsOffice = this.target; //在组件本身的脚本中获取
- * @extends MWF.xApplication.process.Xform.$Module
- * @o2category FormComponents
- * @o2range {Process|CMS|Portal}
- * @hideconstructor
- */
- MWF.xApplication.process.Xform.WpsOffice = MWF.APPWpsOffice = new Class(
- /** @lends MWF.xApplication.process.Xform.WpsOffice# */
- {
- Extends: MWF.APP$Module,
- isActive: false,
- options:{
- "version": "wpsWebOffice",
- /**
- * 文档打开前事件。
- * @since V8.0
- * @event MWF.xApplication.process.Xform.WpsOffice#beforeOpen
- */
- /**
- * 文档打开后事件。
- * @since V8.0
- * @event MWF.xApplication.process.Xform.WpsOffice#afterOpen
- */
- /**
- * 保存后事件。
- * @since V8.0
- * @event MWF.xApplication.process.Xform.WpsOffice#afterSave
- */
- "moduleEvents": ["beforeOpen",
- "afterOpen",
- "afterSave"
- ]
- },
- initialize: function(node, json, form, options){
- this.node = $(node);
- this.node.store("module", this);
- this.json = json;
- this.form = form;
- this.documentId = "";
- this.mode = "write";
- this.officeType = {
- "docx" : "Writer",
- "doc" : "Writer",
- "xlsx" : "Spreadsheet",
- "xls" : "Spreadsheet",
- "pptx" : "Presentation",
- "ppt" : "Presentation",
- "pdf" : "Pdf",
- "ofd" : "Pdf"
- };
- this.appToken = "x_processplatform_assemble_surface";
- this.version = this.options.version;
- },
- _loadUserInterface: function(){
- this.node.empty();
- this.node.setStyles({
- "min-height": "700px"
- });
- },
- _afterLoaded: function(){
- if(!layout.serviceAddressList["x_wpsfile_assemble_control"]){
- this.node.set("html","<h3><font color=red>please install wps application</font></h3>");
- return false;
- }
- if(this.mode !== "read" && this.json.allowUpload){
- this.createUpload();
- }
- this.action = o2.Actions.load("x_wpsfile_assemble_control");
- if (!this.json.isNotLoadNow){
- this.data = this.getData();
- if(this.data.documentId === ""){
- if (this.json.officeType === "other" && this.json.templateType === "script"){
- this.json.template = this.form.Macro.exec(this.json.templeteScript.code, this);
- }
- this[this.json.officeType === "other"&&this.json.template !== ""? "createDocumentByTemplate":"createDocument"](function (){
- this.loadDocument();
- }.bind(this));
- }else {
- this.documentId = this.data.documentId;
- this.loadDocument();
- }
- }
- },
- createUpload : function (){
- this.uploadNode = new Element("div",{"style":"margin:10px;"}).inject(this.node);
- var uploadBtn = new Element("button",{"text":MWF.xApplication.process.Xform.LP.ofdview.upload,"style":"margin-left: 15px; color: rgb(255, 255, 255); cursor: pointer; height: 26px; line-height: 26px; padding: 0px 10px; min-width: 40px; background-color: rgb(74, 144, 226); border: 1px solid rgb(82, 139, 204); border-radius: 15px;"}).inject(this.uploadNode);
- uploadBtn.addEvent("click",function (){
- o2.require("o2.widget.Upload", null, false);
- var upload = new o2.widget.Upload(this.content, {
- "action": o2.Actions.get(this.appToken).action,
- "method": "uploadAttachment",
- "accept" : ".docx,.xlsx,.pptx,.pdf,.ofd",
- "parameter": {
- "id" : this.form.businessData.work.id
- },
- "data":{
- },
- "onCompleted": function(data){
- o2.Actions.load(this.appToken).AttachmentAction.delete(this.documentId,function( json ){
- }.bind(this));
- this.documentId = data.id;
- this.reload();
- }.bind(this)
- });
- upload.load();
- }.bind(this));
- },
- reload : function (){
- this.setData();
- this.node.empty();
- this.createUpload();
- this.loadDocument();
- },
- createDocumentByTemplate : function (callback){
- this.action.CustomAction.getInfo(this.json.template).then(function(json) {
- var data = {
- "fileName": MWF.xApplication.process.Xform.LP.onlyoffice.filetext + "." + json.data.extension,
- "fileType": json.data.extension,
- "appToken" : this.appToken,
- "workId" : this.form.businessData.work.id,
- "site" : "filetext",
- "tempId": this.json.template
- };
- this.action.CustomAction.createForO2(data,
- function( json ){
- this.documentId = json.data.fileId;
- this.setData();
- if (callback) callback();
- }.bind(this),null, false
- );
- }.bind(this))
- },
- createDocument : function (callback){
- var data = {
- "fileName" : MWF.xApplication.process.Xform.LP.onlyoffice.filetext + "." + this.json.officeType,
- "appToken" : this.appToken,
- "workId" : this.form.businessData.work.id,
- "site" : "filetext"
- };
- this.action.CustomAction.createForO2(data,
- function( json ){
- this.documentId = json.data.fileId;
- this.setData();
- if (callback) callback();
- }.bind(this),null, false
- );
- },
- loadDocument: function () {
- o2.Actions.load(this.appToken).AttachmentAction.getOnlineInfo(this.documentId, function( json ){
- this.documentData = json.data;
- this.fileName = this.documentData.name;
- this.extension = this.documentData.extension;
- this.getEditor(function () {
- this.loadApi(function (){
- this.loadEditor();
- }.bind(this));
- }.bind(this));
- }.bind(this),null,false);
- },
- loadApi : function (callback){
- if(this.version === "wpsWebOffice"){
- o2.load(["../x_component_WpsOfficeEditor/web-office-sdk-solution-v2.0.2.umd.min.js"], {"sequence": true}, function () {
- if (callback) callback();
- }.bind(this));
- }else {
- o2.load(["../x_component_WpsOfficeEditor/web-office-sdk-v1.1.19.umd.js"], {"sequence": true}, function () {
- if (callback) callback();
- }.bind(this));
- }
- },
- getEditor: function (callback) {
- if (this.isReadonly()){
- this.mode = "read";
- }else{
- if (this.json.readScript && this.json.readScript.code){
- var flag = this.form.Macro.exec(this.json.readScript.code, this);
- if (flag){
- this.mode = "read";
- }
- }
- }
- if(this.action.ConfigAction.getBaseConfig){
- this.action.ConfigAction.getBaseConfig(function( json ){
- this.appId = json.data.appId;
- this.version = json.data.version;
- if (callback) callback();
- }.bind(this),null,false);
- }else {
- this.action.ConfigAction.getAppId(function( json ){
- this.appId = json.data.value;
- if (callback) callback();
- }.bind(this),null,false);
- }
- },
- loadEditor : function (){
- this.fireEvent("beforeOpen");
- if(this.wpsOffice) this.wpsOffice.destroy();
- this.officeNode = new Element("div#_" + this.documentId,{"style":"height:100%;overflow:hidden;min-height:700px"}).inject(this.node);
- var config = {
- mount: this.officeNode,
- mode : this.json.showMode,
- cooperUserAttribute: {
- isCooperUsersAvatarVisible: this.json.isCooperUsersAvatarVisible //是否显示协作用户头像
- },
- // 通用选项,所有类型文档适用
- commonOptions: {
- isShowTopArea: this.json.isShowTopArea, // 隐藏顶部区域(头部和工具栏)
- isShowHeader: this.json.isShowHeader, // 隐藏头部区域
- isBrowserViewFullscreen : this.json.isBrowserViewFullscreen,//是否在浏览器区域全屏
- isIframeViewFullscreen : this.json.isIframeViewFullscreen//是否在iframe区域内全屏
- },
- wordOptions : {
- isShowDocMap : this.json.isShowDocMap,//是否开启目录功能,默认开启
- isBestScale : this.json.isBestScale,//打开文档时,默认以最佳比例显示(适用于pc)
- isShowBottomStatusBar : this.json.isShowBottomStatusBar,//pc-是否展示底部状态栏
- "mobile.isOpenIntoEdit" : this.json.isOpenIntoEdit//mobile-要有编辑权限,移动端打开时是否进入编辑
- },
- commandBars: [
- {
- cmbId: "HeaderLeft",
- attributes: {
- visible: this.json.HeaderLeft,
- enable: this.json.HeaderLeft
- }
- },
- {
- cmbId: "HeaderRight",
- attributes: {
- visible: this.json.HeaderRight,
- enable: this.json.HeaderRight
- }
- },
- {
- cmbId: "FloatQuickHelp",
- attributes: {
- visible: this.json.FloatQuickHelp,
- enable: this.json.FloatQuickHelp
- }
- },
- {
- cmbId: "HistoryVersion",
- attributes: {
- visible: this.json.HistoryVersion,
- enable: this.json.HistoryVersion
- }
- },
- {
- cmbId: "HistoryRecord",
- attributes: {
- visible: this.json.HistoryRecord,
- enable: this.json.HistoryRecord
- }
- },
- {
- cmbId: "HistoryVersionDivider",
- attributes: {
- visible: this.json.HistoryVersionDivider,
- enable: this.json.HistoryVersionDivider
- }
- },
- {
- cmbId: "Logo",
- attributes: {
- visible: this.json.Logo,
- enable: this.json.Logo
- }
- },
- {
- cmbId: "Cooperation",
- attributes: {
- visible: this.json.Cooperation,
- enable: this.json.Cooperation
- }
- },
- {
- cmbId: "More",
- attributes: {
- visible: this.json.More,
- enable: this.json.More
- }
- },
- {
- cmbId: "SendButton",
- attributes: {
- visible: this.json.SendButton,
- enable: this.json.SendButton
- }
- },
- {
- cmbId: "CooperHistoryMenuItem",
- attributes: {
- visible: this.json.CooperHistoryMenuItem,
- enable: this.json.CooperHistoryMenuItem
- }
- },
- {
- cmbId: "TabPrintPreview",
- attributes: {
- visible: this.json.TabPrintPreview,
- enable: this.json.TabPrintPreview
- }
- },
- {
- cmbId: "MenuPrintPreview",
- attributes: {
- visible: this.json.MenuPrintPreview,
- enable: this.json.MenuPrintPreview
- }
- },
- {
- cmbId: "ReviewTrackChanges",
- attributes: {
- visible: this.json.ReviewTrackChanges,
- enable: this.json.ReviewTrackChanges
- }
- },
- {
- cmbId: "TrackChanges",
- attributes: {
- visible: this.json.TrackChanges,
- enable: this.json.TrackChanges
- }
- },
- {
- cmbId: "ContextMenuConvene",
- attributes: {
- visible: this.json.ContextMenuConvene,
- enable: this.json.ContextMenuConvene
- }
- },
- {
- cmbId: "WriterHoverToolbars",
- attributes: {
- visible: this.json.WriterHoverToolbars,
- enable: this.json.WriterHoverToolbars
- }
- },
- {
- cmbId: "ReadSetting",
- attributes: {
- visible: this.json.ReadSetting,
- enable: this.json.ReadSetting
- }
- }
- ]
- };
- if(this.version === "wpsWebOffice"){
- config.officeType = WebOfficeSDK.OfficeType[this.officeType[this.extension.toLowerCase()]];
- config.appId = this.appId;
- config.fileId = this.documentId.replace(/-/g, "_");
- config.token = layout.session.token;
- config.customArgs = {
- "appToken" : this.appToken,
- "mode" : this.mode
- };
- this.wpsOffice = WebOfficeSDK.init(config);
- }else {
- this.action.CustomAction.getWpsFileUrl(this.documentId,{
- "mode" : this.mode,
- "appToken" : this.appToken
- },function( json ){
- this.wpsUrl = json.data.wpsUrl;
- config.url = this.wpsUrl;
- }.bind(this),null,false);
- // console.log(this.wpsUrl)
- this.wpsOffice = WebOfficeSDK.config(config);
- this.wpsOffice.setToken({
- token: layout.session.token,
- timeout: 100 * 60 * 1000 // token超时时间, 可配合refreshToken配置函数使用,当超时前将调用refreshToken
- });
- }
- this.wpsOffice.on('fileOpen', function(result) {
- this.fireEvent("afterOpen");
- }.bind(this));
- this.wpsOffice.on('fileStatus', function(result) {
- if(result.status === 7){
- this.fireEvent("afterSave");
- }
- }.bind(this));
- this.wpsOffice.on('fullscreenChange', function(result) {
- console.log(JSON.stringify(result))
- });
- this.wpsOffice.on('previewLimit', function(result) {
- console.log(JSON.stringify(result))
- });
- this.wpsOffice.on('tabSwitch', function(result) {
- console.log(JSON.stringify(result))
- });
- this.wpsOffice.on('error', function(result) {
- console.log(JSON.stringify(result))
- });
- //是否显示评论
- if(this.json.isShowComment){
- this.showComments();
- }else {
- this.hideComments();
- }
- },
- hide: function(){
- this.node.hide();
- },
- show: function(){
- this.node.show();
- },
- isEmpty : function(){
- var data = this.getData();
- if(data.documentId === ""){
- return true;
- }else {
- return false;
- }
- },
- getData: function(){
- var data = {
- "documentId" : ""
- };
- if(this.form.businessData.data[this.json.id]){
- data.documentId = this.form.businessData.data[this.json.id].documentId;
- }
- return data;
- },
- setData: function() {
- var data = {
- "documentId": this.documentId,
- "appToken": this.appToken
- }
- this.data = data;
- this._setBusinessData(data);
- var jsonData = {}
- jsonData[this.json.id] = data;
- o2.Actions.load(this.appToken).DataAction.updateWithJob(this.form.businessData.work.job, jsonData, function (json) {
- data = json.data;
- })
- },
- /**
- * @summary 保存wps
- * @example
- * this.form.get("fieldId").save(callback)
- */
- save: function(callback){
- var promise = this.wpsOffice.save();
- promise.then(function(){
- console.log("save success");
- if(callback) callback();
- });
- },
- /**
- * @summary 发送全局广播
- * @example
- * this.form.get("fieldId").sendBroadcast("测试")
- */
- sendBroadcast : async function (text){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const Public = await app.Public;
- const result = await Public.SendBroadcast({
- Data: { message: text }
- });
- },
- /**
- * @summary 获取word页面总数,
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").getTotalPage()
- */
- getTotalPage : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const totalPages = await app.ActiveDocument.Range.Information(app.Enum.WdInformation.wdNumberOfPagesInDocument);
- console.log(totalPages)
- return totalPages;
- },
- /**
- * @summary 获取当前页
- * @example
- * this.form.get("fieldId").getCurrentPage()
- */
- getCurrentPage: async function (){
- // 获取当前页数
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const currentPage = await app.ActiveDocument.ActiveWindow.Selection.Information(
- app.Enum.WdInformation.wdActiveEndPageNumber
- )
- console.log(currentPage)
- return currentPage;
- },
- /**
- * @summary 跳转到指定页
- * @example
- * this.form.get("fieldId").gotoPage(page)
- */
- gotoPage : async function (page){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- await app.ActiveDocument.Selection.GoTo({
- What: app.Enum.WdGoToItem.wdGoToPage,
- Which: app.Enum.WdGoToDirection.wdGoToAbsolute,
- Count: page
- });
- },
- /**
- * @summary 获取所有书签
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").getAllBookmark()
- */
- getAllBookmark : async function (callback){
- this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const bookMarks = await app.ActiveDocument.Bookmarks.Json();
- return bookMarks;
- },
- /**
- * @summary 获取书签值
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").getBookmarkText()
- */
- getBookmarkText : async function (name) {
- this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const text = await app.ActiveDocument.GetBookmarkText(name);
- return text;
- },
- /**
- * @summary 跳转到书签
- * @example
- * this.form.get("fieldId").gotoBookmark()
- */
- gotoBookmark : async function (name){
- this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- await app.ActiveDocument.Selection.GoTo({
- What: app.Enum.WdGoToItem.wdGoToBookmark,
- Which: app.Enum.WdGoToDirection.wdGoToAbsolute,
- Name: name
- });
- },
- /**
- * @summary 给书签赋值
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").setBookmarkText(name,value)
- */
- setBookmarkText : async function (name,value){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- // 书签对象
- const bookmarks = await app.ActiveDocument.Bookmarks;
- // 替换书签内容
- const isReplaceSuccess = await bookmarks.ReplaceBookmark([
- {
- name: name,
- type: 'text',
- value: value
- }
- ])
- return isReplaceSuccess;
- },
- /**
- * @summary 盖章
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").setSeal(bookmark,img,left,top,width,height)
- */
- setSeal : async function (bookmark,img,left,top,width,height){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- //获取当前选区
- const selection = await app.ActiveDocument.ActiveWindow.Selection;
- // 跳转到指定的书签
- await app.ActiveDocument.ActiveWindow.Selection.GoTo(
- app.Enum.WdGoToItem.wdGoToBookmark, // 类型:Bookmark
- app.Enum.WdGoToDirection.wdGoToAbsolute, // 定位
- 1, // 数量
- bookmark, // 书签名
- );
- // 获取图形对象
- const shapes = await app.ActiveDocument.Shapes;
- // 光标插入非嵌入式图片
- const shape = await shapes.AddPicture({
- FileName: img, // 图片地址
- LinkToFile: true,
- SaveWithDocument: true,
- Left: left, // 图片距离左边位置
- Top: top, // 图片距离顶部位置
- Width: width, // 图片宽度
- Height: height, // 图片高度
- });
- // 设置文字环绕模式为【衬于文字下方】
- shape.ZOrder(app.Enum.ZOrderCmd.sendBehindText);
- },
- /**
- * @summary 查找替换
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").replaceText(key,value)
- */
- replaceText : async function (key,value,options){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const isReplaceSuccess = app.ActiveDocument.ReplaceText([{key: key, value: value}])
- return isReplaceSuccess;
- },
- /**
- * @summary 开启修订模式
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").startRevisions()
- */
- startRevisions : function (){
- this.wpsOffice.ready().then(function(){
- const app = this.wpsOffice.Application;
- // 将当前文档的编辑状态切换成修订模式
- app.ActiveDocument.TrackRevisions = true;
- }.bind(this));
- },
- /**
- * @summary 关闭修订模式
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").stopRevisions()
- */
- stopRevisions : function (){
- //关闭修订模式
- this.wpsOffice.ready().then(function(){
- const app = this.wpsOffice.Application;
- // 将当前文档的编辑状态切换成修订模式
- app.ActiveDocument.TrackRevisions = false;
- }.bind(this));
- },
- /**
- * @summary 接受所有修订
- * @example
- * this.form.get("fieldId").acceptAllRevisions()
- */
- acceptAllRevisions : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- // 获取修订对象
- const revisions = await app.ActiveDocument.Revisions;
- // 接受对指定文档的所有修订
- await revisions.AcceptAll();
- },
- /**
- * @summary 拒绝所有修订
- * @example
- * this.form.get("fieldId").rejectAllRevisions()
- */
- rejectAllRevisions : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- // 获取修订对象
- const revisions = await app.ActiveDocument.Revisions;
- // 拒绝对指定文档的所有修订
- await revisions.RejectAll();
- },
- /**
- * @summary 显示痕迹
- * @example
- * this.form.get("fieldId").showRevisions()
- */
- showRevisions : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- // 获取节对象
- const View = await app.ActiveDocument.ActiveWindow.View;
- View.RevisionsView = 0;
- // 设置修订状态为 显示标记的最终状态
- View.ShowRevisionsAndComments = true;
- },
- /**
- * @summary 隐藏痕迹
- * @example
- * this.form.get("fieldId").hideRevisions()
- */
- hideRevisions : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- // 获取节对象
- const View = await app.ActiveDocument.ActiveWindow.View;
- View.RevisionsView = 0;
- // 设置修订状态为 显示标记的最终状态
- View.ShowRevisionsAndComments = false;
- },
- /**
- * @summary 打印
- * @example
- * this.form.get("fieldId").print()
- */
- print : function (){
- this.wpsOffice.ready().then(function(){
- const app = this.wpsOffice.Application;
- // 页面定制对象:更多菜单
- app.CommandBars('TabPrintPreview').then(function(printMenu){
- printMenu.Execute();
- });
- }.bind(this));
- },
- /**
- * @summary 导出pdf
- * @example
- * this.form.get("fieldId").exportPDF()
- */
- exportPDF : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- var pdfUrl;
- switch (this.json.officeType){
- case "docx":
- pdfUrl = await app.ActiveDocument.ExportAsFixedFormat();
- break;
- case "xlsx":
- pdfUrl = await app.ActiveWorkbook.ExportAsFixedFormat()
- break;
- case "pptx":
- pdfUrl = await app.ActivePresentation.ExportAsFixedFormat()
- }
- window.open(pdfUrl.url);
- },
- /**
- * @summary 获取文档权限信息
- * @example
- * this.form.get("fieldId").getOperatorsInfo()
- */
- getOperatorsInfo : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- var operatorsInfo ;
- switch (this.json.officeType){
- case "docx":
- operatorsInfo = await app.ActiveDocument.GetOperatorsInfo();
- break;
- case "xlsx":
- operatorsInfo = await app.ActiveWorkbook.GetOperatorsInfo();
- break;
- case "pptx":
- operatorsInfo = await app.ActivePresentation.GetOperatorsInfo();
- }
- return operatorsInfo;
- },
- /**
- * @summary 获取内容控件个数
- * @return 返回是个Promise对象
- * @example
- * this.form.get("fieldId").getContentControlsCount()
- */
- getContentControlsCount : async function (){
- //获取内容控件
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- // 内容控件对象
- const contentControls = await app.ActiveDocument.ContentControls;
- // 内容控件数量
- const count = await contentControls.Count;
- return count;
- },
- /**
- * @summary 获取内容控件文本
- * @example
- * this.form.get("fieldId").getContentControlText()
- */
- getContentControlText : async function (pos){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const contentControls = await app.ActiveDocument.ContentControls;
- const contentControl = await contentControls.Item(pos);
- const range = await contentControl.Range;
- const text = range.Text;
- return text
- // range.Text = 'WebOffice'
- },
- /**
- * @summary 设置内容控件文本
- * @example
- * this.form.get("fieldId").setContentControlText()
- */
- setContentControlText : async function (pos,text){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const contentControls = await app.ActiveDocument.ContentControls;
- const contentControl = await contentControls.Item(pos);
- const range = await contentControl.Range;
- range.Text = text;
- },
- /**
- * @summary 获取文档缩放
- * @example
- * this.form.get("fieldId").getZoom()
- */
- getZoom : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- var zoom;
- switch (this.json.officeType){
- case "docx":
- zoom = await app.ActiveDocument.ActiveWindow.View.Zoom.Percentage
- break;
- case "xlsx":
- zoom = await app.ActiveWorkbook.ActiveSheetView.Zoom
- break;
- case "pptx":
- zoom = await app.ActivePresentation.View.Zoom
- }
- return zoom;
- },
- /**
- * @summary 设置文档缩放
- * @example
- * this.form.get("fieldId").setZoom()
- */
- setZoom : async function (zoom){
- //缩放属性值在50%到 300%之间。
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- switch (this.json.officeType){
- case "docx":
- app.ActiveDocument.ActiveWindow.View.Zoom.Percentage = zoom;
- break;
- case "xlsx":
- app.ActiveWorkbook.ActiveSheetView.Zoom = zoom;
- break;
- case "pptx":
- app.ActivePresentation.View.Zoom = zoom;
- }
- },
- /**
- * @summary 是否有评论
- * @example
- * this.form.get("fieldId").hasComments()
- */
- hasComments : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- var hasComments;
- switch (this.json.officeType){
- case "docx":
- hasComments = await app.ActiveDocument.HasComments();
- break;
- case "xlsx":
- hasComments = await app.ActiveWorkbook.HasComments();
- break;
- case "pptx":
- hasComments = await app.ActivePresentation.HasComments();
- }
- return hasComments;
- },
- /**
- * @summary 显示评论
- * @example
- * this.form.get("fieldId").showComments()
- */
- showComments : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- app.ActiveDocument.ActiveWindow.View.ShowComments = true;
- },
- /**
- * @summary 隐藏评论
- * @example
- * this.form.get("fieldId").hideComments()
- */
- hideComments : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- app.ActiveDocument.ActiveWindow.View.ShowComments = false;
- },
- /**
- * @summary 获取所有评论
- * @example
- * this.form.get("fieldId").hideComments()
- */
- getComments : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- const operatorsInfo = await app.ActiveDocument.GetComments({ Offset: 0, Limit: 2000 });
- return operatorsInfo;
- },
- /**
- * @summary 页面模式
- * @example
- * this.form.get("fieldId").showPageMode()
- */
- showPageMode : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- app.ActiveDocument.SwitchTypoMode(false);
- },
- /**
- * @summary 连页模式
- * @example
- * this.form.get("fieldId").showPageMode()
- */
- showUnionPageMode : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- app.ActiveDocument.SwitchTypoMode(true);
- },
- /**
- * @summary 显示连页模式下的文件名
- * @example
- * this.form.get("fieldId").showFileName()
- */
- showFileName : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- await app.ActiveDocument.SwitchTypoMode(true);
- await app.ActiveDocument.SwitchFileName(true);
- },
- /**
- * @summary 隐藏连页模式下的文件名
- * @example
- * this.form.get("fieldId").hideFileName()
- */
- hideFileName : async function (){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- await app.ActiveDocument.SwitchTypoMode(true);
- await app.ActiveDocument.SwitchFileName(false);
- },
- /**
- * @summary 显示导航目录
- * @example
- * this.form.get("fieldId").showDocumentMap()
- */
- showDocumentMap : async function (callback){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- await app.ActiveDocument.SwitchTypoMode(true);
- app.ActiveDocument.ActiveWindow.DocumentMap = true;
- },
- /**
- * @summary 隐藏导航目录
- * @example
- * this.form.get("fieldId").hideDocumentMap()
- */
- hideDocumentMap : async function (callback){
- await this.wpsOffice.ready();
- const app = this.wpsOffice.Application;
- await app.ActiveDocument.SwitchTypoMode(true);
- app.ActiveDocument.ActiveWindow.DocumentMap = false;
- },
- });
|