Pergunta

Ugh. O Word é conhecido por seu HTML inchado, complicado, não compatível com os padrões e não semântico. Infelizmente, tenho um professor que exige que elaboremos um esboço de acordo com padrões muito exigentes. Prefiro não escrever à mão, então decidi fazer algo que seria útil para meus colegas de classe também. Criei o esboço usando uma lista numerada simples no NeoOffice no meu Mac, exportei-o como HTML e escrevi bastante CSS para estilizá-lo. Então, consegui alguém para criar uma lista ordenada no Word para Windows, exportá-la como html e enviá-la para mim para verificar a compatibilidade. Depois de rolar quilômetros para baixo na página, tentando reprimir um arrepio, vi um problema. O Word não usava <ol> e <li>. Ele usava montanhas de códigos genéricos aninhados com classes fora do comum. Odeio ver todo o meu trabalho desperdiçado, mas é impossível trabalhar com esse conteúdo - eu teria que estilizar documento a documento, em vez de usar uma folha de estilo universal.

Idealmente, o Word geraria HTML usando tags padrão para que eu pudesse estilizá-lo como qualquer outra lista, mas não parece ser o caso. Como posso fazer com que ele gere listas que realmente usam <span> e <ul> em vez de <li>, ou pelo menos modificar algo em meu código para funcionar da maneira estranha como cria listas?

Foi útil?

Solução 8

Com base em algumas pesquisas, parece que a abordagem de converter o documento em HTML não é prática.O Word é simplesmente muito variável em sua abordagem de salvar arquivos e geração de HTML para um único documento, sem mencionar as diferenças entre as diferentes versões do Word.Semelhante à sugestão de Wyatt, pode haver maneiras de limpar o código, mas nenhuma delas é perfeita.Explorar a API pode fornecer uma maneira de analisar isso mais facilmente, mas pode ser que isso seja igualmente complicado na prática.Parece que usar o word como uma ferramenta de geração de lista simplesmente não é realista.

Outras dicas

Os caras que escreveram o Winword e sua geração HTML são caras inteligentes. Se fosse fácil usar os recursos HTML de maneira purista, eles o teriam feito.

O Word trata da criação de layouts otimizados para papel. ele suporta conceitos como paradas de tabulação e numeração multinível que HTML não suporta ou está apenas começando. Como resultado, a versão HTML de um documento do Word não é um HTML "legal", mas uma tentativa de manter os recursos do documento do Word com precisão.

Quando o Word reabre um arquivo HTML que ele salvou, ele faz uma engenharia reversa inteligente no documento, de modo que o renderiza no Word parecendo muito com o que começou. Da mesma forma, se você inserir o HTML como um snippet em uma página da web, mantendo o Word CSS, os resultados serão bastante fiéis. Nesse caso, há um conflito de cultura entre o CSS subjacente da página da Web e o CSS do Word, e é necessário algum esforço para tirar o melhor proveito de um trabalho ruim. O Word HTML também não usa UTF-8, o que requer algum manuseio.

HTMLTidy pode ser usado para remover a marcação do Word, mas um pouco mais de massagem é necessária depois disso para uma boa renderização em uma página da web. Há 15 anos trabalho em um produto que faz essa mistura de Word e páginas da web, e os resultados podem ser muito bons se você ajustar o CSS.

Usamos o Word porque estamos criando versões em papel e importando texto de relatórios escritos no Word, não porque não conseguimos encontrar um editor de HTML dedicado.

Eu não recomendaria usar o Word para criar um HTML limpo e organizado. Você não usaria um abridor de latas para abrir uma garrafa de vinho, usaria?

A vida seria muito mais simples se: a) A Microsoft reprojetou uma miríade de opções em seu recurso altamente confuso de 'marcadores e números', b) HTML fornecia suporte nativo e adequado à numeração de vários níveis, em vez das abordagens posteriores disponíveis atualmente. O ponto fraco do HTML nesta área pode ser visto nas opções de numeração frágeis disponíveis no Google Docs.

Tanta coisa melhorou com o HTML 5, talvez possamos esperar que o HTML 6 ajude a diminuir a divisão entre processador de texto e editor de HTML.

Use este recurso http://word2cleanhtml.com/ para converter documentos do Word em HTML limpo.Muito útil, na minha opinião.

Se você conseguir colocar as mãos em um PC com Windows, use o Notepad ++ (http://notepad-plus-plus.org/) para colar o código e selecione o plugin para formatar o código.

Use um editor WYSIWYG como gerador de lista.Isso eliminaria a necessidade dos usuários de lidar com CSS bruto, ao custo de retirá-los da zona de conforto do Microsoft Word.

O uso criativo de Find and Replace do Word também pode funcionar.Por exemplo, abra o arquivo HTML com o Bloco de notas, copie e cole o texto de volta em um documento do Word.Abra Localizar e substituir.Se o HTML for assim (por exemplo), com "Esta é a primeira linha do texto" sendo o primeiro item de linha:

<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>

Em seguida, localize e substitua por Wildcards em \<p*line-height:115%'\ e substitua por nada.Pode levar uma série de Finds / Replaces.A marcação HTML é copiosa, mas todo o resto é igual, pelo menos é consistente.

Se você tiver o dreamweaver à mão, há um botão mágico "limpar HTML de palavras" que faz maravilhas neste cenário.

O MSWord é tão inteligente quanto o autor - uma lista ordenada é convertida como tal em HTML somente se tiver sido criada no MSWord como tal.Isso significa que uma lista deve ser formatada como tal de acordo com as construções do MSWord e não como é exibida na página.Muitas pessoas criarão listas que "parecem" ordenadas ou não ordenadas usando guias e outras formatações, e não usando funções de lista do MSWord.Salvar em HTML tenta salvá-lo como foi escrito, não como foi exibido.

Você pode vincular uma folha de estilo externa a um documento HTML em Trabalho na guia Desenvolvedor -> Modelo de documento -> CSS vinculado.Você pode então usar isso para substituir quase qualquer estilo gerado pelo Word.

Crédito: https://superuser.com/questions/65107/how-to-apply-external-css-stylesheet-to-document-in-microsoft-word/65144#65144

Observação: fiz isso usando o Word 2013, mas não é um recurso novo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top