| Author |
Message |
 Roman Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
|
| |
|
 |
KiR Активный участник форума

Joined: 23 Jan 2007 Posts: 209 Location: Russia, Moscow
|
Posted: Mon Aug 17, 2009 8:42 pm |
Quote |
|
Disclaimer: В порядке флейма.
Почему бы не использовать XSLT? |
|
| |
|
 |
 Roman Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Mon Aug 17, 2009 8:49 pm |
Quote |
|
В порядке флейма потому что не умею это делать в .net .
хотя можно конечно было бы попробовать написать обработчик
Posted after 18 minutes 39 seconds:
Обновил версию.
Исправлено:
1. Баг с навигацией второго уровня вложенности.
2. Баг с пустыми секциями (без тайтла) в дереве навигации.
Добавлено:
1. Поддержка дефолтного CSS , сидит в фолдере CSS (default.css) и если его отредактировать будет прописан в файл. Пока всунул в него только установку заголовков по центру. В планах добавить особое форматирование для стихов, аннотаций и эпиграфов, в принципе для этого все готово у элементов форматирования из FB2 есть свой class , так что вопрос добавок в CSS.
Предложения принимаются  _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
KiR Активный участник форума

Joined: 23 Jan 2007 Posts: 209 Location: Russia, Moscow
|
|
| |
|
 |
 Roman Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Mon Aug 17, 2009 9:32 pm |
Quote |
|
KiR
Спасибо , возможно буду изучать
валидацию я и раньше умел делать а вот трансформы - увы , хотя и там свои недостатки - не совсем валидный файл не поправить да и классы что я наклепал можно потом для другого использовать , например классы FB2 у меня уже были как часть покупалки для клуба , а когда делал XHTML так просто изучал стандарт - кто знает , может завтра редактор замутю , вроде FBE
Собственно в .net я относительный новичек и одна из целей была "набить руку" (угу, пока классы XHTML набивал так "набил" что до сих пор болит ) . _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
KiR Активный участник форума

Joined: 23 Jan 2007 Posts: 209 Location: Russia, Moscow
|
Posted: Mon Aug 17, 2009 9:37 pm |
Quote |
|
MSDN рулит?
И еще, я не против приятного времяпровождения за C# или <нужное вписать>...
Но, есть же уже язык трансформаций, в котором тоже самое делается на порядок проще.
Безусловно, понимаю, что это, конечно же, язык функциональный, но с другой стороны простой и специализированный.
Короче говоря, призываю чуть-чуть расширить свой кругозор  |
|
| |
|
 |
 Roman Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Mon Aug 17, 2009 9:45 pm |
Quote |
|
Зато у меня файлы выходят валидные  _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
 sorotokin Искушенный участник форума

Joined: 15 Feb 2008 Posts: 61 Location: Сан-Хосе, Калифорния
|
Posted: Mon Aug 17, 2009 9:46 pm |
Quote |
|
| 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 Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Mon Aug 17, 2009 9:50 pm |
Quote |
|
sorotokin
Да , с фонтами в планах , но чуть более дальних, это нужно не не так критично как то что перечислил выше.
Вообще планы у меня наполеоновские - закончить с этим , создать ему графическую оболочку , дописать масс-конвертер для сабфолдеров, сделать что ни будь в стиле fb2lrf то есть с контекст меню и настройками , затем возможно попробовать сделать минимальный редактор. Все зависит от настроения и времени конечно, последний пункт весьма сомнителен, остальные думаю вытяну, вопрос только сколько времени это займет
Насчет вашего конвертера (как и конвертера от KiR ) - в курсе но тогда это было бы не так интересно  _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
MihaM Член клуба The eBook

Joined: 13 Oct 2007 Posts: 593 Location: Израиль
|
Posted: Mon Aug 17, 2009 10:35 pm |
Quote |
|
| KiR wrote: | | Почему бы не использовать XSLT? |
Он решил С# тренировать, на XSLT времени не осталось.
Кстати дебагировать XSLT не такое большое удовольствие без дебагера. Пару лет (ну может больше чем пару) назад, на работе покупало специальную прогу (хотя может в с# уже есть ?) _________________ Lbook v3, PocketBook 360 |
|
| |
|
 |
 sorotokin Искушенный участник форума

Joined: 15 Feb 2008 Posts: 61 Location: Сан-Хосе, Калифорния
|
Posted: Mon Aug 17, 2009 10:38 pm |
Quote |
|
| Roman wrote: | Насчет вашего конвертера (как и конвертера от KiR ) - в курсе но тогда это было бы не так интересно  |
Ну, желаю удачи. В моём конвертере rocket science никакого нет, так что Вы ничего не потеряли. Но сабсеттинг я бы сам точно не писал, если бы было что-то под рукой: внутреннее устройство фонтов - это тихий ужас.
Posted after 7 minutes 41 seconds:
| KiR wrote: | | Почему бы не использовать XSLT? |
Я писал конвертер из DocBook на XSLT и конвертер из FB2 на Java. Обосновывать неохота, но на Java мне показалось всё-ж удобнее. |
|
| |
|
 |
 Roman Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Mon Aug 17, 2009 10:50 pm |
Quote |
|
| sorotokin wrote: | Ну, желаю удачи. В моём конвертере rocket science никакого нет, так что Вы ничего не потеряли. Но сабсеттинг я бы сам точно не писал, если бы было что-то под рукой: внутреннее устройство фонтов - это тихий ужас.
|
Ну ZIP я тоже сам не писал
Кстати , как я понял цель сабсетинга - сэкономить на размере файла ? Или я еще что то упускаю ? _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
KiR Активный участник форума

Joined: 23 Jan 2007 Posts: 209 Location: Russia, Moscow
|
Posted: Mon Aug 17, 2009 10:53 pm |
Quote |
|
sorotokin
Я ж написал, что XSLT функциональный
Если серьезно, то XSLT -- другой по парадигме, поэтому -- кому что удобней.
Posted after 7 minutes 30 seconds:
| Roman wrote: | Зато у меня файлы выходят валидные  |
То что они на известном нам ресурсе не валидные -- заслуга лишь одного человека. Шутка (почти).
И потом, вся их невалидность правится очень легко.
P.S. По поводу, "моего" конвертора в EPUB. Слово "моего" взято в кавычки не случайно, моего авторства лишь xsl-преобразование в Docbook, скрипт-обвязка да всякая мелочевка-поднастройка. |
|
| |
|
 |
 sorotokin Искушенный участник форума

Joined: 15 Feb 2008 Posts: 61 Location: Сан-Хосе, Калифорния
|
Posted: Tue Aug 18, 2009 2:15 am |
Quote |
|
| Roman wrote: | Ну ZIP я тоже сам не писал
Кстати , как я понял цель сабсетинга - сэкономить на размере файла ? Или я еще что то упускаю ? |
Сэкономить на размере - раз, особенно для фонтов, готорые используются эпизодически (например только для пары заголовков). Использовать коммерческие фонты - два (если их не делать ни mangling, ни subsetting то могут начаться проблемы с владельцами фонтов).
Posted after 4 minutes 18 seconds:
| KiR wrote: | sorotokin
Я ж написал, что XSLT функциональный
Если серьезно, то XSLT -- другой по парадигме, поэтому -- кому что удобней. |
Функциональность в этом случае, кстати, скорее плюс, неудобств сама по себе не вызывает. У XSLT как-то бедно со стуктурами данных. Т.е., не хочется из одного XMLя лепить сразу другой, хочется иметь промежуточную модель. |
|
| |
|
 |
IgorS48 Постоянный участник форума

Joined: 25 Jan 2008 Posts: 156 Location: Украина, Харьков
|
Posted: Tue Aug 18, 2009 6:59 am |
Quote |
|
sorotokin
| Quote: | | Т.е., не хочется из одного XMLя лепить сразу другой, хочется иметь промежуточную модель. |
+1000. Вот это очень архитектурно правильно и прочувствовано автором данного поста на своем опыте.
ПС Не сдержался...  _________________ nmdParser web content -> fb2 |
|
| |
|
 |
KiR Активный участник форума

Joined: 23 Jan 2007 Posts: 209 Location: Russia, Moscow
|
Posted: Tue Aug 18, 2009 8:35 pm |
Quote |
|
| sorotokin wrote: | | Функциональность в этом случае, кстати, скорее плюс, неудобств сама по себе не вызывает. У XSLT как-то бедно со стуктурами данных. Т.е., не хочется из одного XMLя лепить сразу другой, хочется иметь промежуточную модель. |
В каком смысле бедно со структурами данных? |
|
| |
|
 |
 sorotokin Искушенный участник форума

Joined: 15 Feb 2008 Posts: 61 Location: Сан-Хосе, Калифорния
|
Posted: Tue Aug 18, 2009 9:20 pm |
Quote |
|
| KiR wrote: | | В каком смысле бедно со структурами данных? |
В том смысле, что трудно сначала собрать всю необходимую информацию в промежуточном представлении (как его сделать в XSLT?), а потом уже генерировать результат из этого промежуточного представления. Из-за этого трудно скажем, делать автоматическую разбивку на куски не больше 300к.
Другая проблема: apply-templates не возвращает результата в вызывающий template. Т.е. apply-templates работает как map, а часто нужно reduce - нести информацию вперёд по дереву, а не только вниз. |
|
| |
|
 |
 Roman Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Wed Aug 19, 2009 12:07 am |
Quote |
|
Обновилась версия , изменения следующие:
| 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 с дерева навигации ибо нефиг  _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
 EugeneR Продвинутый участник форума

Joined: 07 Jun 2007 Posts: 76 Location: BY-IL-CH-KS-QC-TX
|
Posted: Wed Aug 19, 2009 6:51 am |
Quote |
|
Попробовал на либрусековском файле из их архива, вот что получилось:
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 Член клуба The eBook

Joined: 19 May 2007 Posts: 3928 Location: Деревня Израиловка
|
Posted: Wed Aug 19, 2009 8:11 am |
Quote |
|
EugeneR
Спасибо за информацию, но файл то дай - без него не проверить.
Ну или хотя бы линк на название на Литресе - они у меня все есть.
Хотя судя по ошибке файл очень странный , с одной секцией и без названия что ли ? _________________ FB2EPUB
Я дурак - меня посадят. |
|
| |
|
 |
|