Стилизация Microsoft-Word-Generated HTML - PullRequest
8 голосов
/ 30 января 2011

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

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

Ответы [ 9 ]

3 голосов
/ 18 июня 2014

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

Word - это создание макетов, оптимизированных для бумаги.он поддерживает такие понятия, как табуляции и многоуровневая нумерация, которые 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.Вы не использовали бы открывашку, чтобы открыть бутылку вина?

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

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

1 голос
/ 22 марта 2012

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

0 голосов
/ 23 сентября 2015

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

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

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

0 голосов
/ 22 марта 2012

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

0 голосов
/ 09 февраля 2011

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

0 голосов
/ 07 февраля 2011

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

0 голосов
/ 07 февраля 2011

Творческое использование Word Find and Replace также может работать.Например, откройте файл HTML с помощью блокнота, скопируйте и вставьте текст обратно в документ 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>

Затем найдите и замените их на Wildcard для \<p*line-height:115%'\ и заменитеничего такого.Это может занять серию находок / замен.HTML-разметка обильна, но при прочих равных условиях она соответствует, по крайней мере.

0 голосов
/ 01 февраля 2011

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

0 голосов
/ 31 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...