Какова структура файлов .docx и .doc?

#docx

#docx

Вопрос:

Я узнал, что файлы .docx в основном являются двоичными файлами. Но я не знаю о структуре, которая лежит ниже.

Какова основная структура файла .docx? Например, какой длины заголовок? С какого момента начинается фактическое содержимое документа? Есть ли у него какая-либо подпись в конце?

В принципе, какова анатомия файла .docx?

Комментарии:

1. Потому что, если я понимаю эту структуру, мне придется писать код на c в отношении структуры файла .docx @UmNyobe

Ответ №1:

Docx — это, по сути, zip-архив с большим количеством XML-файлов. Это открытый формат, и документация доступна в Интернете. В статье Википедии есть общее описание и ссылки, которые вам понадобятся.

Ответ №2:

Я собираюсь ответить на этот вопрос: «Какова анатомия файла DocX?»

Официальный ответ

Пожалуйста, ознакомьтесь с официальной статьей OOXML «Анатомия OOXML» для примера структуры каталогов DocX :

http://officeopenxml.com/anatomyofOOXML.php

Для примера документа DocX XML :

http://officeopenxml.com/WPsampleDoc.php

Что я лично предлагаю

ОДНАКО, тщательно следуя этим инструкциям и догадываясь, где детали стали туманными, я не смог создать .docx файл.

Я выбрал этот короткий путь: создайте Docx файл в Libre Office (поддерживает .docx расширения), создайте общий шаблон в формате файлов docx, которые вы ожидаете создать, сохраните файл как .docx, скопируйте и сохраните как .zip.

Откройте этот каталог .zip, и то, что вы увидите, я обнаружил, что он намного лучше объясняет спецификацию, чем приведенные выше официальные ссылки.

Пример

Например, если вы создаете статьи в .docx, [[Title]] вверху в заголовке / форматировании должно быть указано, By: [[Author]] , для автора и т. Д. И т. Д.. Затем с помощью вашего кода используйте этот шаблон и просто замените [[field]] его на то, что $data вы готовы в него вставить.