Предпочтительный способ передачи содержимого Word-Document в панель редактора java - PullRequest
2 голосов
/ 02 марта 2012

В последнее время появилось новое требование: извлекать контент из текстового документа и отображать / редактировать этот контент в нашем приложении с помощью некоторой панели редактирования.

Поэтому я свободен в выборе рабочего процесса.На первый взгляд мне в голову пришли две идеи:

  1. Использование буфера обмена для получения содержимого документа Word с помощью копирования / вставки в моей панели редактирования.
  2. Анализ документа Word в моем приложениии вставьте его в панель редактора.

Итак, я начал с (1), так как это было легко и быстро протестировать, что, к тому же, могло бы работать даже с различными программами (не специфичными для слов), и я ужеОбнадеживающие результаты стали, когда я скопировал содержимое в панель HTML.Форматы, такие как жирный шрифт и т. Д., Были сохранены, подписи там, где показаны, и даже изображения были отображены.

К сожалению, просто отображение содержимого недостаточно.Мне нужно иметь возможность редактировать и сохранять изменения в моем приложении.И вот тут все усложняется.При копировании / вставке их в мое окно редактора используется множество ненужных специфических для слова тегов (например, знаменитый o-тег), которые бесполезны при отображении их в формате HTML или даже иногда имеют нежелательные побочные эффекты.Но так как мне не нужно передавать данные обратно в Word, мне вообще не нужны эти теги.

Более того, изображения просто временно создаются в какой-то временной папке и теряются, как только я копирую, вставляю другой документили перезагрузите систему.Поэтому я подумал, что кодирование этих изображений в base64 может быть решением, поскольку мне не нужно обрабатывать какую-то файловую систему, и я смогу сохранить эти изображения в виде html-строки в нашей базе данных.

Благодаря В этой записи я смог отобразить изображения в кодировке base64 на панели редактора, но, к сожалению, я не знаю, как преобразовать теги изображений «на лету» в изображения в кодировке base64.Я думал о каком-то слушателе буфера обмена, но я не уверен, что это правильный путь.Я также проверил, какое слово «разновидности данных» предлагает в буфере обмена.RTF выглядел многообещающе жестко, поскольку там картинки, кажется, уже закодированы как base64, но я не уверен, смогу ли я повлиять на поведение панели редактирования, сообщив ей, какой тип данных использовать.

Итак, вкратце, мой вопрос таков: как бы вы получили содержимое текстового документа (с изображениями) и сохранили его (например, в виде строки html) в серверной части базы данных в вашем приложении?

Мне любопытно, если у кого-то из вас уже были одинаковые цели или какие-либо идеи о том, как включить такую ​​функцию в наше приложение, есть какие-либо рекомендации или, по крайней мере, это может направить меня в правильном направлении для достижения этой цели.Спасибо вам заранее за то, что нашли время ответить на этот вопрос, и, надеюсь, у вас, ребята, есть идеи!

1 Ответ

2 голосов
/ 02 марта 2012

Чтобы получить все необходимое из документа Word, вам, вероятно, придется обрабатывать документ Word внутри приложения.

Apache имеет API для документов Microsoft - http://poi.apache.org/

...