Como converter Doc/Docx em um único arquivo XML automaticamente?
quando abre a palavra, ela permite-lhe gravar como palavra abrir o formato XML. Eu vi posts sobre abrir o arquivo docx como um zip e, em seguida, extrair coisas de lá. Mas o que eu realmente quero é uma maneira de transformar o docx em um único XML exatamente como ao fazer a ação "save as" no MS Office. O que fazer?
e como fazer isto para o .formato doc ?
Nota: eu gostaria de fazer isto programaticamente. De preferência em condições de desenvolvimento Linux com PHP. Mas se isso não está disponível, então outras línguas servem. Por último, se chegar a isso, posso considerar rodar um servidor do Windows para fazer isso.3 answers
unzip -q -c myfile.docx word/document.xml
Para apanhar o resultado deste comando na variável $ xml de um programa de PHP, pode emitir:
$xml = shell_exec ("unzip -q -c myfile.docx word/document.xml");
Espero que esta resposta ajude nos ficheiros DOCX. Mais vale tarde do que nunca.
Para os ficheiros DOC, isto o método não funciona.
Eric White explica como fazer isto para o docx em C# at transforming-open-xml-documents-to-flat-opc-format
Você também pode fazê-lo usando o docx4j (no qual eu trabalho), sendo o 'j' Java.
No Word: file / save as / Word XML Document (*.xml) dá-lhe o formato XML aberto que deseja, como um único ficheiro XML
Em código usando o Interop: use o método SaveAs do Document object, usando o WdSaveFormat.wdFormatXMLDocument como o formato de gravação. Você também deve usar o documento.Convert method to update the compatibility to the MS Office version installed.
Então, não necessariamente uma demonstração completa, mas isto deve dar-lhe a ideia certa:ActiveDocument.Convert();
WdSaveFormat myNewSaveFormat = WdSaveFormat.wdFormatXMLDocument;
ActiveDocument.SaveAs(newFilePath, myNewSaveFormat); //where newFilePath can be a FileInfo object specifying the new file name and extension (docx)