Здравствуй, читатель! Как и обещал, продолжаю тестировать различные форматы документов в MS Office 2010 и LibreOffice 3.5. За время написания этого поста я успел проверить в работе форматы odt и docx — к сожалению, остался разочарован. Но не будем забегать вперед; под катом о том, как эти форматы обрабатываются в MSO и LO, а также небольшой сюрприз тестировщикам: как автоматизировать процесс генерации тестов для такой необычной области, как форматы документов.
В комментариях к прошлому посту, как и повсюду в интернете, много говорили о форматах docx и odt, как о замене старого и (как оказалось) не очень доброго doc. Много говорили о стандарте doc, много вспоминали о качестве формул в odt, грех было не протестировать эти форматы в деле. Если честно, я ожидал, что odt будет открываться и там и тут без проблем, docx же покажет результаты похуже чем odt, но намного лучше чем doc. Но мечтам не суждено было сбыться…
Тесты для doc я готовил около дня. Согласно логике, столько же мне нужно было для docx и еще день для odt. Три дня для написания одинаковых тестов, но в разных форматах! Какого программиста это может устроить? Базисом моей идеи является следующее наблюдение: если сохранить любые компоненты в odt под LO, то они не изменятся при повторном открытии в LO. Это означает, что все тесты изначально нужно было писать в odt формате, затем их нужно всего лишь пересохранить в форматах doc и docx, что даст нам три теста взамен одного. К счастью, у soffice есть параметр --convert-to, который я и использовал для автоматизации.
Итак, как же автоматизируется создание тестов:
В результате получаем генератор тестов из odt в doc и docx + полностью переписанные тесты для всех трех форматов за один день!
Новые форматы — это хорошо, но я не забыл о просьбах читателей и добавил в тесты формулы и сноски. Как оказалось, дела здесь обстоят не так плохо, как говорили. Большая часть компонентов отображаетсякорректно.
Также немного изменил журнал. Добавил немного статистики для поиска наиболее «хорошего» формата, который бы хорошо отображался в большинстве случаев на обоих редакторах.
Все форматы корректно работают с размерами страниц, их ориентацией, полями и границами. Цвет фона страниц лучше не использовать вовсе, как и отступы от границ (заменяется полями или отступами абзацев).
Если вам от колонтитулов нужно указать высоту (в LO — интервал) или добавить номера страниц, то никаких проблем ни в одном из форматов не возникнет. Но вот границы и боковые поля обрабатываются не очень, так же плохо обрабатываются таблицы в колонтитулах в формате docx, в LO они удаляются (странно, но даже удаленные они видны в MSO).
Нигде никаких проблем.
Отступы, интервалы и выравнивание во всех форматах и редакторах отображаются одинаково, как и цвета с различными выделениями. Границы тоже можно использовать без опасений, но вот о такой экзотике как вертикальное выравнивание относительно базовой линии следует забыть, MSO об этом просто не знает. Параметры «Не разрывать абзац» и «Не отрывать от следующего» тоже корректно отображаются во всех форматах и редакторах.
Нет никаких проблем за исключением двух:
Тоже все хорошо в doc и docx. В odt смещаются отступы списков.
Если коротко — пользуйтесь doc. Никаких проблем с изображениями в ваших документах не будет.
Аналогично предыдущему пункту — doc показал себя и здесь лучше всех.
Если любите odt, о переносимости можете забыть! MSO удаляет все данные об изменениях из документа без вашего согласия.
Вроде как все везде корректно, но после долгих тестов пришел к выводу — не используйте специальные поля в ваших документах (кроме номера и количества страниц, конечно).
Здесь docx вне конкуренции. Отличное отображение формул и возможность редактирования (правда с левосторонними индексами не очень — их просто нет).
Все форматы показали себя хорошо, один только docx решил использовать числа при буквенной нумерации сносок, но ведь это не страшно, правда?
Если нужен договор, письмо и подобная бизнес-документация, используйте doc. Отлично обрабатывается как форматирование текста, так и различные вставки (кроме формул).
Нужно писать доклад, диссертацию или курсовую? Используйте docx и никаких проблем с формулами у вас не будет.
У вас красные глаза линуксоида и вы ведете курсор в сторону «Не нравится» с мыслями — «odt forever!!!»? Нет моей вины в том, что odt показал себя хуже других. Почему-то все odt файлы не хотели нормально открываться в MSO и требовали «Восстановить документ». С чем это может быть связано — не знаю, документы создавал по правилам, никаких плясок с бубном над используемым LO не устраивал. Возможно дело в версии (у меня LO 3.5)?
Ожидания
В комментариях к прошлому посту, как и повсюду в интернете, много говорили о форматах docx и odt, как о замене старого и (как оказалось) не очень доброго doc. Много говорили о стандарте doc, много вспоминали о качестве формул в odt, грех было не протестировать эти форматы в деле. Если честно, я ожидал, что odt будет открываться и там и тут без проблем, docx же покажет результаты похуже чем odt, но намного лучше чем doc. Но мечтам не суждено было сбыться…
Генератор тестов
Тесты для doc я готовил около дня. Согласно логике, столько же мне нужно было для docx и еще день для odt. Три дня для написания одинаковых тестов, но в разных форматах! Какого программиста это может устроить? Базисом моей идеи является следующее наблюдение: если сохранить любые компоненты в odt под LO, то они не изменятся при повторном открытии в LO. Это означает, что все тесты изначально нужно было писать в odt формате, затем их нужно всего лишь пересохранить в форматах doc и docx, что даст нам три теста взамен одного. К счастью, у soffice есть параметр --convert-to, который я и использовал для автоматизации.
Итак, как же автоматизируется создание тестов:
- Пишем все тесты в odt
- Пишем небольшой sh для конвертации odt в любой формат
converter.shsoffice --headless --convert-to $2 $1
- Пишем еще один sh для автоматизации процесса конвертации всех доступных odt тестов
create.shfor i in `seq 12`; do cd $i; ../converter.sh "*.odt" doc; ../converter.sh "*.odt" docx; cd .. done
- На всякий случай пишем sh для удаления всех doc и docx
clean.shfor i in `seq 12`; do rm $i/*.doc* $i/*/*.doc*; rm $i/*.docx* $i/*/*.docx*; done;
В результате получаем генератор тестов из odt в doc и docx + полностью переписанные тесты для всех трех форматов за один день!
Помимо форматов
Новые форматы — это хорошо, но я не забыл о просьбах читателей и добавил в тесты формулы и сноски. Как оказалось, дела здесь обстоят не так плохо, как говорили. Большая часть компонентов отображается
Также немного изменил журнал. Добавил немного статистики для поиска наиболее «хорошего» формата, который бы хорошо отображался в большинстве случаев на обоих редакторах.
Результаты
Страницы
Все форматы корректно работают с размерами страниц, их ориентацией, полями и границами. Цвет фона страниц лучше не использовать вовсе, как и отступы от границ (заменяется полями или отступами абзацев).
Колонтитулы
Если вам от колонтитулов нужно указать высоту (в LO — интервал) или добавить номера страниц, то никаких проблем ни в одном из форматов не возникнет. Но вот границы и боковые поля обрабатываются не очень, так же плохо обрабатываются таблицы в колонтитулах в формате docx, в LO они удаляются (странно, но даже удаленные они видны в MSO).
Колонки
Нигде никаких проблем.
Абзац
Отступы, интервалы и выравнивание во всех форматах и редакторах отображаются одинаково, как и цвета с различными выделениями. Границы тоже можно использовать без опасений, но вот о такой экзотике как вертикальное выравнивание относительно базовой линии следует забыть, MSO об этом просто не знает. Параметры «Не разрывать абзац» и «Не отрывать от следующего» тоже корректно отображаются во всех форматах и редакторах.
Символы
Нет никаких проблем за исключением двух:
- О надчеркивании можно забыть
- Гиперссылки удаляются при открытии odt через MSO
Списки
Тоже все хорошо в doc и docx. В odt смещаются отступы списков.
Изображения
Если коротко — пользуйтесь doc. Никаких проблем с изображениями в ваших документах не будет.
Таблицы
Аналогично предыдущему пункту — doc показал себя и здесь лучше всех.
Рецензирование
Если любите odt, о переносимости можете забыть! MSO удаляет все данные об изменениях из документа без вашего согласия.
Поля
Вроде как все везде корректно, но после долгих тестов пришел к выводу — не используйте специальные поля в ваших документах (кроме номера и количества страниц, конечно).
Формулы
Здесь docx вне конкуренции. Отличное отображение формул и возможность редактирования (правда с левосторонними индексами не очень — их просто нет).
Сноски
Все форматы показали себя хорошо, один только docx решил использовать числа при буквенной нумерации сносок, но ведь это не страшно, правда?
Мой вердикт
Если нужен договор, письмо и подобная бизнес-документация, используйте doc. Отлично обрабатывается как форматирование текста, так и различные вставки (кроме формул).
Нужно писать доклад, диссертацию или курсовую? Используйте docx и никаких проблем с формулами у вас не будет.
У вас красные глаза линуксоида и вы ведете курсор в сторону «Не нравится» с мыслями — «odt forever!!!»? Нет моей вины в том, что odt показал себя хуже других. Почему-то все odt файлы не хотели нормально открываться в MSO и требовали «Восстановить документ». С чем это может быть связано — не знаю, документы создавал по правилам, никаких плясок с бубном над используемым LO не устраивал. Возможно дело в версии (у меня LO 3.5)?