Pull to refresh

Comments 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 и все начинало работать :)
А на разницу в правах доступа к файлам и каталогам в архиве созданных в Linux и Windows не обращали внимание?

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

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

Решал немного похожую задачу, делал простой шаблонизатор под линкус: шаблонизатор для odf файлов, и там я использовал стандартный питоновский zipfile для зиппования.
> запакованные 7z под Linux не открываются в Microsoft Office
на кодировку имен/путей в архиве не смотрели?
Изучать формат OpenXml гораздо проще с помощью «Open XML SDK Productivity Tool».
Вот тут немного написано про это и еще про то, как можно генерировать документы.
UFO just landed and posted this here
А в итоге то что? Вы поэкспериментировали и все, или будете создавать полноценный механизм для создания и редактирования файлов docx?

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

Sign up to leave a comment.