Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

14 Август 2022, 18:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Изменение содержимого файла .odt  (Прочитано 13514 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sergen
Участник
**
Offline Offline

Сообщений: 9


« Стартовое сообщение: 28 Март 2013, 22:35 »

Система Убунту 12.04
Имеется файл созданный в LibreOfficeWriter 3.5.7.2. с расширением odt. В файле находятся изображения и текст. Хочу заменить картинки внутри файла не прибегая к помощи самого LibreOfficeWriter (т.е. написав спец программу). Знаю что файл ОДФ является ЗИП архивом. Разобрался в каких файлах лежат нужные мне данные. Но вот незадача - изменение хоть одной буквы моих данных приводит к поломке архива без возможности восстановления работоспособности. Может есть какие-то тонкости по обратному запаковыванию архива (типа контрольной суммы или еще чего...). Кроме того растровые изображения в архиве имеют длинные имена из цифр, не понятно как они генерируются.
Записан
greenman
Форумчанин
***
Offline Offline

Сообщений: 260


« Ответ #1: 28 Март 2013, 23:08 »

Дело не в zip-e, дело в manifest-e.

So if you were to unzip the odt file and rename the image to test.png you need to rename the image in the content.xml and the META-INF\manifest.xml file.
« Последнее редактирование: 28 Март 2013, 23:12 от greenman » Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 610


WWW
« Ответ #2: 29 Март 2013, 06:41 »

Ещё важен регистр букв в именах файлов.
Записан
sergen
Участник
**
Offline Offline

Сообщений: 9


« Ответ #3: 29 Март 2013, 08:44 »

То что при изменении имени изображения необходимо изменить и ссылки на него я знаю. Но всё равно не получается. Проводил несколько опытов:
1) распаковывал файл, сразу запаковывал обратно - работает
2) изменял название изображения, менял соответственно имя в манифесте и др  файлах, запаковывал - не работает
3) редактировал размер изображения в GIMPе, имя оставалось то же - не работает
4) добавлял одну букву в текстовой части документа - не работает
5) создавал не встроенное изображение , а со ссылкой на него, потом менял ссылку в архиве на другое изображение  - не работает

В чем косяк?

Встречал на просторах интернета человека с такой же проблемой, единственное что ему предложили - сохранять файл в версии 1.0. Как это делать то же не понятно.
« Последнее редактирование: 29 Март 2013, 08:52 от sergen » Записан
greenman
Форумчанин
***
Offline Offline

Сообщений: 260


« Ответ #4: 29 Март 2013, 09:11 »

Какой программой создаётся zip?

Можете выложить сюда пример "поломанного" файла.
« Последнее редактирование: 29 Март 2013, 09:14 от greenman » Записан
sergen
Участник
**
Offline Offline

Сообщений: 9


« Ответ #5: 29 Март 2013, 09:22 »

Встроенный архиватор Убунты -  File-roller ArchiveManager. С дополнением под названием 7zip.
Записан
greenman
Форумчанин
***
Offline Offline

Сообщений: 260


« Ответ #6: 29 Март 2013, 09:33 »

Попробуйте в консоли
Код:
$ zip -r test3 *
у меня созданный таким образом файл (с измененным именем Pictures/xxxx.jpg) после переименования zip -> odt открывается writer-ом.



[вложение удалено Администратором]
« Последнее редактирование: 29 Март 2013, 09:37 от greenman » Записан
sergen
Участник
**
Offline Offline

Сообщений: 9


« Ответ #7: 29 Март 2013, 09:54 »

Ваш файл работает.

У меня этим же способом не получается. Пробовал и имя изображения менять и одну букву.

В указанном коде под  "test3" я понимаю имя папки которую собираемся архивировать. Что значит "звездочка" - не знаю.
Записан
greenman
Форумчанин
***
Offline Offline

Сообщений: 260


« Ответ #8: 29 Март 2013, 10:01 »

Не надо архивировать папку.

Надо, находясь среди файлов
Код:
$ ls
Configurations2  content.xml  manifest.rdf  META-INF  meta.xml  mimetype  Pictures  settings.xml  styles.xml  Thumbnails
выполнить команду, приведенную выше. "*" - означает все файлы.

test3 - имя создаваемого архива (test3.zip)
Записан
sergen
Участник
**
Offline Offline

Сообщений: 9


« Ответ #9: 29 Март 2013, 10:17 »

Тьфу ты .............. Рот на замке
Пипец просто.
Я все время архивировал папку.

При изменениях в архиве ошибка появляется, но по крайней мере файл теперь восстанавливается и открывается.
Сейчас буду сравнивать архивы искать что же он восстанавливает.


1) замена картинки прошла успешно
2) изменение размера картинки - успешно
3) изменение названия картинки - успешно
Ошибок не отображалось!!

Инструкция :
при изменении имени изображения необходимо изменить имя и в соответствующих файлах (content.xml , META-INF/manifest.xml), соблюдать регистр букв в именах файлов и в ссылках на них, архивировать файлы, а не папку с фалами. При добавлении изображений - добавлять их и в файлы content.xml , META-INF/manifest.xml
« Последнее редактирование: 29 Март 2013, 10:32 от sergen » Записан
volkman
Участник
**
Offline Offline

Сообщений: 20


« Ответ #10: 30 Март 2013, 22:42 »

Я работаю с архивом, правда, под виндой. Первое и главное - не распаковывать архив. Его надо просто "открыть" не выходя из программы архивации ( у меня - 7z). Далее открытые файлы внутри обнаруженных директорий можно мучить как угодно.  Картинки я не менял, но текстовую составляющую - спокойно, обычно внешним редактором, чаще notepad++. Далее просто закрываем все по очереди и проги спрашивают, сохранить ли результат. Спросит и архиватор ( у меня - 7z). И все. Суть, видимо, в том, что мучая архив, не выходя из архиватора, мы не меняем настройки архивации, примененные в данной версии libre, вне зависимости, какие они и меняются ли от версии к версии.
Записан
ape
Форумчанин
***
Offline Offline

Сообщений: 2 468


« Ответ #11: 31 Март 2013, 06:56 »

Или в том, что время создания архива\файла отличаeтся от того, что написано в meta.xml
Записан
volkman
Участник
**
Offline Offline

Сообщений: 20


« Ответ #12: 31 Март 2013, 15:27 »

А вообще для смены картинок я обычно пользуюсь расширением change picture http://aoo-extensions.sourceforge.net/en/project/ChangePicture
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!