该组件不能在表单设计器上设置隐藏,如需隐藏,可在节点上设置
项 | 值 | 说明 |
---|---|---|
查询列宽 | 查询列宽 | 该属性不适用于金格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
地址为实际远程可访问的地址。