Как стать автором
Обновить

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

Есть вероятность, что невозможность открыть документ запакованный 7z связана с использованием алгоритма deflate64 вместо deflate.

Пробовал:


7z a -mm=Deflate -tzip 11.docx *
7z a -mm=Copy -tzip 11.docx *

Выдаёт ошибку:
Error

Под Windows проблема однозначно решается использованием класса ZipPackage из .net framework
https://msdn.microsoft.com/ru-ru/library/system.io.packaging.zippackage(v=vs.110).aspx
Там даже автоматически формируется ContentTypes. Сам столкнулся, когда нужно было писать xps файлы. Изначально пробовал использовать класс ZipFile и получавшиеся файлы не открывались стандартным средством просмотра. К сожалению не копал сильно глубоко после того как обнаружил, что ZipFile использует deflate64 в отличии от ZipPackage, который как раз является родным для xps, docx, xlsx… Может стоить копнуть исходники этого класса, чтобы понять разницу.

7z под Windows также работает корректно (архивы создаваемые им открываются в Word).

Согласен, меня этот факт очень позабавил — перепаковывал получавшийся архив 7z и все начинало работать :)
А на разницу в правах доступа к файлам и каталогам в архиве созданных в Linux и Windows не обращали внимание?

Пробовал проставлять 777 на каталоги и файлы перед архивацией — не помогло.

> запакованные 7z под Linux не открываются в Microsoft Office

Решал немного похожую задачу, делал простой шаблонизатор под линкус: шаблонизатор для odf файлов, и там я использовал стандартный питоновский zipfile для зиппования.
> запакованные 7z под Linux не открываются в Microsoft Office
на кодировку имен/путей в архиве не смотрели?

Пробовал согласно вот этому мануалу:


7z a -mm=Deflate -mcu=on -tzip 11.docx *
Изучать формат OpenXml гораздо проще с помощью «Open XML SDK Productivity Tool».
Вот тут немного написано про это и еще про то, как можно генерировать документы.
НЛО прилетело и опубликовало эту надпись здесь
А в итоге то что? Вы поэкспериментировали и все, или будете создавать полноценный механизм для создания и редактирования файлов docx?

Работаю над API для создания xlsx файлов.

Пишу из будущего: как успехи?

Зарегистрируйтесь на Хабре , чтобы оставить комментарий