金格iWebPDF

配置

该组件不能在表单设计器上设置隐藏,如需隐藏,可在节点上设置

属性信息

说明
查询列宽 查询列宽 该属性不适用于金格iWebPDF
帮助说明 运行时刻光标提示说明 该属性不适用于金格iWebPDF

扩展属性

说明
高度 运行时,iWebPDF中间件高度,默500,单位px
显示工具栏 运行时是否显示工具栏区域
显示打印 运行时是否显示打印按钮

目前该组件仅用于将iWebOffice在线文档转为PDF格式供用户在线阅读。

实施要求

1. BO表需要同时存在iWebOfficeUI类型字段和iWebPDF类型字段

2. 流程同一节点仅允许显示其中一个类型字段,如流程第一节点表单应用勾选iWebPDF字段隐藏,第二节点勾选iWebOffice字段隐藏

3. 在iWebOffice字段显示的流程节点配置同步保存PDF扩展属性

有关iWebOffice组件扩展属性支持请参见https://docs.awspaas.com/user-manual/aws-paas-ui-reference-guide-formui-iweboffice/configure/extendproperty.html

4. 注册任务完成前/后节点事件将iWebOffice组件的PDF文件转为iWebPDF文件

任务完成后事件代码示例如下:

import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

import com.actionsoft.apps.resource.AppContext;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.sdk.local.SDK;

public class SavePDF extends ExecuteListener {

    @Override
    public void execute(ProcessExecutionContext ctx) throws Exception {
        // TODO Auto-generated method stub
        String defId = ctx.getProcessDef().getId();
        String bindId = ctx.getProcessInstance().getId();
        BO bo = SDK.getBOAPI().getByProcess("BO_ACT_XIUJIA1", bindId); // BO表名
        String currentTaskId = ctx.getTaskInstance().getActivityDefId(); // 当前节点模型ID

        // 判断当前节点金格iweboffice是否设置了保存PDF属性
        String isUsePDF = SDK.getRepositoryAPI().getActivityExtendAttribute(defId, currentTaskId, "isSavePDF");
        if (isUsePDF.equals("1")) {// 如果保存了PDF则执行将PDF另存为IwebPDF附件
            saveToPDFfile(ctx, bo);
        }
    }

    /**
     * 将iweboffice 保存的PDF文件,存为IWebPDF文件
     *
     * @param ctx
     * @param bo
     */
    public void saveToPDFfile(ProcessExecutionContext ctx, BO bo) {
        // 这里调用IWebPDF应用的ASLP:OfficeSaveAsPDF
        String bindId = ctx.getProcessInstance().getId();
        // 判断金格PDF组件有没有安装或者没有启动,如果没有,则替换为附件
        AppContext iwebpdfApp = SDK.getAppAPI().getAppContext("com.actionsoft.apps.formui.iwebpdf");// 值固定
        if (iwebpdfApp != null && SDK.getAppAPI().isActive(iwebpdfApp.getId())) {
            String aslp = "aslp://com.actionsoft.apps.formui.iwebpdf/copyToPDF";
            Map<String, Object> params = new HashMap<String, Object>();
            params.put("sid", ctx.getUserContext().getSessionId());
            params.put("processInstId", bindId);
            params.put("appId", "com.actionsoft.apps.chanjia.close"); // 当前AppID
            params.put("repositoryNameOffice", "!iweboffice-");// 值固定
            params.put("repositoryNamePDF", "!iwebpdf-");// 值固定

            params.put("groupValue", bindId);
            params.put("fileValue", "T1");// IwebOffice组件字段名
            params.put("fileName", "T1"); // IwebOffice组件字段名
            params.put("documentType", ".pdf");// 值固定

            params.put("taskInstId", ctx.getTaskInstance().getActivityDefId());
            params.put("boId", bo.getId());
            params.put("boDefId", "52434c2b-cf3e-4f27-b785-dd162c5f0925");// BO表UUID值
            params.put("boItemName", "PDF1");// IwebPDF字段名
            ResponseObject ro = SDK.getAppAPI().callASLP(iwebpdfApp, aslp, params);
            if (ro.toJsonObject().get("result").toString().equals("error")) {
                System.out.println(ro.toJsonObject().get("msg").toString());
            } else {
                boolean isCopy = false;
                if (ro.toJsonObject().get("data") != null) {
                    isCopy = ((JSONObject) ro.toJsonObject().get("data")).getBoolean("isCopy");
                    if (isCopy) {
                        System.out.println("移动.pdf文件成功");
                    }
                }
            }
            if (!ro.isOk()) {
                SDK.getAppAPI().err(iwebpdfApp, ro.getMsg());
            }
        }
    }
}

使用该UI组件要求正确配置%AWS_HOME%/bin/conf/aws-portal.xml文件url地址为实际远程可访问的地址。



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区