2016-07-29 51 views
2

我創建了一個自定義Web應用程序。通過我上傳一些文件到露天存儲庫。我還創建了一個PDF查看器來查看UI中的文檔。如何從使用CMIS的露天存儲庫獲取Word文檔的複製副本

現在的問題是,我只能查看文檔的PDF類型,但我上傳了不同類型的文檔在存儲庫中。

所以我想要一個我上傳到存儲庫中的所有文件的複製副本。 我已經寫了CMIS代碼來獲取文檔並在查看器中顯示。

現在我只想要文件的副本副本。

任何人都可以幫助我。如果可能,請提供示例源代碼。

在此先感謝

回答

1

我希望我有很好的理解你的問題:

讓我們承認你的露天很好配置,並且,當你去分享,您的文檔(.doc & CIE)呈現在觀衆中。

如果你的文件有這個nodeRef:

workspace://SpacesStore/289e60a1-8b77-48da-ac53-4c2f3e81aa97 

然後你就可以有一個PDF與此網址渲染:

https://localhost:8080/share/proxy/alfresco/api/node/workspace/SpacesStore/289e60a1-8b77-48da-ac53-4c2f3e81aa97/content/thumbnails/pdf?c=force 

這樣,你總是在你的應用程序處理PDF。

請注意,呈現過程可能需要一些時間並從服務器重新分配。

+0

OP詢問CMIS代碼,而不是網絡腳本。 –

+0

是的,這就是我猶豫的原因:我基本上想表明,即使我無法回答CMIS方式,也有一種服務提供了文檔的pdf再現。 – Akah

3

blog post討論了Alfresco對CMIS再現的解釋,並且包含顯示如何檢索它們的Java代碼。

爲了節省您的點擊,從博客文章的代碼是:

OperationContext context = session.createOperationContext(); 
context.setRenditionFilterString("cmis:thumbnail"); 
CmisObject doc = session.getObjectByPath("/Sites/ren/documentLibrary/Spring Surf and OpenCMIS Integration", context); 
List<Rendition> renditions = doc.getRenditions(); 
for (Rendition rendition : renditions) 
{ 
    System.out.println("kind: " + rendition.getKind()); 
    System.out.println("mimetype: " + rendition.getMimeType()); 
    System.out.println("width: " + rendition.getWidth()); 
    System.out.println("height: " + rendition.getHeight()); 
    System.out.println("stream id: " + rendition.getStreamId()); 
} 

的轉儲:

kind: cmis:thumbnail 
mimetype: image/png 
width: 100 
height: 100 
stream id: workspace://SpacesStore/ef7e9a9b-c847-4023-b527-17243c72ade6 

您可以使用流ID,以獲取實際繪製對象及其內容流。

相關問題