Как получить уменьшенное изображение любого вида документов на открытом воздухе с использованием CMIS

#jsp #servlets #alfresco #alfresco-share #opencmis

#jsp #сервлеты #на открытом воздухе #на открытом воздухе-поделиться #opencmis

Вопрос:

Я создал пользовательское веб-приложение с использованием Java-сервлетов и подключился к репозиторию Alfresco с использованием CMIS.

Теперь мое требование — создать навигатор библиотеки; для этого я должен отобразить уменьшенное изображение документа перед именем документа, используя <IMG/> тег.

Как я могу добиться этого с помощью CMIS или любого другого rest API alfresco.

Комментарии:

1. вы пытались получить список объектов репозитория ?!?

Ответ №1:

CMIS понимает концепцию представлений. Эскизы и веб-превью в Alfresco отображаются как изображения CMIS. В этом сообщении в блоге приводятся подробности. В нем вы увидите пример кода, и я включил его ниже:

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

Обратите внимание, что вас может сбить с толку то, что представления не создаются автоматически при добавлении объектов в репозиторий. Обычно они создаются асинхронно, когда кто-то запрашивает просмотр библиотеки документов через общий клиент Alfresco.

Если вам нужно иметь возможность создать документ, а затем немедленно получить его версии, даже не входя в клиент Alfresco Share, вам нужно будет использовать правила или поведение, чтобы инициировать создание нужных версий.

Комментарии:

1. ПРИВЕТ, Джефф, я попробовал приведенный выше код, но, как вы сказали, у кого-то есть запросы на просмотр библиотеки документов через общий клиент Alfresco. необходимо. И я также пытался установить правило, но мое правило не работает, если я создал объект document с использованием Cmis, сценарий Js не выполняется.

2. Правила всегда должны срабатывать независимо от того, как добавлен документ. Какую конкретную версию вы используете?

Ответ №2:

Кажется, вы ищете держатель для документов.

Вместо того, чтобы использовать CMIS, лучше использовать Alfresco REST API. Ниже приведен REST API для получения держателя документа, в котором вам нужно динамически передавать ссылку на узел документа и тикет ALF

  "http://localhost:8080/alfresco/s/api/node/workspace/" noderef "/content/thumbnails/doclib?c=queueamp;ph=trueamp;lastModified=doclib:1475322106180amp;alf_ticket=" alf_ticket
  

Я надеюсь, это поможет вам.

Комментарии:

1. Мой общий ресурс alfresco по умолчанию не получает миниатюр в режиме просмотра библиотеки. Есть ли какая-либо конфигурация в файле свойств.

2. Это утверждение неверно: «На самом деле невозможно получить держатель для документов с помощью CMIS». CMIS понимает представления, а миниатюра библиотеки документов — это представление с именем «doclib», которое доступно через CMIS.