Вук Мрнявчевич
15:59 16-03-2007
Если вы скачиваете книги, и скачиваете их с fictionbook.ru и/или с lib.aldebaran.ru, в формате fb2, то этот текст для вас.

fb2 -- удобный формат. Он поддерживает структуру текста, всевозможную дополнительную информацию, сноски и изображения обложек. Читалка Haali Reader предоставляет доступ ко всем этим фичам, плюс форматирование текста согласно разметке, закладки и пометки (на полях, так сказать).
Тем не менее, практика выкладывания книжных сериалов или сборников рассказов в отдельных файлов иногда может причинять неудобства.


Для этого мне понадобилась только одна программа: FBTools . Можно обойтись любым "плоско"-текстовым редактором (Блокнот, Notepad++, UltraEdit), который умеет (ну или не умеет) подсвечивать разметку XML, но только FBTools умеет валидизировать получившийся документ. А невалидный (т.е. неправильный) XML-документ не откроется читалкой.

Скачиваем книги, открываем их в FBTools. Идем в конец документа, переключаемся в просмотр исходного кода (View->Source), и направляемся в конец документа. Последний тэг в документе с обложкой -- <binary>. Тэг обрамляет изображение, представленное в машинном коде. Удаляем этот тэг вместе с его содержимым. Возвращаемся в начало документа, ищем тэг <coverpage>, который отвечает как раз за страницу с обложкой. Удаляем его вместе с его содержимым.
Чуть ниже будет тэг <body>, который, собственно, всю книгу (кроме сносок), в себе и содержит. Чтобы уместить несколько книг в одном документе, можно использовать несколько способов -- например, заново переразметить секции, но я сделал быстрее и проще, хотя и неправильнее: добавил в тэг <body> аттрибут name. Вот так: <body name="Orka">.
После этого я дополнил тэг тела (<body name="Isola">) в документе второй повести, и скопировал тэг вместе с содержимым в первый документ, сразу после закрывающего body, но до закрывающего документ тэга </FictionBook>. Вот так:
...
		</section>
	</body>

	<body name="Isola">
		<section>
...
...
		</section>
	</body>
</FictionBook>

Лучше сразу после этого сохранить полученное в новом файле. После этого нужно нажать F8. Если FBTools в статусной стоке напишет "No errors found" -- значит, все прошло нормально, книгу можно читать. Если нет -- сообщения об ошибках достаточно информативны.

Книга, сооруженная таким образом, и открытая в Haali Reader, будет разбита на соответствующее количество частей (сколько тэгов типа <body name="mybook">, столько и частей). Доступ к другой части можно получить либо через структуру документа, либо через кнопки, назначенные как "Вперед" и "Назад", либо через две кнопки со стрелочками на тулбаре.