пятница, 28 октября 2016 г.

Условное форматирование в зависимости от даты

Все знают, (а кто не знает, тот скоро узнает) что есть такая штука в LibreOffice Calc, как условное форматирование. Это автоматическое форматирование ячейки в зависимости от неких условий. 
Возникла тут у одного хорошего человека необходимость подсветить (выделить цветом) один столбец из множества. Условием для подсветки столбца должно быть совпадение даты, которая прописана в первой строке каждого столбца, с сегодняшней.
Выглядеть это должно вот так:
Сегодня у нас 28.10.2016, соответствующий столбец выделен цветом. Если открыть файл завтра, 29.10.2016, то ни один столбец подсвечен не будет. Если открыть 5 ноября 2016, то подсветится столбец, в первой строке которого стоит дата 05.11.2016.
Реализовано это таким образом (немного не оптимальным, говорю сразу):
Выделите первый столбец, начиная со второй строки сверху (диапазон А2:А_сколько надо)
Выберите пункт меню Формат-Условное форматирование-Управление
В нижней части диалога нажмите кнопку Добавить
В верхней части диалога появится строка с набором опций, в левой её части в выпадающем списке выберите вариант Формула
В строке справа от выпадающего списка введите собственно формулу, которая и будет условием, при соблюдении которого включается подсветка: A$1=TODAY(), которая сравнивает значение из ячейки А1 с сегодняшней датой.
Теперь необходимо задать стиль ячейки, который будет применяться к нашим данным при соблюдении условия. Ниже нашей формулы есть строка Применить стиль в выпадающем списке которой необходимо выбрать вариант Создать стиль, потому что в списке нет нужного нам стиля с цветным фоном:
В следующем диалоге на вкладке Управление задайте стилю вменяемое и узнаваемое имя, например Условное форматирование желтое, а на вкладке Фон выберите нужный цвет и нажмите ОК. Диалог создания стиля закроется и Вы вернетёсь в диалог Условное форматирование.

В диалоге Условное форматирование нажмите ОК ещё раз.
А теперь финт ушами. Мы задали условия автоформатирования только для первого столбца, чтобы задать условия для остальных столбцов, я воспользовался функцией Копировать формат, для которого есть кнопка на Стандартной панели инструментов: выделяете первый столбец, дважды щелкаете мышкой по значку Копировать формат, затем щелкаете по второй сверху ячейке каждого столбца. По завершении процесса нажмите клавишу Esc, чтобы выйти из режима копирования формата.
Вот и всё. При наступлении нужной даты, соответствующий столбец будет отформатирован так, как Вы настроили.

понедельник, 24 октября 2016 г.

Будущее LibreOffice. Работа с отсутствующими шрифтами

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

Работа с отстутствующими шрифтами

Когда документы отправляются с одного компьютера на другой или открываются на одном компьютере в другой операционной системе, эти документы могут выглядеть по разному, если не все шрифты, используемые в документе, доступны на другом компьютере или в иной операционной системе. По этой причине так популярен экспорт документов в PDF-файлы, так как это делает документ одинаково выглядящим в любых ситуациях, он будет напечатан без какой-либо оглядки на шрифты. Это предложение (команды дизайна) пытается предоставить пользователям удобный способ для борьбы с ситуацией, когда отсутствуют нужные шрифты.

Отобразить уведомление

Первый шаг к решению этой проблемы – уведомить пользователей об отсутствии нужных шрифтов при открытии документа, который содержит недостающие шрифты, которые были заменены LibreOffice. Это может быть достигнуто при существующей реализации информационной панели LibreOffice, которая также используется для уведомления пользователя о том, что они открывают документ только для чтения. Для того чтобы ограничить появление этой панели только случаями, когда это действительно необходимо, информационная панель не будет отображаться в случаях, когда отсутствующие шрифты замещаются метрически совместимыми шрифтами из поставки LibreOffice.

Пользователь будет иметь возможность отклонить уведомление или нажать на кнопку «View font list» (Просмотреть список шрифтов), которая открывает диалоговое окно свойств документа (или, в качестве альтернативы, некий новый диалог). В диалоге будет перечислены все шрифты, используемые в документе (как используемые в стилях, так и применённые при прямом (ручном) форматировании), а также указать, какие из них отсутствуют, и шрифты, которыми таковые были замещены.

Установка и замена шрифтов

Список шрифтов, используемых в документе, можно считать общей информацией о документе, и поэтому он идеально подходит для свойств документа в диалоговом окне (Файл > Свойства...). Диалог имеет вкладку Шрифт, на который есть только возможность встраивать шрифты в документ, так что она может быть заполнена путем перечисления шрифтов и их заменителей. Мы сделали два макета на тему того, как это может быть представлено, как показано на рисунке ниже.

На обоих макетах показаны списки шрифтов, которые содержат список всех шрифтов в документе и, для отсутствующих шрифтов, отображаются замещающие их установленные шрифты.
На левом макете, в списке шрифтов выделены курсивом шрифты, которые не установлены. Когда выделена строка, то в столбце "Substitution" (Замещающий) становится доступен выпадающий список всех установленных шрифтов, чтобы обеспечить средства для выбора другого шрифта, который будет использоваться в качестве замены. Порядок сортировки может быть настроен. Если пользователь хочет установить альтернативный шрифт, он может нажать кнопку "Install font" (Установить шрифт), который открывает диалог c доступом к сайту с расширениями, с настройкой фильтра для отображения шрифтов. Поиск в этом списке должен быть легким (на картинке приведен в пример шрифт "Comic"), а установка позволяет впоследствии выбрать этот шрифт в списке подстановки. (Не все шрифты обязательно должны быть размещены на сайте расширений, может быть достаточно прописать ссылку в нужное место).
На правом макете, список шрифтов имеет столбец "Installed" (Установленные), чтобы показать, установлен ли шрифт. При выборе строки, пользователь может нажать на кнопку "Install" (Установить), которая открывает меню элементов для установки отсутствующего шрифта или альтернативы с открытым исходным кодом. Пользователи Linux также смогут установить оригинальные или альтернативные шрифты через менеджер пакетов. Пункт меню "Install All" (Установить все) будет перебирать список шрифтов и устанавливать недостающие шрифты из их оригинальных источников. Кроме того, пользователи могут применить другой замещающий шрифт для выбранного шрифта, нажав на кнопку "Apply Substitute" (Применить замену) в выпадающем меню "Substitute", или заменить все вхождения шрифта на другой шрифт в документе, используя кнопку "Replace font” (Заменить шрифт).

За кулисами

Для того, чтобы обеспечить необходимую функциональность для установки шрифта или его альтернативы, как это было описано выше для макетов, эта функциональность должна быть прописана в конфигурационном файле. Этот файл будет на основе XML и каталога шрифтов, их открытых альтернатив и источника их загрузки в виде URL-адресов. Структура XML будет возможно выглядеть следующим образом:

<font>
<family>Times New Roman</family>
<license>Proprietary</license>
<style>serif</style>
<bundled_with>Windows;Windows 3.1</bundled_with>
<download_url>https://sourceforge.net/projects/corefonts/files/
the%20fonts/final/times32.exe/download</download_url>
<package>ttf-mscorefonts-installer</package>
<substitute>
<family>Liberation Serif</family>
<metrical_compatible>Y</metrical_compatible>
<download_url>http://downloadarchive.documentfoundation.org/
libreoffice/old/fonts/liberation_serif.zip</download_url>
<package>fonts-liberation</debian_package>
</substitute>
</font>

Индикация замещения

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

Для того, чтобы лучше указать на факт замещения шрифта, мы должны сделать больше для изменения отображаемого текста, например изменить его цвет на красный (TDF #96872), а также указать шрифт, который используется для замещения, как в названии шрифта, так и в подсказке (TDF # 61134).

Подобно названию шрифта на панели инструментов, вкладка Шрифт, находящаяся в диалоге Символ, также нуждается в улучшении. Надписям "This font style will be simulated or the closest matching style will be used" и "This font has not been installed. The closest available font will be used", которые находятся под выпадающими списками с названиями семейств шрифтов, нужна более четкая индикация, чем просто быть в простом стиле, когда она говорит: "The same font will be used on both your printer and your screen". Должен быть изменен либо стиль текста (курсив, жирный или красный), либо должен показываться значок предупреждения в начале текста.
Вывод

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

пятница, 21 октября 2016 г.

Выпуск LibreOffice 5.3 alpha 1

Состоялся выпуск официальной альфа-версии LibreOffice 5.3. В связи с этим разработчики объявили "Охоту на ошибки". Если вы хотите помочь проекту, то скачайте дистрибутив LibreOffice 5.3 alpha 1 для своей операционной системы отсюда http://dev-builds.libreoffice.org/pre-releases/. Установите его на ваш компьютер (установится параллельно основной версии) и выполняйте на нём свои обычные операции. Об обнаруженных ошибках необходимо сообщать разработчикам в багзилле проекта. О том, как это делать, я писал в этой заметке.

среда, 19 октября 2016 г.

Риббон попадет в релиз LibreOffice 5.3 в качестве экспериментальной опции

Среди разработчиков видимо остались относительно вменяемые люди и они решили новинку сезона а-ля риббон под названием Notebookbar пометить, как экспериментальную возможность, которую нужно активировать ручками в настройках LibreOffice. Однако вместе с самим риббоном под раздачу попал и переключатель режимов панелей инструментов, что не есть гуд, поскольку переключатель между одной и двумя панелями инструментов явно нужная штука.
Сами разработчики на сегодня признают, что Notebookbar - это недопиленная поделка, однако при этом оно все равно попало в кодовую базу будущего релиза, пусть и в качестве экспериментальной опции.

пятница, 14 октября 2016 г.

Сжатие изображений в LibreOffice

Предположим, что есть документ с вставленными в него изображениями. Как обычно вставляют изображение в документ? Используется пункт меню "Вставка - Изображение" или соответствующий значок на панели инструментов. Какие изображения вставляют в документ? Любые! Любых размеров, в любом формате, который принимает для импорта LibreOffice. И никто предварительно изображение на предмет уменьшения его размера не обрабатывает. При вставке изображения в документ LibreOffice подгоняет его размеры под текущий размер страницы. Однако исходное качество изображения, его размеры и разрешение (так зазываемый dpi) остаются неизменными. Что это значит для документа? Если вставлять в документ, например фотографии, сделанные современными цифровыми камерами, а перед этим никак не обрабатывать их, то документ станет огромным по размеру (скажем при весе одного изображения в 2-3 мегабайта и их количестве в 10-15 штук в документе, общий размер документа будет от 20 до 45 мегабайт, а это очень много) и при работе с ним будут возникать проблемы производительности и отображения документа. Как способ повышения производительности в таких случаях можно использовать временное скрытие изображений. Об этом я писал вот в этой заметке
Однако есть и иной способ. Способ этот - сжатие изображения средствами LibreOffice.
Щелкните правой кнопкой мыши по изображению и выберите пункт "Сжать...":
Откроется вот такой диалог:
В левой части диалога расположены параметры сжатия изображения, которые можно варьировать по своему усмотрению. Больше всего влияют на размер изображения: ширина, высота и разрешение изображения. Сжатие JPEG необходимо оставить активным, единственно можно качество выставить в 100. Советую также поэкспериментировать с вариантами Интерполяции, это влияет на качество сжатого изображения.
Далее, справа есть крайне удачная кнопочка "Вычислить", нажимая на которую можно оценить текущий и новый размер изображения без применения самого сжатия. Оцените 13 кратный эффект на скриншоте выше. При этом на глаз изображение в документе ничем не отличается до и после сжатия.
Соответственно, чем больше изображений вставлено в документ, тем больший общий эффект получается от сжатия.
Какие изображения стоит сжимать таким образом? Если в диалоге выше в строке "Размер изображения" показывает больше 150-200кб, то это повод попробовать сжать его. Конечно, если весь документ состоит из одного изображения и пары строк текста, то возможно, овчинка выделки не стоит. Этот функционал явно нужно использовать при большом количестве изображений.
Update: приведу ссылку на блог Дмитрия Мажарцева на пост о пакетной обработке изображений http://librerussia.blogspot.com/2015/05/magik-fns-gray.html.

вторник, 11 октября 2016 г.

LibreOffice 5.3. Импорт PDF, как изображения

Один из разработчиков, Miklos Vajna, реализовал в версии LibreOffice 5.3 такую возможность, как вставку в документ Writer файла в формате PDF, как изображения. Вот ссылка на соответствующую запись в его блоге. Чтобы вставить PDF, как изображение, в Writer используйте пункт меню "Вставка - Изображение" или соответствующий значок на Стандартной панели инструментов. После импорта PDF в документ, его можно сохранить в любом графическом формате, экспорт в который поддерживает LibreOffice, без потери качества.