Pergunta

Como salvar um documento do Word 2003 para XML e os resultados, em seguida, de volta em um tamanho de arquivo reduzido, e provavelmente mais que eu não sei sobre. A diff na WordML do novo documento contra as diferenças mostra antigos apenas na revisão de salvar ID. Então, o que está se perdendo no ida e volta ?

Se nada for realmente se perder, então como se explicaria os poucos milhares de bytes fora do tamanho do arquivo?

Foi útil?

Solução

Tanto quanto eu sei Word armazena algumas informações, além de texto e formatação nos arquivos DOC, para obter informações exemplo usuário, algumas coisas sobre o histórico do documento, etc. Esta informação se acumula ao usar "Arquivo> Salvar". Suponho que salvar como XML e re-salvar como DOC retira essa informação.

Se bem me lembro, tão simples "Salvar como" reduz o tamanho do arquivo já e eu acho que costumava haver algum item de menu que lhe permitiu salvar uma versão do arquivo DOC que foi significativamente menor em tamanho do que o "File> save" versão.

Outras dicas

A seguir é apenas um palpite.

arquivo .doc é realmente OLE armazenamento estruturado arquivo composto . O último é uma maneira de embalar múltiplos fluxos em um único documento de uma forma definida pelo bem, e a estrutura é realmente muito perto de um sistema de arquivos-in-a-arquivo - por exemplo, tem "setores", e tabela de alocação de setor . Tal abordagem torna possível arquivo de documento edição no local sem reescrever completamente.

No entanto, esta abordagem de armazenamento resulta em alguma redundância, como setores não utilizados. Quando você ida e volta o arquivo, você efetivamente recriá-lo a partir do zero e, assim, quaisquer artefactos de armazenamento redundantes são eliminadas.

Se você olhar para um documento do Word (.doc) em um editor hexadecimal, você vai ver que há muitos, muitos blocos de zeros redundantes. Grande formato, doc!

De qualquer forma, economizando para XML e depois voltar para doc pode se livrar de algumas dessas milhares de zeros bytes.

Se você for realmente curioso apenas abrir os dois arquivos em um editor hexadecimal e executar um algoritmo de diferença, você pode tentar Hex Workshop e Hex Editor Neo.

As minhas experiências com algumas grandes Word 2003 documentos mostra que salvar como XML, em seguida, salvando que, como .doc, de fato resulta em um arquivo ligeiramente, embora não significativamente, menor. Como salienta, os atributos rsidR são diferentes, mas que não leva em conta a redução de tamanho desde os novos rsidRs são tipicamente do mesmo tamanho.

Como Danra aponta, arquivos .doc têm tiragens de bytes idênticos. Mas o arquivo menor salvo como .doc também tem essas corridas, então eu acredito que este é um artefato do formato .doc binário e não dados de transporte de informação. I eyeballed alguns dos arquivos .doc tropeçou-redondas e podia ver nenhuma diferença na aparência em tudo, apoiando a ideia de que as diferenças não são informações de transporte.

Examinando os arquivos XML criados depois mostra-tropeçar redondos a principal diferença é várias rPr (propriedades de execução) sem conteúdo são removidos após a conversão para XML. Parece salvar como XML remove estilos de caracteres não utilizados e propriedades.

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