我已經創建了一個將文檔轉換爲pdf的自定義操作。它的工作原理 罰款,但我想下載轉換的PDF上點擊相同的自定義 行動,我的意思是我想轉換和下載文件點擊 自定義action.How可以做到這一點? 我試過下面的代碼。Alfresco - 將Doc轉換爲pdf並下載自定義操作
newdoc = document.transformDocument("application/pdf"); newdoc.save();
我已經創建了一個將文檔轉換爲pdf的自定義操作。它的工作原理 罰款,但我想下載轉換的PDF上點擊相同的自定義 行動,我的意思是我想轉換和下載文件點擊 自定義action.How可以做到這一點? 我試過下面的代碼。Alfresco - 將Doc轉換爲pdf並下載自定義操作
newdoc = document.transformDocument("application/pdf"); newdoc.save();
在這裏,你需要傳遞實際的nodeRef值。股價定製-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文件是否存在。
下載後是否可以刪除生成的pdf?如果是,那麼怎麼辦? –
您可以按照如何執行「刪除文檔」操作,參考C:\ Alfresco5 \ tomcat \ webapps \ share \ components \ documentlibrary \ actions.js文件中的_onActionDeleteConfirm方法。您需要使用AJAX Delete請求調用Web腳本並傳遞PDF文件noderef並確保PDF文檔已下載,但理想的解決方案應該是您需要在服務器端將文檔轉換爲PDF,將它們保存到露天溫度的位置以及下載它。 –
,我可以重寫_onActionDeleteConfirm.call(this,record)在我的custion動作函數中嗎?如果是,那麼如何?我嘗試過使用這種方式,但它不工作。 Alfresco.doclib.Actions.prototype._onActionDeleteConfirm.call(this,record1); –
通過共享javascript將此操作稱爲Repo Webscript進行轉換。生成文件後,從客戶端獲取nodeRef並打開下載URL,如http:// localhost:8080/share/proxy/alfresco/slingshot/node/content/workspace/SpacesStore/34104a8f-6385-49e2-9cb2- 655939cdf0bf?一= TRUE。讓我嘗試爲你創建樣本。 –