Pull to refresh

Comments 6

По хабражизни я молчун, но тут не выдержал: огромное человеческое «спасибо» вам за этот гем!
У меня как раз задача в pet project появилась — парсить pptx и xlsx. А тут такой подарок :)

Offtopic: почему, когда меняли аккаунты на Read&Comment, не показали плашку с текстом «Писать комменты на хабре трудно! Задумайтесь, а надо ли оно вам?». Или только я такой замороченный, что проверяю 15 раз написанное :D

Судя по упавшему качеству комментов — только вы. С другой стороны, у таких комментаторов карма сливается довольно быстро, и, думаю, хабрамир скоро вернется к равновесию.

Не подскажете, как лучше изменять ряд свойств по всему документу? Мне часто нужно редактировать чужие презентации для использования в онлайн курсах, обычно путь такой:
1. Редактирование в MS Office 2007/2010: поправить якоря картинок, заменить отбивку табуляцией или пробелами на нормальную, убрать ручные переносы, заменить «ручные» нумерованные списки на нормальные, поправить цвета на менее вырвиглазные, а шрифты на стандартные и т.д.
2. Редактирование в ОпенОфис: сжатие презентации, конвертация в flash (для показа) и в pdf/png для скачивания

Что хотел бы автоматизировать, но лень учить бейсик для макросов:
1. Убрать по всему эффект «тень» для текста во всём документе. Без макросов эффект в тексте на элементах, полученных через вставка -> надпись, меняется только вручную.
2. Поменять шрифт и выравнивание для определённых элементов, например, для заголовков
3. Поменять цвет шрифта, если цвет фона такой-то (например, светло-серый на голубом фоне сменить на светло-желтый)
4. Проверить границы, не выходят ли они за границу слайда, убрать висящие строки.

Можете подсказать, как это грамотнее сделать? Так, чтобы xml развернулся, а потом обратно свернулся, но уже красивым и правильным :)
На данный момент посоветовать ничего, кроме макросов не можем.
Но в ближайшее время (пару месяцев) у наших разработчиков в планах релиз утилиты, под кодовым названием 'doc-builder', которая позволит интерпретировать любой docx и xlsx файл в скрипт на языке программирования, основанном на JavaScript, произвести в нем любые правки, нужные вам, и обратно забилдить полученный скрипт в docx\xlsx файл.

Извините, а есть подобное описание структуры архива, но для PPTX (PowerPoint)? Стоит задача вытащить с каждого слайда текст и картинки, для перевода во внутренний редактор программы.
Спасибо!

Как такого описания структуры нет, но если вы пользуетесь IDE (той же RubyMine) можно просто свободно потыкать в дебаггере по дереву структуры. Или же посмотреть в папке spec/pptx_examples тесты и по ним понять.
Конкретно в вашем случае для выдирания текста код будет примерно такой — просто each-ами перебираем все что есть в презентации:


pptx = OoxmlParser::PptxParser.parse_pptx(file_to_parse)
text_array = []
pptx.slides.each do |current_slide|
  current_slide.elements.each do |current_element|
    current_element.text_body.paragraphs.each do |cur_paragraph|
      cur_paragraph.runs.each do |current_run|
        text_array << current_run.text
      end
    end
  end
end

Для картинок будет примерно аналогично, свяжитесь со мной в ПМ если не разберетесь.

Sign up to leave a comment.