Author | Message |
---|
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 17.08.2009 18:22 | |
| Время идет, программа растет Уже не такая маленькая и далеко не бета и тем более не альфа. Точнее уже получился целый пакет программ или утилит объединенных одной целью - конвертацией FB2 файлов в ePub с возможностью русификации.
Программа бесплатна для любого типа использования, код открыт.
Последняя версия: 1.1.7 от 31-го Июля 2014.
Сайт программы: http://www.fb2epub.net
Конвертировать можно: 1. Через утилитку ГУЙ 2. Через командную строку 3. Через правую кнопку мыши из Проводника Windows 4. Как экспортное плагин расширение к редактору FBE. 5. Сохраняя FB2 файлы в ePub прямо из браузера/обозревателя Firefox 6. Используя из других программ через COM интерфейс.
Качать тут: http://www.fb2epub.net/rus/index.html#latest
О проблемах, замеченных ошибках и пожеланиях - пишите тут в топике или ко мне на почту lordkiron@fb2epub.net .
Last edited by Roman on 31.07.2014 15:59; edited 78 times in total |
|
| |
KiR Developer
Joined: 23 Jan 2007 Posts: 188
Location: Russia, Moscow
| Posted: 17.08.2009 21:42 | |
| Disclaimer: В порядке флейма.
Почему бы не использовать XSLT? |
|
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 17.08.2009 21:49 | |
| В порядке флейма потому что не умею это делать в .net . хотя можно конечно было бы попробовать написать обработчик
Posted after 18 minutes 39 seconds:
Обновил версию. Исправлено: 1. Баг с навигацией второго уровня вложенности. 2. Баг с пустыми секциями (без тайтла) в дереве навигации.
Добавлено: 1. Поддержка дефолтного CSS , сидит в фолдере CSS (default.css) и если его отредактировать будет прописан в файл. Пока всунул в него только установку заголовков по центру. В планах добавить особое форматирование для стихов, аннотаций и эпиграфов, в принципе для этого все готово у элементов форматирования из FB2 есть свой class , так что вопрос добавок в CSS. Предложения принимаются |
|
| |
KiR Developer
Joined: 23 Jan 2007 Posts: 188
Location: Russia, Moscow
| |
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 17.08.2009 22:32 | |
| KiR Спасибо , возможно буду изучать валидацию я и раньше умел делать а вот трансформы - увы , хотя и там свои недостатки - не совсем валидный файл не поправить да и классы что я наклепал можно потом для другого использовать , например классы FB2 у меня уже были как часть покупалки для клуба , а когда делал XHTML так просто изучал стандарт - кто знает , может завтра редактор замутю , вроде FBE Собственно в .net я относительный новичек и одна из целей была "набить руку" (угу, пока классы XHTML набивал так "набил" что до сих пор болит ) . |
|
| |
KiR Developer
Joined: 23 Jan 2007 Posts: 188
Location: Russia, Moscow
| Posted: 17.08.2009 22:37 | |
| MSDN рулит?
И еще, я не против приятного времяпровождения за C# или <нужное вписать>... Но, есть же уже язык трансформаций, в котором тоже самое делается на порядок проще. Безусловно, понимаю, что это, конечно же, язык функциональный, но с другой стороны простой и специализированный. Короче говоря, призываю чуть-чуть расширить свой кругозор |
|
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 17.08.2009 22:45 | |
| Зато у меня файлы выходят валидные |
|
| |
sorotokin Искушенный участник форума
Joined: 15 Feb 2008 Posts: 54
Location: Сан-Хосе, Калифорния
| Posted: 17.08.2009 22:46 | |
| Roman wrote: | 1. Нет "разрезки" под размер , Сони и прочие подобные ридеры не откроют файл если "входной" FB2 был одним большим блоком текста и в результате получились XHTML файлы> 300K.
2. Код , в смысле структуры требует много переделок - писалось по ходу изучения стандартов ни имея представления о них (EPUB, XHTML , FB2) да и .Net для меня не "родной" язык.
3. Почти нет обработки ошибок - если что будет падать о таких случаях прошу сообщать с предоставлением файла вызвавшего падение.
Если у кого есть вопросы и т.д пишите тут. (Сильно не бить код пока еще очень левый, да и делал урывками в свободное время , но работает ) |
Я бы добавил сабсеттинг фонтов.
Вы в курсе, что исходники для онлайн FB2EPUB конвертера доступны? Он написан на Java, но какие-то вещи может быть не так сложно портануть, скажем обработчик фонтов вот здесь: http://code.google.com/p/epub-tools/source/browse/trunk/epubtools/epub gen/com.adobe.dp.otf/src/com/adobe/dp/otf/OpenTypeFont.java |
|
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 17.08.2009 22:50 | |
| sorotokin Да , с фонтами в планах , но чуть более дальних, это нужно не не так критично как то что перечислил выше. Вообще планы у меня наполеоновские - закончить с этим , создать ему графическую оболочку , дописать масс-конвертер для сабфолдеров, сделать что ни будь в стиле fb2lrf то есть с контекст меню и настройками , затем возможно попробовать сделать минимальный редактор. Все зависит от настроения и времени конечно, последний пункт весьма сомнителен, остальные думаю вытяну, вопрос только сколько времени это займет
Насчет вашего конвертера (как и конвертера от KiR ) - в курсе но тогда это было бы не так интересно |
|
| |
MihaM Член клуба The eBook
Joined: 13 Oct 2007 Posts: 664
Location: Израиль, Хайфа
| Posted: 17.08.2009 23:35 | |
| KiR wrote: | Почему бы не использовать XSLT? |
Он решил С# тренировать, на XSLT времени не осталось. Кстати дебагировать XSLT не такое большое удовольствие без дебагера. Пару лет (ну может больше чем пару) назад, на работе покупало специальную прогу (хотя может в с# уже есть ?) _________________ Lbook v3 --> PocketBook 360, Kindle PaperWhite |
|
| |
sorotokin Искушенный участник форума
Joined: 15 Feb 2008 Posts: 54
Location: Сан-Хосе, Калифорния
| Posted: 17.08.2009 23:38 | |
| Roman wrote: | Насчет вашего конвертера (как и конвертера от KiR ) - в курсе но тогда это было бы не так интересно |
Ну, желаю удачи. В моём конвертере rocket science никакого нет, так что Вы ничего не потеряли. Но сабсеттинг я бы сам точно не писал, если бы было что-то под рукой: внутреннее устройство фонтов - это тихий ужас.
Posted after 7 minutes 41 seconds:
KiR wrote: | Почему бы не использовать XSLT? |
Я писал конвертер из DocBook на XSLT и конвертер из FB2 на Java. Обосновывать неохота, но на Java мне показалось всё-ж удобнее. |
|
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 17.08.2009 23:50 | |
| sorotokin wrote: | Ну, желаю удачи. В моём конвертере rocket science никакого нет, так что Вы ничего не потеряли. Но сабсеттинг я бы сам точно не писал, если бы было что-то под рукой: внутреннее устройство фонтов - это тихий ужас.
|
Ну ZIP я тоже сам не писал Кстати , как я понял цель сабсетинга - сэкономить на размере файла ? Или я еще что то упускаю ? |
|
| |
KiR Developer
Joined: 23 Jan 2007 Posts: 188
Location: Russia, Moscow
| Posted: 17.08.2009 23:53 | |
| sorotokin Я ж написал, что XSLT функциональный Если серьезно, то XSLT -- другой по парадигме, поэтому -- кому что удобней.
Posted after 7 minutes 30 seconds:
Roman wrote: | Зато у меня файлы выходят валидные |
То что они на известном нам ресурсе не валидные -- заслуга лишь одного человека. Шутка (почти). И потом, вся их невалидность правится очень легко.
P.S. По поводу, "моего" конвертора в EPUB. Слово "моего" взято в кавычки не случайно, моего авторства лишь xsl-преобразование в Docbook, скрипт-обвязка да всякая мелочевка-поднастройка. |
|
| |
sorotokin Искушенный участник форума
Joined: 15 Feb 2008 Posts: 54
Location: Сан-Хосе, Калифорния
| Posted: 18.08.2009 03:15 | |
| Roman wrote: | Ну ZIP я тоже сам не писал Кстати , как я понял цель сабсетинга - сэкономить на размере файла ? Или я еще что то упускаю ? |
Сэкономить на размере - раз, особенно для фонтов, готорые используются эпизодически (например только для пары заголовков). Использовать коммерческие фонты - два (если их не делать ни mangling, ни subsetting то могут начаться проблемы с владельцами фонтов).
Posted after 4 minutes 18 seconds:
KiR wrote: | sorotokin Я ж написал, что XSLT функциональный Если серьезно, то XSLT -- другой по парадигме, поэтому -- кому что удобней. |
Функциональность в этом случае, кстати, скорее плюс, неудобств сама по себе не вызывает. У XSLT как-то бедно со стуктурами данных. Т.е., не хочется из одного XMLя лепить сразу другой, хочется иметь промежуточную модель. |
|
| |
IgorS48 Кандидат в члены клуба The eBook
Joined: 25 Jan 2008 Posts: 293
Location: Украина, Харьков
| Posted: 18.08.2009 07:59 | |
| sorotokin
Quote: | Т.е., не хочется из одного XMLя лепить сразу другой, хочется иметь промежуточную модель. |
+1000. Вот это очень архитектурно правильно и прочувствовано автором данного поста на своем опыте.
ПС Не сдержался... _________________
"Любовь к Родине не ведает чужих границ" С.Е.Лец Брат у ворот
|
|
| |
KiR Developer
Joined: 23 Jan 2007 Posts: 188
Location: Russia, Moscow
| Posted: 18.08.2009 21:35 | |
| sorotokin wrote: | Функциональность в этом случае, кстати, скорее плюс, неудобств сама по себе не вызывает. У XSLT как-то бедно со стуктурами данных. Т.е., не хочется из одного XMLя лепить сразу другой, хочется иметь промежуточную модель. |
В каком смысле бедно со структурами данных? |
|
| |
sorotokin Искушенный участник форума
Joined: 15 Feb 2008 Posts: 54
Location: Сан-Хосе, Калифорния
| Posted: 18.08.2009 22:20 | |
| KiR wrote: | В каком смысле бедно со структурами данных? |
В том смысле, что трудно сначала собрать всю необходимую информацию в промежуточном представлении (как его сделать в XSLT?), а потом уже генерировать результат из этого промежуточного представления. Из-за этого трудно скажем, делать автоматическую разбивку на куски не больше 300к.
Другая проблема: apply-templates не возвращает результата в вызывающий template. Т.е. apply-templates работает как map, а часто нужно reduce - нести информацию вперёд по дереву, а не только вниз. |
|
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 19.08.2009 01:07 | |
| Обновилась версия , изменения следующие:
Code: | 1.0.2 + Files now splited to XHTML files by section + Added some definitions to default CCS file so now epigraphs and citations no longer look as normal text. + added book FB2 description to EPUB description + Added spliting XHTML files by size , big text is no longer a problem + Added linking from the notes page back to the anchor page * Title, Cover , About etc are no longer part of the navigation tree.
|
1.То есть сделал "порезку" очень больших файлов на кусочки и перешел на систему: одна секция - один файл, теперь Сонька "жрет" даже такие извращения. 2. Немного расширил дефолтный CCS чтобы выглядело получше (над этим еще работать и работать). 3. Описание книги теперь сидит в EPUB метадате (не то что бы ее кто пользовал но...) 4. Сделал возможность вернутся из ссылок туда где читал до перехода (как в FB2LRF ) 5. Убрал обложку и about с дерева навигации ибо нефиг |
|
| |
EugeneR Искушенный участник форума
Joined: 07 Jun 2007 Posts: 47
Location: BY-IL-CH-KS-QC-TX
| Posted: 19.08.2009 07:51 | |
| Попробовал на либрусековском файле из их архива, вот что получилось:
PS C:\Users\Username\Program Files\FB2ePub> ./Fb2ePub.exe 24.fb2 F:\test.epub FB2 to EPUB command line converter by Lord KiRon Loading... Saving...
Unhandled Exception: System.InvalidOperationException: Sequence contains no elements at System.Linq.Enumerable.Max(IEnumerable`1 source) at System.Linq.Enumerable.Max[TSource](IEnumerable`1 source, Func`2 selector) at EPubLibrary.TOC.NavMap.NavMapElement.GetDepth() at EPubLibrary.TOC.TOCFile.CreateTOCDocument(XDocument document) at EPubLibrary.TOC.TOCFile.Write(Stream s) at EPubLibrary.EPubFile.AddTOCFile(ZipOutputStream stream) at EPubLibrary.EPubFile.AddBookData(ZipOutputStream stream) at EPubLibrary.EPubFile.Generate(String outFileName) at Fb2ePubConverter.Fb2EPubConverterEngine.Save(String outFileName) at Fb2ePub.Program.Main(String[] args) _________________ Google Nexus One | PRS-505 | PRS-600 |
|
| |
Roman Developer
Joined: 19 May 2007 Posts: 4412
Location: Деревня Израиловка
| Posted: 19.08.2009 09:11 | |
| EugeneR Спасибо за информацию, но файл то дай - без него не проверить. Ну или хотя бы линк на название на Литресе - они у меня все есть. Хотя судя по ошибке файл очень странный , с одной секцией и без названия что ли ? |
|
| |