Muchos reconoceremos que la extensión de archivo TXT es de un archivo de texto, que la extensión DOCX es el formato de los documentos de Microsoft Word o que ZIP es la de un estándar de compresión de archivos.
Pues bien, me es grato empezar aquí una serie de artículos que mostrarán el interior oculto de unas cuantas extensiones, empezando por DOCX.
Por un motivo: porque podremos aprovechar este conocimiento para nuestro trabajo como traductor.
¿Interesado?
Pues empezamos:
Un poco de historia de la extensión DOCX de Microsoft Word
La extensión DOCX lleva con nosotros desde la versión 2007 de Microsoft Word. Desde entonces, las versiones 2010, 2013 y 2016 llegaron para darnos todavía más funciones y más posibilidades en el procesador de textos más usado del mundo.
Como siempre, las versiones nuevas conllevan un problema para las que van quedando obsoletas, y es que, por ejemplo, con Word 2003 no podrás abrir un documento de Word 2016… a menos que te instales un paquete de compatibilidad de Microsoft Office. Si tienes una versión tan antigua de Word como 2000, XP o 2003 harás bien en instalarte este paquete de Microsoft, que además es gratuito.
Dentro de un archivo con extensión DOCX
Vamos a partir de un sencillo documento DOCX, creado con la versión 2010 de Word. Te recomiendo que te lo descargues para poder probar tú mismo lo que vamos a ir viendo en el resto del artículo.
Es un documento DOCX muy sencillo: solo un par de líneas con texto formateado y un par de imágenes insertadas al final:
En Windows Explorer, abre la carpeta donde tienes este archivo de extensión DOCX (descárgatelo si aún no lo has hecho).
Atención, que empieza lo bueno…
Ahora vas a cambiar la extensión DOCX por ZIP (también en Windows Explorer):
Nota: si no puedes ver la extensión .DOCX, deberás cambiar la configuración de Windows Explorer > cinta Vista > botón Opciones > ficha Ver > Configuración avanzada, y desmarcas la casilla Ocultar las extensiones para tipos de archivo conocidos:
¡Maravilla de las maravillas! Ahora puedes abrir el archivo ZIP desde Windows Explorer o desde otra herramienta de compresión.
Al descomprimirlo, verás toda una estructura de directorios:
Ya sabes el secreto: un documento de Word con extensión DOCX no es más que un contenedor de archivos.
Puedes ver que dentro de las carpetas hay archivos con extensión XML.
XML es un estándar que se está volviendo cada vez más popular para guardar contenido, como el de muchas páginas web y, como ves, también del procesador de textos más usado del mundo. Un humano lee muy mal un archivo XML, porque hay multitud de etiquetas para definir estilos, formatos, etc. Un XML no está preparado para mostrar el contenido, solo para guardarlo.
Sin ver exhaustivamente todas las carpetas, sí que vamos a ver algunas de ellas, las que más nos pueden interesar en nuestro trabajo de traductores:
Carpeta docProps para ver la versión de Word
Por ejemplo, en la carpeta docProps existe un archivo interesante, que es el app.xml.
Si lo abres, verás muchas cosas:
Estabas avisado de que era complicado de leer… 🙂
Aquí quiero que te fijes solo en una cosa: en la etiqueta AppVersion, que está al final del XML:
<AppVersion>14.0000</AppVersion>
Esta etiqueta indica la versión de Microsoft Word que creó este documento DOCX. En este caso, puedes ver que es la versión 14 («14.0000»), que se corresponde con Word 2010.
Consulta la siguiente tabla de versiones de Word hasta la fecha:
AppVersion | Versión |
12.0000 | Office 2007 |
14.0000 | Office 2010 |
15.0000 | Office 2013 |
16.0000 | Office 2016 |
En la versión he escrito «Office», en lugar de «Word», porque esta tabla se corresponde también con el resto de aplicaciones de Office: Excel, PowerPoint, Access.
Ya sabes cómo consultar la versión de un documento, ¿verdad?
Esto puede ser útil si tu cliente te envía un DOCX de la versión 2016 que tu herramienta de traducción asistida no puede procesar. Si confirmas la versión consultando el XML de la carpeta que ya sabes, puedes comentárselo al cliente y preguntarle si hay algún inconveniente en convertir el DOCX a la versión de Word que sí puede procesar tu herramienta de traducción asistida, como por ejemplo la 2013.
Carpeta word para ver el contenido del documento
Si en la carpeta word abres document.xml, verás que aquí están los textos del documento. Es decir, aquí se guarda el contenido principal del documento de Word.
Puedes ver también el formato aplicado a las palabras cursiva y negrita.
Nota importante: Las herramientas modernas de traducción asistida, como Trados Studio o memoQ, abren un documento DOCX en su propia interfaz de usuario. Lo que hacen en realidad es convertir la extensión DOCX a ZIP, abrir el ZIP en una carpeta temporal, buscar este document.xml en la carpeta word y extraer el texto y formato mediante un filtro especial. Cuando creas el documento meta, estas herramientas insertan el contenido meta en el mismo XML, crean un ZIP y cambian la extensión ZIP a DOCX para que puedas entregarlo traducido al cliente.
Piénsalo un segundo: Esto quiere decir, que es posible traducir documentos DOCX con estas herramientas sin necesidad de tener Word instalado en tu PC. Tienes la demostración en el vídeo que hay al final del artículo.
Seguimos…
Si te fijas también en el document.xml, las dos imágenes insertadas en el documento de Word, aparecen en este XML de un modo especial:
<v:imagedata o:title="Guardar o no guardar" r:id="rId5"/>
y
<v:imagedata o:title="Robot - Quitar duplicados en Excel" r:id="rId6"/>
Búscalo en el XML; ahí tienes la posición de la imagen, incluso el nombre del archivo de la imagen.
Muy interesante…, pero ¿dónde se guardan las imágenes de verdad?
Carpeta word/media para ver el contenido multimedia del documento
Si abres la carpeta word/media, encontrás las dos imágenes insertadas en el documento de Word:
Como ves, las imágenes están en el formato JPG, PNG… original, lo cual nos da pie para la siguiente sección del artículo: ¿qué harías si tuvieras que traducir las imágenes?
Proceso de traducción de las imágenes
Esta carpeta word/media con todas las imágenes puede serte muy útil si:
- el documento tiene muchas imágenes insertadas;
- y necesitas traducir estas imágenes.
En este caso, te recomiendo que tomes las imágenes desde esta carpeta, ya que este paso es mucho más rápido que copiar cada una desde Word. Te volverías loco si tuvieras que copiar 100 imágenes y luego volverlas a insertar en el DOCX.
El procedimiento completo sería:
- Selecciona las imágenes con texto traducible de esta carpeta word/media.
- Con alguna herramienta de OCR, extrae el texto de estas imágenes a un documento de texto. Es posible que necesites aplicar algún formato (negrita, etc.) a este documento.
- Traduce los textos de las imágenes.
- Con alguna herramienta de edición (como Paint de Microsoft, Gimp o PhotoShop), edita estas imágenes e inserta el texto traducido.
- Sin cambiar el nombre de archivo (image1, image2…), deja las imágenes traducidas en la misma carpeta word/media.
- Crea un ZIP de nuevo y cambia la extensión de ZIP a DOCX:
¡Ya está!
Si ahora abres el documento recién creado de extensión DOCX verás que es igual al original, pero con las imágenes traducidas.
Chulo, ¿verdad?
Nota: si te lo estabas preguntando, uso la herramienta 7-Zip, de la que ya hemos hablado en otros artículos del blog.
Vídeo
En el siguiente vídeo de YouTube tienes una rápida demostración de que:
- un documento de Word DOCX es en realidad un archivo ZIP;
- es posible modificar con un editor de texto el document.xml en la carpeta word, volver a crear un ZIP con la misma estructura de archivos, cambiar la extensión ZIP a DOCX y abrir en Word para confirmar que la modificación está implementada. ¡A pesar de que el contenido se ha editado sin Word!
Enlace al vídeo de YouTube: https://youtu.be/Lpqh1U6qYf4
Anexo: versiones 2007 / 2010 / 2013 / 2016
Es posible que con cada archivo de extensión DOCX, tras cambiarla a ZIP, obtengas una estructura de directorios diferente.
Supongo, y aquí no estoy seguro al cien por cien, que la estructura depende de la versión de DOCX, es decir si es de la versión de Word 2016 o 2007, por ejemplo.
Si la anterior estructura correspondía a un DOCX de la versión 2010, aquí tienes la estructura de directorios de un DOCX de la versión 2016:
Que puedes comprobar que es algo diferente de la estructura de un documento Word 2010.
Conclusiones
En este artículo has podido ver bastantes cosas interesantes sobre los archivos DOCX de Word:
- En realidad, un DOCX es un contenedor de archivos con formato ZIP, el que conoces de toda la vida.
- Este ZIP contiene muchos XML.
- Hemos ubicado el XML con el contenido principal del documento.
- Hemos demostrado que se puede modificar un archivo DOCX sin tener Word instalado.
- También hemos ubicado la carpeta donde se guardan las imágenes.
No nos hemos metido de lleno en el contenido de todo el ZIP, pero tenemos un par de aplicaciones que te pueden ser muy útiles:
- Si necesitas saber la versión de Word.
- Si tienes que traducir las imágenes del DOCX.
Si recuerdas que un archivo de extensión DOCX es en realidad un contenedor ZIP, podrás sacarle provecho la próxima vez que lo necesites.
* * * * *
En próximos artículos veremos otros contenedores camuflados; el más inmediato es el XLSX (para Excel), pero veremos también que las herramientas de traducción asistida también siguen la misma filosofía.
Nada más, solo un par de recomendaciones si te interesan otros artículos de Word:
¿La propiedad "time" indica el tiempo que el archivo ha estado abiert?
Hola, Jenel:
¿Te refieres a «TotalTime?
Es el tiempo en minutos que se ha estado editando el documento DOCX.
También puedes ver este valor si haces clic con el botón derecho del ratón sobre el archivo DOCX dentro de Windows Explorer. Cuando se abra la ventana Propiedades, selecciona la pestaña Detalles, y ahí tienes bastante información que proviene del app.xml, como la plantilla, el número de palabras, de líneas, de párrafos…
Saludos.
... Jesús Prieto ...
Exacto, a eso me refería.
Gracias por tu respuesta. Mi pregunta ahora sería si se ven las horas de forma acumulada o si indica solamente la última edición. Para (los clientes de) traductores sería interesante porque así se ve cuántas horas se ha trabajado en una traducción.
Sí, son las horas acumuladas. Cuando abres un documento DOCX, Word pone en marcha el cronómetro, y actualiza este dato cada vez que guardas el documento. Puedes comprobarlo en Word editando cualquier documento y viendo las propiedades desde Windows Explorer: verás que siempre es un número creciente…
De todas formas, sabiendo que lo quieres para demostrar al cliente que le has dedicado un tiempo a traducir ese documento, te diré que es muy fácil «sabotear» el dato; se me ocurren dos formas:
1.- Simplemente, dejando Word con el documento abierto durante horas, sin hacer nada en absoluto, guardar el documento al final, y ya está: tienes un tiempo adulterado…
2.- También se puede cambiar este dato editando el XML con un editor normal; luego pones el número que te apetece (lo he probado cambiando el «3» a «3000», luego guardas el XML, creas un ZIP con toda la estructura de directorios y cambias la extensión ZIP a DOCX. Me aparecieron 50 horas en las propiedades del archivo DOCX… Si te he liado mucho aquí, no te preocupes, porque tenía pensado añadir un vídeo de YouTube, por si una imagen vale más que mil palabras. No sé si me dará tiempo a hacerlo esta misma noche, pero busca arriba un enlace a YouTube.
No sé… no veo que este sea el camino para demostrar que se ha trabajado un tiempo traduciendo un documento.
Creo que la confianza es básica en la relación con el cliente.
Quizás te he quitado una idea de la cabeza, pero he sido sincero con lo que he escrito.
De todas formas, espero haberte ayudado.
Un saludo.
... Jesús Prieto ...
Y hay alguna forma de hacer los mismo con los archivos .doc?
No, porque un DOC es un archivo binario.
Hola un gusto saludarlo, primero felicitarlo por el gran aporte, lo siguiente estoy haciendo una aplicacion que me une varios documentos word en uno solo, pero quiero que se una sin los salto de linea he buscado varias maneras pero no he encontrado la solucion, lo que se me ocurre es nomas navegar por los elementos XML del archivo pero necesito identificar cual es la etiqueta "ENTER o salto de linea" en XML por favor si me pudiera ayudar, ojo que solo quiero eliminar los saltos de linea y el resto del formato tiene que mantenerse.
Gracias de antemanos, Saludos.
Hola, Nery:
Si puedes unir los documentos, después solo tendrías que reemplazar los saltos de línea.
Por curiosidad: ¿Cuál es el problema?
En cuanto al XML, si abres el archivo XML con el contenido, verás que los saltos no son etiquetas. Crea un pequeño documento en Word, como:
1.ª línea de contenido
2.ª línea de contenido
3.ª línea de contenido
abre el XML con un editor de textos y verás lo que necesitas saber…
¡Suerte!
… Jesús Prieto …
Tengo un problema tengo el word 2016 ya todo bien , al momento de hacer mis documentos cuando los guardo , todo está bien , en mi computadora , pero cuando las envío por correo o por cualquier otro medio la otra persona lo mira como como un archivo zip... Como soluciono esto? Gracias
Excelente info! Gracias!