Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как автоматически выковыривать все картинки из Open Office? А с ресайзом?  (Прочитано 3398 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bittajam

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
  • Женщина и компьютер совместимы. Доказано.
    • Просмотр профиля
Здравствуйте, мои дорогие.
Вопрос странный, понимаю, но я действительного странного хочу.

Дело в том, что по работе мне присылают десятки вордовских документов (хорошо еще, если doc, хуже, когда docx!), а в этих самых документах может быть помимо текста до пятидесяти фотографий общим размером до 300 мб (они могут и больше, просто пока не попадалось).
Объяснять, что так делать не хорошо, ну или хотя бы, что файлы перед запихиванием в документ желательно пожать, а не просто устанавливать подходящий размер, оставляя файл простыней с разрешением две-тыщи-фиг-знает-сколько на тыщу-до-фига-фтп-канал-широкий, бесполезно. Уже три года пытаюсь донести эту несложную информацию, но нет.

Поэтому хочу я вот что.
Есть ли некий инструмент (кроме моих собственных рук), который может вытаскивать из вордовского файла все картинки, нумеровать их по порядку и складывать в определенную папочку. В идеале, конечно, чтобы он еще и ресайзил их, но это я уже, наверное, совсем размечталась, да?

Я-то, конечно, мечтаю о том, чтобы этому самому инструменту можно было просто показать папку с файлами, уйти пить кофе, а, вернувшись, обнаружить, что все картинки отресайзены и пронумерованы так, как они шли в тексте, и сложены в папки с названием, повторяющим название соответствующего документа, и вся эта радость на фтп залита в соответственную директорию, но я уже предвижу комментарии на этот счет, так что за губозакатывательной машинкой я уже ушла.
Но вот хотя бы кнопка "выковырять все картинки, пронумеровать и сложить в папку такую-то" в природе существует?
Linux. Виски. Сон.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Как автоматически выковыривать все карт&#
« Ответ #1 : 21 Апреля 2010, 18:20:41 »
Если перегнать в odt, то файл можно будет распаковать как архив, и емнип, в одном из каталогов будут все картинки.

Другое дело, что over_300_метров_doc может конвертироваться весьма долго и в процессе немало потреблять.
« Последнее редактирование: 21 Апреля 2010, 18:25:41 от ArcFi »

Оффлайн talifero

  • Участник
  • *
  • Сообщений: 181
    • Просмотр профиля
Re: Как автоматически выковыривать все карт&#
« Ответ #2 : 21 Апреля 2010, 18:24:30 »
Надо скрипт написать
1 doc to odt
2 ресайз 
3 копи в нужную папку
 
2 и 3 частьи имеются могу поделится

Оффлайн gva230

  • Активист
  • *
  • Сообщений: 981
  • GUI-овый линуксоид
    • Просмотр профиля
    • Моя дикая страничка
Можно сохранить документ в виде HTML, что приведёт к созданию документа HTML с картинками в отдельных файлах, которые будут пронумерованы том в порядке, в котором встречаются в документе.
Kubuntu - наше фсё! :Ь

Оффлайн bittajam

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
  • Женщина и компьютер совместимы. Доказано.
    • Просмотр профиля
Другое дело, что over_300_метров_doc может конвертироваться весьма долго и в процессе немало потреблять.
вот в этом вся проблема: такие файлы открывать-то тяжело (ОО иногда не выдерживает и падает, впрочем, даже если и не падает, то тормозит все зверски).
но в целом способ вполне жизнеспособный.
спасибо.

Надо скрипт написать
doc to odt
да, после предложения ArcFi эта мысль родилась.
кабы я еще понимала что в скриптописании, но тут, думаю, гугл поможет.
но с учетом размера иных файлов, тут придется не кофе идти пить, а в спячку на неделю.... но все равно спасибо.

которые будут пронумерованы том в порядке, в котором встречаются в документе.
фигу. имя задается вида "имя файла как есть ._html_m7dd46d83.jpg" и вот это вот m7dd46d83 задается, похоже, рандомно, по крайней мере, никакого соответствия между именами файлов и первоначальным порядком мне усмотреть не удалось.
но все равно спасибо.
Linux. Виски. Сон.

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Цитировать
фигу. имя задается вида "имя файла как есть ._html_m7dd46d83.jpg" и вот это вот m7dd46d83 задается, похоже, рандомно, по крайней мере, никакого соответствия между именами файлов и первоначальным порядком мне усмотреть не удалось.
а порядок критически важен? тем паче, что имея конструкцию вида "имя файла как есть ._html_m7dd46d83.jpg", оную можно запросто превратить в "имя файла как есть .jpg"
по части ресайза - простенький скрипт с участием imagemagick спасет.
лучше на "ты"

Оффлайн bittajam

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
  • Женщина и компьютер совместимы. Доказано.
    • Просмотр профиля
а порядок критически важен? тем паче, что имея конструкцию вида "имя файла как есть ._html_m7dd46d83.jpg", оную можно запросто превратить в "имя файла как есть .jpg"
по части ресайза - простенький скрипт с участием imagemagick спасет.
угу.
потому что мне эти документы надо на сайт вешать, соотвеццно, картинки нужны по порядку, а вручную переименовывать всю эту радость, сверяясь с оригиналом, я убьюсь...
документов-то этих невероятное количество.
по части ресайза, да, батчеров и скриптов на эту тему в сети очень много, тут все просто.
закавыка именно в автоматизированном процессе выкорячивания картинок из документов и правильном их наименовании (меня 01, 02, 03, 0n) устроит более чем.
пробовала найти какой-нибудь такой плагин для ОО, но пока безрезультатно, хотя мне кажется, что он должен быть: задача-то не такая уж редкая, думаю, не только мое начальство считает, что документы веб-редактору можно присылать как угодно, оно там само потом как-нибудь разберется.
Linux. Виски. Сон.

Оффлайн gva230

  • Активист
  • *
  • Сообщений: 981
  • GUI-овый линуксоид
    • Просмотр профиля
    • Моя дикая страничка
а порядок критически важен? тем паче, что имея конструкцию вида "имя файла как есть ._html_m7dd46d83.jpg", оную можно запросто превратить в "имя файла как есть .jpg"
по части ресайза - простенький скрипт с участием imagemagick спасет.
угу.
потому что мне эти документы надо на сайт вешать, соотвеццно, картинки нужны по порядку, а вручную переименовывать всю эту радость, сверяясь с оригиналом, я убьюсь...
документов-то этих невероятное количество.
по части ресайза, да, батчеров и скриптов на эту тему в сети очень много, тут все просто.
закавыка именно в автоматизированном процессе выкорячивания картинок из документов и правильном их наименовании (меня 01, 02, 03, 0n) устроит более чем.
пробовала найти какой-нибудь такой плагин для ОО, но пока безрезультатно, хотя мне кажется, что он должен быть: задача-то не такая уж редкая, думаю, не только мое начальство считает, что документы веб-редактору можно присылать как угодно, оно там само потом как-нибудь разберется.

В таком случае, как советовалось выше, нужно сохранять документы в odt, а сам odt распаковывать архиватором, поскольку это обычный zip. И там, в папке Pictures будут лежать все картинки, надеюсь в правильном прядке. :)
Kubuntu - наше фсё! :Ь

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
как я понимаю, от "имя_файла_как_есть" толку мало, ибо это что-нибудь типа "какая-то херня.jpg", так?
интересно вот что: если при конвертации (в чтмл или еще во что) документ читается как надо (т.е. последовательно от начала к концу), то по идее картинки сохраняются одна за другой опять же последовательно. то есть их можно отсортировать по дате создания и... дальше, думаю, мысль ясна. если так и есть, то нам повезло. однако, фишка в том, что время создания файла исчисляется с точностью до секунды (если я не прав, буду рад), так что если за эту секунду было сохранено 20 штук картинок - тут уж черт голову сломит.
впрочем, придумал вариант гораздо лучше. расковыряв первый попавшийся odt выяснил я: его спокойно открывает xarchiver как архив, и его же не менее спокойно распаковывает krusader через меню "распаковать". еще осталость выяснить, как проделать сие из консоли, и будет вообще хорошо. но суть не в том. есть там файлик content.xml, собственно и отвечающий за все это безобразие. вид имеет вполне читабельный, т.е. найти искомое с помощью grep - не проблема. ну и за дело берется скрипт, который
1. ищет все тэги, ссылающиеся на картинки
2. выковыривает из них пути к этим самым картинкам (или имена хотя бы)
3. получив пути к нужным файлам, копирует их куда надо, по дороге пропустив через imagemagick и переозывалку
как я понял, картинки должны валяться в где-то-там/images/bitmaps , прикол в том, что ни одного документа с картинками под рукой нет. посему требуется какой-нибудь простенький файлик с тремя строчками текста и тремя картинками между ними - сможешь выложить какой-нибудь урезанный вариант?
ЗЫ. а почему docx плох? помнится, в винде оный я открывал как архив и в опере читал xml (пока не нашел нужного плугина к тоталцмд) - напрашивается аналогичный способ

Пользователь решил продолжить мысль 21 Апреля 2010, 19:49:11:
Цитировать
В таком случае, как советовалось выше, нужно сохранять документы в odt, а сам odt распаковывать архиватором, поскольку это обычный zip
действительно, обычный зип. за наводку спасибо! распаковывается, как выяснилось, не менее обычно:
unzip /path/doc.odt -d /path/dir/
« Последнее редактирование: 21 Апреля 2010, 19:49:11 от dimas000 »
лучше на "ты"

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Как автоматически выковыривать все карт&#
« Ответ #9 : 21 Апреля 2010, 19:51:40 »
Возможно, для восстановления порядка следования изображений придётся пробежаться скриптом по отконвертированному файлу, будь то *.html или */content.xml (в случае odt), о чём выше написал dimas000.

Также стоит оценить влияние конвертирования на качество изображений.

Оффлайн gva230

  • Активист
  • *
  • Сообщений: 981
  • GUI-овый линуксоид
    • Просмотр профиля
    • Моя дикая страничка
Цитировать
В таком случае, как советовалось выше, нужно сохранять документы в odt, а сам odt распаковывать архиватором, поскольку это обычный zip
действительно, обычный зип. за наводку спасибо! распаковывается, как выяснилось, не менее обычно:
unzip /path/doc.odt -d /path/dir/
Кстати, doсx - тоже обычный зип и в тотал командере без всяких плагинов по [Ctrl]+[Page Down] открывается. :)
Kubuntu - наше фсё! :Ь

Оффлайн dimas000

  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
(Нажмите, чтобы показать/скрыть)
лучше на "ты"

Оффлайн MA3X

  • Активист
  • *
  • Сообщений: 649
    • Просмотр профиля
Хе. Основная подвижка есть!

Только что для пробы запихал в вордовский документ пару картинок.
А потом натравил на него foremost, поставленный из реп, просто

foremost -t jpg,png,gif -i Doc1.doc

 - и получил в диру output вложенные картинки.
Естессно, малость измененные - у жпегов поменялся размер, а тифф ворд почему-то сохранил в себе как пнг. Но идея работает.
И метод извлечения (основное назначение foremost'a, в общем-то, спасение данных после креша ФС) кагбэ намекает, что мсворд - это и есть креш и погибель для данных... ;)

Да, а утилита antiword  позволяет выдрать из тех же .doc текст. Немного bash-магии, и получатся картинки и текст раздельно, по подкаталогам имени документа.
 


« Последнее редактирование: 22 Апреля 2010, 11:19:55 от MA3X »
Microsoft isn't the answer.
Microsoft is the question, and the answer is NO.

Оффлайн bittajam

  • Автор темы
  • Активист
  • *
  • Сообщений: 272
  • Женщина и компьютер совместимы. Доказано.
    • Просмотр профиля
Хе. Основная подвижка есть!

браво!  :D
порядок опять совершенно произвольный (равно как и совершенно необъяснимая логика наименования картинок), но с этим мне, похоже, придется смириться!
в любом случае, это куда быстрее и удобнее, чем открывать каждый файл и пересохранять, плодя ненужные копии  и без того немаленьких файлов.

для писавших выше: пробовала полученные разным способом картинки упорядочивать и по дате, и по имени, логика порядка совершенно неясна, но что уж поделать.... возможно, картинки в документ изначально добавляются не в нужном порядке, а рандомно, может, еще что.

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

в любом случае, огромное спасибо всем откликнувшимся: для меня темка стала полезной и поучительной, за что вам всем объявляю благодарность с занесением ;)

PS
тему закрывать не буду: вдруг будут еще какие интересные решения, мало ли!
Linux. Виски. Сон.

Оффлайн xrayman

  • Участник
  • *
  • Сообщений: 153
  • Ubuntu 10.04
    • Просмотр профиля
В ООо есть такая вещь: Файл - Мастер - Конвертер документов. Он берет все документы из указанной папки, в частности *.doc и конвертит в *.odt. Потом из *.odt берется файл content.xml и из него вытягиваются строки типа:
<draw:image xlink:href="Pictures/100000000000024E00000230545073BB.jpg" xlink:type="simple"
и сохраняются картинки. Для автоматического ресайза хз, есть какие-то пакетные обработчики картинок, надо поискать.

 

Страница сгенерирована за 0.04 секунд. Запросов: 24.