Alfresco-将文档转换为PDF并下载自定义操作



我创建了一个自定义操作,将文档转换为PDF。有效 很好,但我想在同一自定义的单击时下载转换后的PDF 行动,我的意思是我想转换并下载单击文档 自定义行动。如何做? 我尝试了遵循代码。

newdoc = document.transformDocument("application/pdf"); newdoc.save();

这里您需要传递实际的noderef值。在share-custom-config.xml

中添加了新的文档操作
<action id="convert-to-pdf-download" type="javascript" label="Download As PDF" icon="document-download">
<param name="function">onTransformToPDFAndDownload</param>
</action>
<actionGroups>
<actionGroup id="document-browse">                  
<action index="107" id="convert-to-pdf-download" />
</actionGroup>
<actionGroup id="document-details">   
<action index="107" id="convert-to-pdf-download" />
</actionGroup>   
</actionGroups>

现在,您需要像以下那样注入JavaScript,并且需要通过原始文档的Noderef,我在这里有硬码。

onTransformToPDFAndDownload: function dla_onTransformToPDFAndDownload(record) {
          Alfresco.util.Ajax.request(
          {
            url: Alfresco.constants.PROXY_URI + "com/quanticate/quanticliq/transformer/transform?noderef=workspace://SpacesStore/ec0ca4cf-9ea4-4c12-8f2c-5b0c406e454b",
            successCallback:
            {
               fn: function onTransformAction_success(response)
               {
                    debugger;
                    var pdfNodeRef = response.json.pdfNodeRef;
                    pdfNodeRef = pdfNodeRef.replace("://","/");
                  window.open(Alfresco.constants.PROXY_URI + "slingshot/node/content/" + pdfNodeRef +"?a=true");
               },
               scope: this
            },
            failureCallback:
            {
               fn: function onTransformAction_failure(response)
               {
                  Alfresco.util.PopupManager.displayMessage(
                  {
                     text: "Something went wrong,please try again later"
                  });
               },
               scope: this
            }
         }); 
      }

在repowebscript上, convert.get.desc.xml

<webscript>
   <shortname>toPDF</shortname>
   <desciption>Return PDF Node</desciption>
   <url>/com/quanticate/quanticliq/transformer/transform</url>
   <authentication>user</authentication>
   <format default="json">any</format>
</webscript>

convert.get.json.ftl

"{"pdfNodeRef" :"${pdfNodeRef.nodeRef}"}"

convert.get.js

function main()
{
   var json = "{}";
    var docNode = search.findNode("workspace://SpacesStore/ec0ca4cf-9ea4-4c12-8f2c-5b0c406e454b");   
    var nodeTrans = docNode.transformDocument("application/pdf");
    model.pdfNodeRef =  nodeTrans.nodeRef;  
}
main();

当您单击下载为PDF时,将生成PDF文档,放置信息文档库(或原始文档存在的位置),并将自动下载。您需要检查是否存在或不存在现有的PDF文件。

最新更新