Как просмотреть любые файлы в приложении Java? - PullRequest
5 голосов
/ 01 июня 2010

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

В основном это документы Office и PDF.

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

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

Есть идеи?

Ответы [ 3 ]

5 голосов
/ 16 февраля 2011

У меня похожая проблема, и лучшее, что я нашел после нескольких дней поиска в Google, следующее:

Alfresco имеет ту же проблему и решил ее с помощью:

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

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

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

У меня тоже была такая же проблема, и я наткнулся на эту тему. Начиная с решения от Энтони, я использую 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 в режиме сокета: нажмите меня

0 голосов
/ 01 июня 2010

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

...