我使用Alfresco V5.0.d并且我需要添加一个动作,允许用户将此文档转换为PDF格式并将PDF文档放到另一个目录中。
默认情况下,Alfresco根据我的需要提出两项行动:
或者,我想添加一个操作,当用户点击它时,会从文档创建一个PDF文件,并将此PDF文件替换为另一个目录。
由于Alfresco提出的默认操作(没有开发或脚本)或者我需要通过开发/添加脚本来添加此操作,我不知道是否可以这样做。< / p>
你能帮助我或给我一些建议吗?
谢谢!
答案 0 :(得分:2)
如前所述,需要进行一些开发。进行转换的API很简单,但如果你从未做过任何Alfresco开发,那么将所有部分放在一起需要花费一些时间。本文介绍了有关添加发送电子邮件操作http://docs.alfresco.com/5.2/tasks/dev-extensions-share-tutorials-add-action-doclib.html的操作的教程。
您可以查看http://ecmarchitect.com/alfresco-developer-series周围添加操作以及http://docs.alfresco.com/5.2/references/dev-extension-points-actions.html和http://docs.alfresco.com/5.2/references/dev-services-content.html。
您也可以使用您创建的javascript Web脚本执行此操作,以便在Web脚本的javascript部分对存储库端进行转换(这只是几行javascript http://docs.alfresco.com/5.2/references/API-JS-Transformation-document.html)。您只需添加共享配置和一点点javascript即可调用Web脚本。
如果你已经与Alfresco一起工作,这需要几个小时的努力。但是,如果您没有使用Alfresco开发的经验,那么最简单的方法就是创建一个转换和复制内容规则。请记住,您可以将其基于位置,但也可以添加其他条件,例如检查节点上属性的值(例如,当status = approved时)。
答案 1 :(得分:1)
使用以下代码创建操作(share-config-custom.xml)
YAHOO.Bubbling.fire("registerAction", {
actionName : "convertAndDownload",
fn : function convertAndDownload(record) {
var nodeid = record.nodeRef;
Alfresco.util.Ajax.request({
url : Alfresco.constants.PROXY_URI+ "/transformer/filetopdf?noderef=" + nodeid,
successCallback : {
fn : function onTransformAction_success(response) {
var pdfNodeRef = response.json.pdfNodeRef;
var noderef = response.json.pdfNodeRef;
pdfNodeRef = pdfNodeRef.replace("://", "/");
window.open(Alfresco.constants.PROXY_URI+ "slingshot/node/content/" + pdfNodeRef+ "?a=true");
Alfresco.util.Ajax.request({
url : Alfresco.constants.PROXY_URI+ "/transformer/filedelete?noderef=" + noderef,
successCallback : {
fn : function onTransformAction_success(response) { },
scope : this
},
failureCallback : {
fn : function onTransformAction_failure(response) {},
scope : this
}
});
},
scope : this
},
failureCallback : {
fn : function onTransformAction_failure(response) {
Alfresco.util.PopupManager.displayMessage({
text : "Something went wrong,please try again later"
});
},
scope : this
}
});
}
});
action.js
var node = args["noderef"];
var docNode = search.findNode(node);
var nodeTrans = docNode.transformDocument("application/pdf");
model.pdfNodeRef = nodeTrans.nodeRef;
这是执行转换的webscript代码。
oe_main.sql