5

I have learned that .docx files are basically binary files. But I'm unaware of the structure that lies beneath.

What is the essential structure of a .docx file? Like, how long is the header? From what point does the actual document content start? Does it have any signature at the end?

Basically, what's the anatomy of a .docx file?

HoldOffHunger
  • 18,769
  • 10
  • 104
  • 133
DD25
  • 93
  • 1
  • 8
  • Because if I understand this structure I'm gonna have to do coding in c++ regarding the .docx file structure @UmNyobe – DD25 Oct 15 '16 at 08:28

2 Answers2

6

Docx is basically a zip archive with a lot of xml files in it. It is an open format and the documentation is available online. The wikipedia article has a general description and the links you will need.

SingerOfTheFall
  • 29,228
  • 8
  • 68
  • 105
5

I am going to answer this question: "What's the Anatomy of a DocX File?"

Official Answer

Please see the official OOXML article, "Anatomy of OOXML," for an example DocX directory structure :

http://officeopenxml.com/anatomyofOOXML.php

For an example DocX XML document :

http://officeopenxml.com/WPsampleDoc.php

What I Personally Suggest

HOWEVER, after following these meticulously, and guessing where the details got foggy, I was unable to make the .docx file.

I chose this short cut : Make a Docx file in Libre Office (supports .docx extensions), make a generic template in the format of the docx files you expect to be generating, save the file as .docx, copy and save as .zip.

Open this .zip directory, and what you'll see I found to be much better at explaining the spec than the above, official links.

Example

For example, if you're making articles in .docx, you'd have [[Title]] at the top in title-casing/formatting, By: [[Author]], for author, etc., etc.. Then with your code, use that template, and just swap out the [[field]] for whatever $data you're ready to put into it.

HoldOffHunger
  • 18,769
  • 10
  • 104
  • 133