Невозможно воссоздать документ Word DOCX после ручной взломки части его содержимого XML

0

У меня есть документ Word DOCX (не уверен, с какой версией Word он был создан). У меня проблемы с печатью на локальный принтер или в PDF. В последнем случае он жалуется на один из шрифтов ( Cambriaкоторый, я думаю, используется для математических уравнений в документе). Поскольку DOCX - это просто ZIP-архив, я решил взломать документ, вручную заменив упоминания шрифта на другое имя шрифта в одном из файлов XML, которые составляют DOCX. Однако, как только я заархивировал папку в новый документ DOCX, она не смогла загрузиться в Word. Сначала я попробовал это 7zipследующим образом:

7z a new_document.docx new_document

где new_documentнаходится папка, содержащая все фрагменты, включающие измененный вручную XML-файл. Я получил MS Office can't open this file because the zip archive file is an unsupported version. Потом я попробовал

zip -r new_document.docx new_document

и получил MS Office can't open this file because some parts are missing or invalid.

Хотя мои изменения были минимальными, возможно, я что-то напутал. Тем не менее, есть ли «правильный» способ сжать папку документов обратно в действительный DOCX?

IZ
источник
IIRC / некоторые файлы должны быть в определенном порядке в архиве ZIP. Также убедитесь, что вы случайно не создаете подпапку в архиве, которая содержит все.
Даниэль Б
@DanielB Ты прав! Я создавал дополнительную папку при архивировании. После того, как я исправил это и использовал zipбез каких-либо опций, кроме как -rя получил хороший DOCX. Мой ручной взлом не сработал, но это не по теме. Я хотел бы принять ваш комментарий в качестве ответа.
IZ

Ответы:

0

То, как вы звоните, 7zи zipнемного неправильно. Это приведет к созданию ZIP-архива с new_documentпапкой на корневом уровне. Тем не менее, вы хотите , new_document«S содержимое на корневом уровне.

Кроме того, я помню, что вы не можете использовать все функции ZIP с Office Open XML и что (некоторые) файлы должны появляться в определенном порядке в архиве. Возьмите это с зерном соли все же.

Даниэль Б
источник