Alfresco Action — Преобразование файла в PDF с помощью действия

Я использую Alfresco V5.0.d, и мне нужно добавить действие, позволяющее пользователю преобразовать этот документ в формат PDF и переместить документ PDF в другой каталог.

По умолчанию Alfresco предлагает два действия для моих нужд:

  • «Связать простой рабочий процесс»: добавляет действие (в список действий), но документ необходимо скопировать или переместить в другой каталог.
  • «Трансформировать и скопировать содержимое»: это действие преобразует документ в PDF и перемещает этот PDF в другой каталог, но это действие работает автоматически.

Или я хочу добавить действие, которое, когда пользователь нажимает на него, из документа создается PDF-файл, и этот PDF-файл перемещается в другой каталог.

Я не знаю, возможно ли это сделать благодаря действиям по умолчанию (без разработки или сценария), предложенным Alfresco, или мне нужно добавить это действие, разработав его / добавив сценарий.

Можете ли вы помочь мне или дать мне несколько советов?

Спасибо !


person Lilawood14    schedule 31.01.2017    source источник
comment
вам нужно добавить действие, разработав его / добавив скрипт.   -  person Sanjay    schedule 31.01.2017
comment
Я надеюсь, что этот пост даст вам некоторое представление. stackoverflow.com/questions/41182480/   -  person Muralidharan Deenathayalan    schedule 01.02.2017


Ответы (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, который вы создаете для преобразования в конце репозитория (это всего несколько строк javascript http://docs.alfresco.com/5.2/references/API-JS).-Transformation-document.html) для javascript-части веб-скрипта . Вам просто нужно добавить конфигурацию общего доступа и немного javascript, чтобы вызвать веб-скрипт.

Если вы работали с Alfresco, это займет пару часов. Однако, если у вас нет опыта разработки с Alfresco, самый простой способ сделать это — просто создать правило Transform and Copy Content, как вы упомянули. Помните, что вы, конечно, можете основываться на местоположении, но также можете добавить другие критерии, такие как проверка значения свойства на узле (например, когда статус = одобрено).

person Jeff R.    schedule 01.02.2017

Создайте действие, используя приведенный ниже код (share-config-custom.xml)

<config evaluator="string-compare" condition="DocLibActions">
                <actions>
                    <action id="transform-to-pdf" type="javascript" label="Download as PDF">
                        <param name="function">convertAndDownload</param>
                        <evaluator negate="true">alfresco.tutorials.evaluator.checkFileType
                        </evaluator>
                    </action>
                </actions>

                <actionGroups>
                    <actionGroup id="document-browse">
                        <action index="400" id="transform-to-pdf" />
                    </actionGroup>
                </actionGroups>
            </config>

            <config evaluator="string-compare" condition="DocLibCustom"
                replace="true">
                <dependencies>
                    <js src="components/myactions/actions.js" />
                </dependencies>
            </config>

action.js

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

это код веб-скрипта, в котором выполняется преобразование.

var node = args["noderef"];
var docNode = search.findNode(node);
var nodeTrans = docNode.transformDocument("application/pdf");
model.pdfNodeRef = nodeTrans.nodeRef;
person Sanjay    schedule 01.02.2017