Создание электронных книг в формате FictionBook 2.1: практическое руководство. Версия 1.0 Release Candidat 2 от 21.08.2008 г. (Кондратович) - страница 40

    135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,

    135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,

    240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,

    168, 184, 170, 186, 175, 191, 161, 162, 176, 149, 183, 138, 185, 164, 138, 138]

# считываем входной файл в одну строку

wtext=ARGF.readlines.to_s

ARGF.close

wtext.gsub!(/\n(\S)/,' \1') # склеиваем строки абзацев

wtext.squeeze!(" ")         # убираем лишние пробелы

wtext.gsub!(/^ /,"")        # убираем пробелы в начале строки

# перекодировка текста

for i in 0..(wtext.length-1)

  case wtext[i]

    when 20: wtext[i] = 182 # обработать символ "Пи"

    when 21: wtext[i] = 167 # обработать символ "параграф"

    when 128..255: wtext[i] = doswin[wtext[i]-128] # обработать все остальное

  end

end

wtext.gsub!("...", (133).chr) # многоточие - в символ "многоточие"

wtext.gsub!(/(\s)-\s/,'\1'+(151).chr+" ") # компьютерное тире - в типографское

# порубим строку в массив

wtext = wtext.split(/\n/)

wtext.collect! do |line|

  if line =="" then

    line = "" # пустая строка?

  else

    line="

"+line+"

" # нет, не пустая

  end

end

# добавляем заголовок

wtext.insert(0,"

nonfiction

ru

Yuzich Ruby script (dostxt -> FB2)

")

# добавляем хвост

wtext << "

\n\n\n"

# сохраняем выходной файл

wfile = File.new(ARGF.filename.dup.gsub!(/\.txt/i,".fb2"),"w")

wfile.puts wtext

wfile.close

После того, как скрипт отработает, в директории появится файл <имя_исходного_файла>.fb2. Небольшая правка в FB Editor и он полностью готов.

Пример второй.
Конвертирование журналов c WiseSoft.ru

Эта задачка гораздо интереснее первой. Как раз тот случай, когда написание специализированного конвертора полностью оправдано.

На ресурсе http://www.wisesoft.ru находится множество различных журналов. Форматы в котором они представлены, различаются, Но один из них особо привлекателен для преобразования в FB2. Я говорю о журналах которые представлены в виде пачки html-файлов («Хакер», «Хакер-спец», «Мобильные компьютеры», «Хулиган» и др.).  При всей простоте, конвертированию стандартными средствами этот способ хранения данных поддается с трудом.

Более близкое знакомство выявило следующее. Имеется  файл index.htm с оглавлением. Статьи представляют собой кучки html-файлов, разбитые по папкам. Текст представляет собой обычные абзацы, обрамленные тэгами «

». Оформление html-ок везде стандартное.