ВВЕДЕНИЕ 5
1 Обзор существующих решений 6
2 Функционал приложения 10
3 Проектирование приложения 12
3.1 Архитектура класса Book 12
3.2 Архитектура класса Decompressor 13
3.3 Архитектура класса EpubDecompressor 13
3.4 Архитектура класса RtfDecompessor 14
3.5 Архитектура класса MobiDecompessor 14
3.6 Архитектура класса FB2Decompessor 14
3.7 Архитектура класса FB3Decompessor 15
3.8 Архитектура класса DecompressorFactory 15
3.9 Архитектура класса Observer 16
3.10 Архитектура класса Renamer 16
3.11 Архитектура класса Settings 18
3.12 Архитектура класса SettingsWindow 19
3.13 Архитектура класса MainWindow 20
4 Интерфейс приложения 23
ЗАКЛЮЧЕНИЕ 26
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 28
ПРИЛОЖЕНИЕ А Структура формата EPUB-файла 29
ПРИЛОЖЕНИЕ Б UML-диаграммы частей архитектуры приложения 30
ПРИЛОЖЕНИЕ В Внешний вид приложения 32
Рост популярности электронных книг приводит к появлению пользовательских электронных библиотек. Это, в свою очередь, требует инструментов для управления такими библиотеками.
Одной из проблем, с которыми сталкиваются владельцы электронных библиотек - имя файла зачастую не связано с названием книги и ее автором. Файлы книг на русском языке в лучшем случае имеют имена, в которых на транслите указан автор и название, в худшем - произвольный набор цифр. Это создает много неудобств, в частности затрудняет поиск и навигацию по библиотеке.
Существующих инструментов переименования файлов мало и они недостаточно гибки для нужд владельцев библиотек.
Для решения данной проблемы в рамках ВКР было разработано приложение, позволяющее нажатьем одной кнопки переименовывать файлы электронных книг. При этом пользователь имеет возможность самостоятельно задавать структуру и содержание нового названия. Переименование можно выполнять вручную, что позволяет добавлять в название информацию, не предусмотренную шаблоном, или ввести имя папки и приложение автоматически переименует все файлы этой папки.
Приложение работает с книгами форматов EPUB, FB2, FB3, MOBI, RTF. Это наиболее распространенные форматы, поддерживаемые большинством современных устройств для чтения. Так формат EPUB считается самым популярным в мире; FB2 - широко распространен в России и странах СНГ; FB3 - также российский формат, развиваемый и продвигаемый при участии компании «Литрес», позиционируется как формат, призванный в будущем вытеснить FB2; MOBI - также популярный формат, созданный компанией Amazon для платформы Kindle.
Созданное приложение имеет дружественный и интуитивно понятный интерфейс и будет полезно всем владельцам электронных библиотек.
1 Обзор существующих решений
Формат EPUB (Electronic Publication) является одним из наиболее популярных форматов для хранения электронных книг. Широкое распространение он получил потому, что книги этого формата можно читать на разных устройствах: компьютерах, электронных книгах, смартфонах. Гибким и легко масштабируемым для разных экранов, формат EPUB делают технологии XHTML и CSS, которые лежат в его основе.
Кроме того, формат EPUB поддерживает изображения, анимацию и другие мультимедийные элементы. И это тоже является плюсом при использовании его для электронных книг.
На рисунках А.1 и А.2 показано устройство формата EPUB. Метаданные о книге содержатся в специальном файле content.opf, находящийся в папке OPS. Зная это, нужные метаданные просто извлечь через поиск подстроки в файле.
Формат RTF является текстовым форматом, разработанным Microsoft. Его основное преимущество заключается в широком уровне совместимости и сохранении базового форматирования текста, включая стили, шрифты и отступы. Несмотря на ограниченную поддержку мультимедиа и гиперссылок, RTF остаётся удобным для электронных публикаций.
Формат MOBI разработан компанией Amazon для своих ридеров Kindle. Он также базируется на открытых технологиях XHTML и CSS. Этот формат обладает высокой степенью сжатия, что позволяет хранить больше таких книг на своих носителях. Так как современный MOBI-формат становится более EPUB-ориентированным, это позволяет получать метаданные из файла content.opf, находящийся либо в папке mobi7, либо в папке mobi8.
Формат FB2 - это XML-ориентированный формат электронных книг, популярный в русскоязычном сегменте. Этот формат является структурированным - главы, цитаты, сноски явно выделяются в коде. Благодаря этому формат легко анализируем. Также поддерживает встроенные изображение и часто содержит метаинформацию. Проводится поиск определенных частей для нахождения метаданных.
Формат FB3 является относительно новым, целью разработки которого было устранение недостатков формата FB2 и его усовершенствование. В отличие от формата FB2, этот формат поддерживает мультимедийные элементы, встроенные стили и более сложную структуру файла. Его развитие активно поддерживается Литресом, что способствует его популярности.
Проблема неорганизованности файлов часто затрудняет работу пользователей с большими библиотеками книг. Автоматически генерируемые имена файлов, содержащие номера версий, случайные символы или избыточную информацию, могут делать работу с такими файлами неудобной. В связи с этим важным аспектом работы с файлами подобных форматов является их корректное и удобное именование.
Готовых решений для переименования некоторых форматов не так много. Наибольшим функционалом и возможностями обладает приложение Booki (рисунок 1). Это небольшое приложение, которое позволяет вручную переименовывать файлы EPUB, RTF, FB2 через простой и минималистичный интерфейс. Основная цель Booki — предоставить пользователям возможность быстро изменять названия файлов.
В ходе работы над ВКР было разработано приложение для переименования файлов форматов EPUB, FB2, FB3, RTF, MOBI. Приложение обеспечивает возможность настройки формата имени файла, выбора разделителей, выбора папки для автоматического переименования файлов, отображения серий книг и управление положением заголовка относительно имени автора.
Пользовательский интерфейс прост и окна настроек был создан с учетом удобства и простоты использования, что позволяет пользователям адаптировать функциональность приложения под свои предпочтения.
В результате применения паттерна проектирования "Наблюдатель" удалось обеспечить гибкость в обновлении настроек и синхронизации с остальными компонентами приложения. Параметры сохраняются в конфигурационном файле, что позволяет пользователям не вводить их заново при каждом запуске приложения.
В результате применения паттерна “Стратегия” удалось обеспечить расширяемость программы. В случае добавления новых форматов для обработки потребуется всего лишь создать один новый класс, и его будет легко встроить в систему.
Используя паттерн проектирования “Одиночка”, достигаем единственности объекта класса, что не допустит двойственности сохраненных настроек приложения.
Разработанное приложение обладает дружественным интерфейсом и предоставляет пользователям удобные инструменты для организации и управления электронной библиотекой.
Разработка этого приложения стала отличным примером того, как современные технологии и паттерны проектирования могут быть использованы для создания удобных и эффективных инструментов для пользователей.