Вопрос: Как просмотреть любые файлы внутри приложения Java?


Я использую JTree для просмотра содержимого папки, и я хочу, чтобы при щелчке пользователем файла, программное обеспечение показывает его предварительный просмотр (скриншот его первой страницы).

Файлы в основном представляют собой документы Office и PDF.

Мне удается сделать это для файла PDF, используя модуль, загруженный с Sun, но я хотел бы знать, есть ли способ сделать это, используя любое программное обеспечение (желательно JAR) или даже встроенный Windows API.

Я думал о преобразовании файла в PDF, а затем просмотрел этот PDF-файл, но это не оптимально.

Есть идеи ?


5


источник


Ответы:


У меня есть аналогичная проблема, и лучшее, что я нашел после нескольких дней работы в Интернете, - это следовать.

под открытым небом  имеет ту же проблему и разрешает ее:

  • Открытый офис, который работает в режиме сервера (сокет) и всех офисных документах, отправляется alfresco для открытия офиса, чтобы преобразовать их в PDF
  • Эти PDF-файлы преобразуются в .swf-просмотрщик благодаря SWFTOOLS
  • Этот .swf интегрирован в HTML
  • Для изображений используется ImageMagick  для создания небольшой версии файла, я полагаю

Personnaly, я постараюсь реализовать его так:

  • Преобразование офисных документов в PDF благодаря открытому офису в режиме сокета
  • Преобразование первой страницы PDF в PNG благодаря JPedal  библиотека (версия LGPL)
  • Скажите, что PNG для конечного пользователя
  • Для изображений я бы, возможно, использовал ImageMagick тоже ... но сейчас я использую шов   Image.scaleToFit  API

5



У меня была такая же проблема и наткнулся на эту тему. Начиная с решения от Anthony, я использую Libre Office в режиме сокета для преобразования офисных документов непосредственно в PNG. К сожалению, это невозможно сделать из PDF. Вот  является хорошим обзором возможных путей.

unoconv --connection 'socket,host=127.0.0.1,port=2220,tcpNoDelay=1;urp;StarOffice.ComponentContext' -f png -e PageRange=1 your_file_name.extension

Небольшая ссылка на запуск Libre Office в режиме сокета: нажми на меня


1



Я спросил об этом давным-давно: решение


0