Отображение / рендеринг документа RTF в отображении браузера с использованием текстового поля html или чего-то подобного

В моем веб-приложении есть функция, в которой предварительно отформатированные документы RTF используются в качестве шаблонов, и пользователь может выбрать источник данных, а затем объединить их с шаблонами документов RTF для создания объединенных файлов RTF. В шаблонах RTF есть заполнители, которые заменяются содержимым, выбранным пользователем. Окончательный документ можно сохранить или открыть напрямую, если на компьютере локального пользователя есть Word / Wordpad.

Теперь у меня есть требование отобразить объединенный документ пользователю для подтверждения. Пользователь может либо распечатать, либо сохранить документ в системе напрямую. Отображение не должно быть приложением Word / Wordpad, но должно быть внутри самого приложения, используя текстовое поле или что-то подобное для визуализации документа. Не могли бы вы сообщить мне, возможно ли отобразить документ RTF в текстовой области или нет. Наряду с отображаемым содержимым должны быть параметры для печати и сохранения документа. Если мне нужно преобразовать RTF в Html, а затем отобразить содержимое html в текстовом поле, сообщите мне, как я могу выполнить преобразование, а затем отобразить HTML на странице.


person javauser    schedule 18.02.2012    source источник


Ответы (2)


Это очень сложное требование. Прежде всего, давайте отбросим идею <textarea>, потому что он вообще не поддерживает никакого форматирования. Все редакторы WYSIWYG, которые вы видели, основаны на <iframe>s.

Во-вторых, ни один браузер не может напрямую отображать RTF. Вы можете встроить его как <object>, и некоторые могут его показать (IE, вероятно, будет), но я не могу сказать, какие из них не будут. Портативные устройства почти наверняка этого не сделают. Но вы должны проверить это, возможно, все-таки оно работает достаточно хорошо.

В противном случае преобразование HTML также исключено, потому что RTF имеет очень много функций, которые нельзя эмулировать в HTML. Есть несколько конвертеров (Google), но все они будут иметь серьезные ограничения. Если вам нужна полная поддержка, вам нужно будет сделать свой собственный рендеринг через Canvas или Flash или что-то в этом роде.

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

person Vilx-    schedule 18.02.2012
comment
Привет, спасибо за ответ. Я попробовал программу просмотра документов Google, а также программу просмотра zoho, и они оба каким-то образом удовлетворяют моим требованиям. Но я не могу их использовать, поскольку документы являются частными, и, кроме того, клиент не разрешает доступ в Интернет из своего приложения. Итак, не могли бы вы или кто-нибудь сообщить мне, как я могу написать собственное приложение для просмотра документов в качестве компонента и интегрировать его с моим приложением. - person javauser; 20.02.2012
comment
Как я уже сказал, это очень сложно. Вам придется самому разобрать RTF и как-нибудь его нарисовать. Одна только спецификация RTF составляет 278 страниц. и имеет безумное количество функций. Вы можете потратить годы, пытаясь сделать это в одиночку. Я по-прежнему советую искать существующие компоненты, которые можно интегрировать в свои продукты. Что-то там должно быть. - person Vilx-; 20.02.2012

Используйте тег <PRE> для отображения / рендеринга документа RTF в браузере.

person Nayab    schedule 05.12.2012
comment
Это просто не работает .... Протестировано с помощью ‹pre› ‹? Php echo file_get_contents (dirname (FILE) .DIRECTORY_SEPARATOR.test.rtf); ? ›‹/Pre›, а также протестирован с использованием htmlentities для кодирования RTF в правильный HTML, все, что он делает, это отображает необработанный исходный код RTF. - person Ralph Ritoch; 31.12.2013