2011-01-30 5 views
7

Ugh. Слово печально известно своим раздутым, запутанным, нестандартным, не смысловым HTML. К сожалению, у меня есть профессор, который требует от нас составления плана для очень требовательных стандартов. Я бы предпочел не писать его вручную, поэтому решил сделать то, что было бы полезно для моих одноклассников. Я создал схему, используя простой нумерованный список в NeoOffice на моем Mac, экспортировал его как HTML и написал довольно много CSS для его стилизации. Затем мне удалось создать упорядоченный список в Word для Windows, экспортировать его как html и отправить его мне, чтобы проверить совместимость. После прокрутки миль вниз по странице, пытаясь подавить дрожь, я увидел проблему. Word не использовал <ol> и <li>. Он использовал горы вложенных <span> с классами из wazoo. Мне не нравится видеть, что вся моя работа уходит впустую, но с этим контентом работать невозможно - мне нужно было стилизовать документ на основе документа, а не с универсальной таблицей стилей.Стилирование Microsoft Word Word

В идеале Word будет генерировать HTML с использованием стандартных тегов, чтобы я мог стилизовать его так же, как и любой другой список, но это, похоже, не так. Как я могу заставить его генерировать списки, которые на самом деле используют <ul> и <li>, а не <span>, или хотя бы что-то изменить в моем коде, чтобы как-то работать с тем странным способом создания списков?

+0

Связанный: http://stackoverflow.com/questions/4824619/batch-conversion-of-docx-to-clean-html Может также помочь: http://stackoverflow.com/questions/1255738/tinymce-and- import-copy-paste-from-microsoft-word – thirtydot

+0

Мне еще не совсем ясно, что именно вы пытаетесь выполнить. – reisio

+0

Посмотрите на последние строки. Я пояснил. – Walker

ответ

0

Из ряда исследований выясняется, что подход преобразования документа в HTML не является практичным. Word просто слишком переменен в своем подходе к сохранению файлов и генерации HTML для одного документа, не говоря уже о различиях между различными версиями Word. Подобно предложению Уайта, могут быть способы очистки кода, но ни один из них не идеален. Выкапывание API может предоставить возможность более легко разбирать это, но может оказаться, что это на практике так же запутанно. Похоже, что использование слова как инструмента для создания списка просто нереально.

0

Если вы можете получить доступ к ПК с ОС Windows, используйте Notepad ++ (http://notepad-plus-plus.org/), чтобы вставить код, а затем выберите плагин для форматирования кода.

+0

Это плагин, который поставляется вместе с Notepad ++? Я использую Textmate на Mac, поэтому мне интересно, будет ли эквивалент того, что вы предлагаете. Я не уверен, что это затронет проблему искаженной, не смысловой маркировки слова, хотя? – Walker

+0

Я так считаю. Перейдите в меню> TestFX> HTML Tidy> Tidy: Reindent XML. Что касается Word, вы можете просто скопировать все в блокнот, чтобы потерять дополнительный код форматирования, который добавляет Word, а затем вставить его в блокнот ++, где вы можете переформатировать его. Затем я рекомендую вам отметить Notepad ++. – Teknophilia

+1

Я только что узнал о другой альтернативе Notepad ++ для macs. У вас есть TextWrangeler (http://www.barebones.com/products/textwrangler/), gedit (http://projects.gnome.org/gedit/) и Macpad (http://sourceforge.net/projects/macpp /). Macpad говорит свой блокнот ++ для macs, поэтому он также может иметь HTML Tidy. – Teknophilia

0

Используйте редактор WYSIWYG в качестве генератора списка. Это избавит пользователей от необходимости обрабатывать необработанные CSS за счет выведения их из зоны комфорта Microsoft Word.

0

Творческое использование слова «Найти и заменить» также может работать. Например, откройте файл HTML с помощью NotePad, скопируйте и вставьте текст обратно в документ Word. Открыть Найти и заменить. Если HTML выглядит следующим образом (к примеру), с «Это первая строка текста» является первой позиции:

<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span...(Cut due to berevity)... 
-height:115%'>This is the first line of text<o:p></o:p></span></p> 

Затем найдите и замените Wildcards на для \<p*line-height:115%'\ и заменить ничем. Может потребоваться серия Finds/Replaces. Разметка HTML обширна, но все остальное равно, она по крайней мере последовательна.

0

Если у вас есть сноубордист, есть волшебная кнопка «очистить слово HTML», которая делает чудеса в этом сценарии.

0

MSWord так же умен, как и автор - упорядоченный список скрывается как таковой в HTML, только если он был создан в MSWord как таковой. Это означает, что список должен быть отформатирован как таковой в конструкциях MSWord, а не как он отображается на странице. Многие люди создадут списки, которые «появятся», чтобы быть упорядоченными или неупорядоченными, используя вкладки и другое форматирование и не используя функции списка MSWord. Сохранение в HTML пытается сохранить его, как было написано, а не как оно было показано.

1

Используйте этот ресурс http://word2cleanhtml.com/ для преобразования документов Word для очистки HTML. Очень полезно, на мой взгляд.

3

Ребята, которые писали Winword и его HTML-поколение, являются умными парнями.Если бы было легко использовать функции HTML пуристским способом, они бы это сделали.

Слово о создании оптимизированных по бумаге макетов. он поддерживает такие концепции, как табуляции и многоуровневая нумерация, которые HTML не поддерживает или только начинается. В результате HTML-версия документа Word не является «хорошим» HTML, а является попыткой сохранить функции документа Word точно.

Когда Word повторно открывает файл HTML, который он сохранил, он делает некоторую хитроумную обратную разработку в документе, так что в Word выглядит очень похоже на то, как оно начиналось. Точно так же, если вы вставляете HTML как фрагмент в веб-страницу, сохраняя Word CSS, результаты довольно верны. В этом случае происходит столкновение культуры между базовым CSS-страницей веб-страницы и CSS Word, и для достижения наилучшей плохих результатов необходимы некоторые усилия. Word HTML не использует UTF-8, который требует некоторой обработки.

HTMLTidy может использоваться для разрывания разметки Word, но после этого требуется более массирование для хорошего рендеринга на веб-странице. Я работаю над продуктом в течение 15 лет, который делает это смешивание Word и веб-страниц, и результаты могут быть весьма хорошими, если вы точно настраиваете CSS.

Мы использовали Word, потому что мы создаем бумажные версии и импортируем текст из отчетов, написанных в Word, а не потому, что мы не смогли найти выделенный HTML-редактор.

Я бы не рекомендовал использовать Word для создания аккуратного пуриста HTML. Вы бы не использовали консервооткрыватель, чтобы открыть бутылку вина, не так ли?

Жизнь была бы намного проще, если: а) Microsoft модернизированы мириадой вариантов на его весьма запутанных «пули и номер» особенности, б) HTML при условии, родной, и правильно поддержки нумерации признаков, многоуровневой, вместо из доступных в настоящее время подходов. Слабость HTML в этой области можно увидеть в фальшивых параметрах нумерации, доступных в Документах Google.

Так много улучшилось с помощью HTML 5, может быть, мы сможем надеяться, что HTML 6 поможет преодолеть разделение текстового редактора/редактора HTML.

0

Вы можете связать внешнюю таблицу стилей с HTML-документом в разделе Работа на вкладке «Разработчик» -> «Шаблон документа -> Связанный CSS». Затем вы можете использовать это, чтобы переопределить почти любой стиль, сгенерированный Word.

Кредит: https://superuser.com/questions/65107/how-to-apply-external-css-stylesheet-to-document-in-microsoft-word/65144#65144

Примечание: Я сделал это с помощью Слова 2013, но это не новая функция.