У меня есть документ 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?
zip
без каких-либо опций, кроме как-r
я получил хороший DOCX. Мой ручной взлом не сработал, но это не по теме. Я хотел бы принять ваш комментарий в качестве ответа.Ответы:
То, как вы звоните,
7z
иzip
немного неправильно. Это приведет к созданию ZIP-архива сnew_document
папкой на корневом уровне. Тем не менее, вы хотите ,new_document
«S содержимое на корневом уровне.Кроме того, я помню, что вы не можете использовать все функции ZIP с Office Open XML и что (некоторые) файлы должны появляться в определенном порядке в архиве. Возьмите это с зерном соли все же.
источник