如何使用CMIS从alfresco存储库中获取word文档的再现副本

时间:2016-07-29 09:34:39

标签: java alfresco alfresco-share cmis alfresco-webscripts

我创建了一个自定义Web应用程序。通过我将一些文件上传到露天存储库。我还创建了一个PDF查看器来在UI中查看文档。

现在问题是,我只能查看PDF类型的文档,但我在存储库中上传不同类型的文档。

所以我想要我在存储库中上传的所有文档的再现副本。 我已经编写了CMIS代码来获取文档并在查看器中显示。

现在我只想要复制文件。

任何人都可以帮助我。如果可能,请提供示例源代码。

提前致谢

2 个答案:

答案 0 :(得分: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来获取实际的再现对象及其内容流。

答案 1 :(得分:1)

我希望我很清楚你的问题:

让我们承认您的露天配置得很好,当您继续分享时,您的文档(.doc&amp; 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。

请注意,渲染可能需要一些时间并从服务器重新获取。