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 под Windows также работает корректно (архивы создаваемые им открываются в Word).

Согласен, меня этот факт очень позабавил — перепаковывал получавшийся архив 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.