gifts2017

FB2Reader

Опубликовал Сергей Кучеров (СергейКа) в раздел Обработки - Универсальные обработки

На сегодня самый распространённый формат книг в электронном виде - FB2. Поскольку я сам очень люблю почитать, то сделал эту обработочку, дабы читать "без отрыва от производства" :)
Исходный код обработки открыт.

Обработка открывается в любой базе 1С. Интерфейс очень простой.  Открываем обработку и выбираем книгу. Читаем.

Обновлено. В версию 1.2 внесены следующие изменения:

1. Добавлено чтение из zip архива. Т.е. в выборе книги можно теперь выбрать файл вида *fb2.zip. Условие - в архиве должен быть только 1 файл! Обработку нескольких может добавлю позже.

2. Добавлена пользовательская настройка стилей. Т.е. теперь пользователь может сам установить цвета, шрифты, расположение и т.д. Если ничего не заполнять, то используются настройки по умолчанию.

3. И еще кое-что по мелочи :)))

Спасибо artbear за идеи :)

Обновлено. В версию 1.1 внесены следующие изменения:

1. Переработан код обработки для лучшего восприятия :)

2. При обработке сносок ошибку не выдает. Но выводит их без форматирования.

3. Автоопределение кодировки файла.

4. Добавлена обработка курсивов (правда не везде красиво).

5. Заголовки выводит по центру.

Ну и что-то еще по мелочи :)

По прежнему в планах:

Навигация по книге (переход по заголовкам, переход по процентам).

Дообработка различных тэгов.

Улучшение отображения.

18.06.09

Обработка переведена в доступ для "всех", так как не является необходимой для ведения какого-либо учёта.

20.07.09

Возвращено в доступ "Только для зарегистрированных". Читаем комментарий.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
FB2Reader.epf версия 1.2
.1235142788 15,84Kb
17.08.10
206
.1235142788 15,84Kb 206 Скачать
FB2Reader.epf версия 1.1
.1234968338 13,22Kb
17.08.10
93
.1234968338 13,22Kb 93 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Алексей Мутовкин (mrWatson) 17.02.09 14:01
Интерсно как это можно читать без отрыва от производства? Наврено точнее сказать "почитать незаметно для производства и окружающих", можно ли раскрасить в стиле синтаксиса модуля 1С? ;)
2. Сергей Кучеров (СергейКа) 17.02.09 14:04
1. Ну и это тоже :)
2. Можно, но планирую что бы пользователь сам раскраску ставил. После сдачи отчётностей возьмусь, если интерес к разработке будет.
3. Андрей Скляров (coder1cv8) 17.02.09 14:11
4. Валерий Агеев (awa) 17.02.09 14:16
Проблемы с кодировкой. Файлы в кодировке utf-8 отображает кракозябрами.
5. Артур Аюханов (artbear) 17.02.09 14:18
6. Сергей Кучеров (СергейКа) 17.02.09 14:22
3) Честно говоря самому не очень нравится из-за невозможности перехода на последнюю прочитанную строку и отсутствия навигации. Но это сделаю в следующей версии на основе html поля а не табличного документа.
4) Не знаю, кодировку я вообще не трогал. Всё как в системе. Из полутора сотен опробованных книг проблем не было.
3,4) спасибо за оценку :)
7. Сергей Кучеров (СергейКа) 17.02.09 14:28
8. Валерий Агеев (awa) 17.02.09 14:49
(6) Например, http://lib.rus.ec/b/79791/download, и таких на либрусеке много!
9. Валерий Агеев (awa) 17.02.09 14:50
+(8) Запятая в ссылку не входит!
10. Сергей Кучеров (СергейКа) 17.02.09 16:01
9) Обновил обработку. Теперь воспринимает utf-8.
Действительно странно, что у меня таких файлов не было, хотя с либрусека скачано немало...
11. Валерий Агеев (awa) 17.02.09 17:38
10) Да, теперь читает! Но как показала практика, кодировка utf-8 может быть указана в файле и как "UTF-8", и как "utf-8" (http://lib.rus.ec/b/123931)...
Если ты собираешься развивать читалку, то я бы посоветовал одним из первых пунктов реализовать сноски (тэг <a> с типом note) не как переход, а как отображение сносок внизу страницы. Очень повышает комфортность чтения!
СергейКа; artbear; +2 Ответить
12. Сергей Троицкий (tsd) 18.02.09 08:25
ага, вот тут все и отметятся, кто вместо того чтобы работать, на работе книжки читает :)
13. Alexey (el_bucho) 18.02.09 09:06
14. mt171 (mt171) 18.02.09 09:41
Странно, но у меня почему-то при открытии файла 139101.fb2 (книга отсюда http://lib.rus.ec/b/139101/download ) выдаёт ошибку "C:\Documents and Settings\...\Local Settings\Temp\FB\139101\n_1". В электронной книге этот файл открывается без проблем.
15. Bkmz (Bkmz) 18.02.09 10:32
Автор з дуба рухнул. Сейчас самый распространённый формат djvu. А fb2 туфта редкая.
16. Сергей Кучеров (СергейКа) 18.02.09 10:32
17. Сергей Кучеров (СергейКа) 18.02.09 10:34
(15) Вы не правы. Для художественных книг именно FB2. djvu больше для различных руководств и периодических журналов.
18. Bkmz (Bkmz) 18.02.09 10:35
Вычитку книг кто делает? Счас дай бог чтобы человек книгу засканил не то что распознал и вычитал. djvu делает черно-белый снимок с со страницы (даже рыжей, старой с масляными пятнами) и при этом размер в 600 стр нерапознанного картиночного текста можно вместить в 6 Мб или меньше.
19. Сергей Кучеров (СергейКа) 18.02.09 10:46
(18) Во-во. Если человек нормально к свое работе отностися, то скан вычитывается и конвертится в fb. Большая чать художественной лит-ры именно в этом формате благодаря удобству настроек чтения и навигации. На объем сейчас мало внимания обращают, с нынешними-то техническими возможностями :)
20. mt171 (mt171) 18.02.09 12:39
(16) "C:\Documents and Settings\user\Local Settings\Temp\FB\139101\n_1", файл из http://lib.rus.ec/b/79791/download открылся нормально
21. Валерий Агеев (awa) 18.02.09 14:36
(14) В этой книге FB2Reader как раз и спотыкается на сносках. Конструкцию [1] он ошибочно пытается обработать как картинку.
На самом деле реализовать нормальную читалку для формата fb2 не простая задача. А если еще учесть все возможных косяки, встречающихся в реальных файлах...
22. Василий Демидов (Душелов) 18.02.09 14:42
Советую почитать автору: http://reeed.ru/info_fb2.php
СергейКа; +1 Ответить
23. Сергей Кучеров (СергейКа) 18.02.09 14:53
21) Да кто ж спорит. Первая версия писалась в течении 3-х дней вместе с работой, как получалось время выкроить. Причём большая часть времени потратилась на то что еще не получилось в ней реализовать. Всё это еще в процессе.
22) Спасибо. Брал инфу в основном отсюда http://www.gribuser.ru/xml/fictionbook/ и отсюда http://alexstmp.vsi.ru/index.php .
24. Сергей Кучеров (СергейКа) 18.02.09 17:54
Замечания и предложения принимаю, но далеко не всё можно реализовать сразу.
25. ad bo (adakabo) 19.02.09 09:14
а вот эта Функция ПреобразоватьВДеревоXML(СтрокаXML) Экспорт уже объявлена в общем модуле =) впрочем можно закомментировать или переименовать вызов и функцию в локПреобразоватьВДеревоXML
26. Артур Аюханов (artbear) 19.02.09 10:17
Полезно было бы добавить добавить фичу авточтения из zip-файла.
На том же Либрусеке все fb2-файлы лежат в зип-архивах.
У меня на коммуникаторе ХаалиРидер читает зипы, здесь было бы также удобно.

ЗЫ или это уже есть ? :)
Последнюю версию пока не изучал.
27. Сергей Кучеров (СергейКа) 19.02.09 11:32
25) Наверное в ЗУП открывал? :)
26) Нету. В принципе не очень проблемно сделать.
28. Сергей Кучеров (СергейКа) 19.02.09 11:35
25) Обновил не меняя версию.
29. Артур Аюханов (artbear) 19.02.09 15:19
Расположение текста по умолчанию лучше делать по ширине, чуть лучше смотрится :)
30. Артур Аюханов (artbear) 19.02.09 15:25
И Отступ для начала абзаца было бы удобно добавить!

ОбластьТекста.ТекущаяОбласть.Текст = " "+ ТекстВывода; // это Таб
ОбластьТекста.ТекущаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.ПоШирине;
31. Артур Аюханов (artbear) 19.02.09 15:29
1. И еще небольшой разделитель между абзацами вставить для полноты картины :)
2. Последний открытый файл хорошо бы запоминать и открывать его при открытии обработки.
СергейКа; +1 Ответить
32. Сергей Кучеров (СергейКа) 20.02.09 18:23
Обновил версию. Пока реализованы не все пожелания, но это в процессе :)
33. Алексей (ash2015) 21.02.09 12:14
34. Сергей Кучеров (СергейКа) 24.02.09 10:42
Судя по всему версия получилась достаточно читабельна и интерес уже к обновлениям упал :).
В планаш остаются только "фишки" и "фичи", а это не так критично...
35. Валерий Агеев (awa) 24.02.09 17:09
Небольшая ошибка - в тегах <p> могут быть атрибуты, которые не надо отображать при выводе текста книги. Пример - http://lib.rus.ec/b/93867/download . И еще пожелание - при смене настроек шрифтов хотелось бы применять эти изменения к текущей открытой книге, а то новые настройки действуют только при открытии книги.
36. Сергей Кучеров (СергейКа) 24.02.09 17:29
(35) Имеется ввиду текст типа AutBody ? Ок.
Второе пожелание тоже принято.
Вопрос: Как можно отследить движение полосы прокрутки поля текстового документа? Если кто знает, плиз ... :)
37. Sasha_H (logarifm) 25.02.09 17:38
Было бы класно если бы она еще умела в интернет-ресурсах шастать и скачивать вот это другое дело, а то нужно скачать, потом обработке сказать где же файл лежит и потом уж читать....

Или она умеет качать с интернета?

Просто в описании обработки я такого не встретил, а скачивтаь и проверять неохота.
38. Сергей Кучеров (СергейКа) 26.02.09 04:38
(37)Нет. Данная обработка не умеет этого делать :)
Да и не вижу необходимости, если честно, вставлять данный функционал в обработку. Это будет в конфигурации.
39. Сергей Кучеров (СергейКа) 20.07.09 06:13
Эксперимент с доступом "Для всех" признан неудачным. За всё время нахождения в данном доступе скачивания каждый день и никто даже не прокомментировал. Перевел в рекомендуемый.
40. Александр Зайцев (AlecoZAV) 23.09.11 14:39
В принципе идея неплохая, но доработки требует, что то подобное пишу для своей конфы Дом Библиотека, на УФ, там будет постраничное разбиение, гораздо удобнее читать и запоминать позицию просто
41. Сергей Кучеров (СергейКа) 23.09.11 15:47
(40) Давно забил за нехваткой времени.
Начинал разработку чтения на совсем другом принципе, но осталось на этапе исходников.
Была идея создания конфигурации библиотеки, но опять же не дошли руки.
42. Александр Зайцев (AlecoZAV) 24.09.11 09:00
(41) а с другими форматами не работал?
43. Сергей Кучеров (СергейКа) 24.09.11 09:49
(43) Работал.
fb3, html, doc, odt, pdf, txt. С этими всеми достаточно легко.
Была идея работы с chm и hlp - но это закрытые достаточно форматы, сложнее чем с pdf. Не срослось.
44. Равиль Бикбаев (BRT) 07.12.12 10:20
1. При наличии 2-х и более бинарных тегов в книге выходит ошибка.
Предлагаю обнулить имя записи в файл:
ИмяФайлаКартинки = "";

{ВнешняяОбработка.FB2.МодульОбъекта(287)}: Ошибка при вызове конструктора (Картинка)
ЗначениеЗаписи = Новый Картинка(ЗначениеЗаписи);
по причине:
Файл не обнаружен 'C:\temp\FB\3_Бенедиктов К. - Война в зазеркалье\i_001.jpg'
СергейКа; +1 Ответить 1
45. Сергей Кучеров (СергейКа) 08.12.12 09:50
(44) BRT, спасибо, я в курсе. Данная обработка пока не дорабатывается.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа