среда, 30 марта 2016 г.

Пакетная конвертация документов из форматов MS Office в форматы Open Document

Если Вам вдруг потребовалось преобразовать большое количество документов из формата MS Office в формат Open Document (odt, ods, odp и так далее), который является родным для LibreOffice, и Вы думаете, что для этого придется либо по одному пересохранять документы из одного формата в другой, используя LibreOffice, либо использовать сторонние программы, то Вы ошибаетесь.
В LibreOffice встроен удобный инструмент для пакетного преобразования файлов из форматов MS Office в формат Open Document.
Всё максимально просто, сделайте следующее:
Запустите LibreOffice и выберите пункт меню Файл > Мастер > Конвертер документов. Откроется окно мастера, первый экран которого выглядит так:
Порадовал троллинг разработчиков LibreOffice. Обратите внимание на формулировку первой строки "...конвертирует документы из устаревшего формата в Open Document..."
На этом экране необходимо выбрать, какие именно документы будет искать и конвертировать LibreOffice. Доступны документы из Word, Excel и PowerPoint, причем LibreOffice понимает и новейшие docx, xlsx и pptx от MS Office 2007 и выше. Выбрать необходимо, как минимум, один вариант, иначе мастер дальше не пустит (что вполне логично). 
После выбора нажмите любимую всеми кнопку Далее, откроется второй экран мастера:
Здесь можно выбрать импортировать шаблоны или документы, или и то и другое, а также указать месторасположение каталогов, которые будет просматривать LibreOffice в поисках документов в "устаревшем формате". Ещё нужно указать каталог, куда будут помещены файлы в формате Open Document. Советую активировать опцию Включая подпапки, чтобы не запускать LibreOffice несколько раз, а можно было указать только самый верхний в структуре каталог. Это нужно будет повторить для каждого типа документов (то есть для документов Word, Excel и PowerPoint) отдельно. Считаем, что мы так и сделали. Жмём на каждом экране Далее. И видим наконец предпоследний экран мастера:
Видим на нём краткое резюме, в котором описано, что откуда берется и куда складывается. наконец жмём кнопку Конвертировать. Появляется последний экран:
Ждём энное количество времени, которое зависит от количества и объема исходных документов, и видим итог, что (в моём случае) 25 из 25 найденных документов преобразованы в "прогрессивный" новый формат. Можно нажать кнопку Показать журнал и посмотреть список всех преобразованных документов. Нажмите кнопку Закрыть и откройте каталог назначения, который указывали на первых шагах мастера. Там должны находиться все получившиеся документы с учетом структуры подкаталогов. Вот и всё.

4 комментария:

  1. А как преобразовать пакетом в консоли? Из PHP.

    ОтветитьУдалить
    Ответы
    1. у LibreOffice есть возможность стартовать из командной строки с параметрами. Один из них convert-to отвечает за конвертирование документов из формата в формат. Насчёт того, как вызвать LibreOffice из PHP не подскажу, но из обычной консоли в Линукс работает замечательно. Вам нужно только про синтаксис convert-to почитать и всё.

      Ну и еще я писал статью про пакетное преобразование документов в PDF с использованием bat файла в Windows - http://antilibreoffice.blogspot.com/2017/03/pdf-libreoffice.html

      Удалить
    2. $text = shell_exec($libreOfficePath . ' --headless --convert-to "txt:Text (encoded):UTF8" --cat ' . $fileName);

      Работает с англ.текстом, а вместо русских символов у меня выводятся вопросики. Пока не разобрался. Жду совета!

      Удалить
    3. Вот с кодировками не помогу, сорян. Лучше бы с таким вопросом обратиться на форум PHP-шников

      Удалить

Внимание! Сообщения проходят премодерацию!