Когда вы нажимаете Ctrl + C блок контента из MS Word, какая у него структура? - PullRequest
1 голос
/ 03 ноября 2011

Мне интересно узнать, в каком формате используются данные, помещенные в буфер обмена.Это потому, что мне нужно разработать своего рода WYSIWYG-редактор, который принимает вставленные данные из MS Word, и я хочу сохранить исходное форматирование, если это возможно.Это включает в себя таблицы и маркеры.Есть ли у Microsoft какая-либо документация по этому вопросу?

Я пишу на PHP, кстати.

Ответы [ 3 ]

2 голосов
/ 03 ноября 2011

Если вы кодируете WYSIWYG-редактор, то это (почти наверняка) будет сделано в Javascript, и вам не придется беспокоиться о том, как отформатированный текст из Microsoft Word представляется до его вставки, потому что вы не будете в любом случае иметь доступ к этому.

Однако вам нужно будет позаботиться о том, как оно будет отображаться в HTML, когда пользователь нажимает кнопку вставки, а браузер запрашивает и обрабатывает это и вставляет результат в элемент ContentEditable / DesignMode как узлы HTML.

В значительной степени то, насколько хорошо он отформатирован в HTML, зависит от того, насколько хорошо он отформатирован в Word. Как мы знаем, в Word легко быть несемантическим, используя раскрывающийся список размера шрифта вместо изменения стилей абзаца, используя маркеры, а не фактические маркированные или нумерованные списки и т. Д. Если вы полагаетесь на маркированные списки, становящиеся Для правильных неупорядоченных списков HTML вам нужно надеяться, что тот, кто добавил их в Word, добавил их с помощью функции списка, иначе вам придется выполнить более сложную обработку, чтобы сделать иначе.

На конечный результат может также влиять то, какой браузер использует пользователь, находится ли он в режиме причуд, и какую версию Word они используют. Кроме того, один и тот же документ, открытый в OpenOffice, будет по-разному вставляться в HTML в браузере. Вам нужно будет использовать универсальный HTML-фильтр и дезинфицирующее средство на стороне сервера.

Кроме того, вы, вероятно, захотите отфильтровать, как минимум, следующее из результирующего HTML (если вы не заинтересованы в сохранении любого пользовательского стиля, добавленного пользователем, независимо от его пригодности для Интернета):

  • Условные комментарии для IE. Иногда они в конечном итоге в HTML
  • Любые встроенные стили, включая атрибут style=, элементы <style> и т. Д.
0 голосов
/ 04 ноября 2011

Будет доступно более десятка форматов.Текст, RTF, HTML и OLE являются основными.Также будут глупые форматы, такие как Bitmap, которые визуализируются на лету с использованием отложенного рендеринга.

0 голосов
/ 03 ноября 2011

Из MSDN> Рабочий стол> Обучение> Справка> Разработка пользовательского интерфейса приложения Windows> Обмен данными> Буфер обмена> Обзоры буфера обмена> Форматы буфера обмена [выделение шахты]:

Многие приложения работают с данными, которые не могут быть преобразованы в стандартный формат буфера обмена без потери информации. Эти приложения могут создавать свои собственные форматы буфера обмена. Буфер обмена Формат, который определяется приложением, называется зарегистрированным формат буфера обмена. Например, если скопировано приложение для обработки текста форматированный текст в буфер обмена, используя стандартный текстовый формат, информация о форматировании будет потеряна. Решение было бы зарегистрируйте новый формат буфера обмена , например Rich Text Format (RTF).

На этой странице гораздо больше подробностей.

...