Содержание
Преобразование FictionBook2 — DocBook написано на XSLT v1.0 с расширениями: элементом
xsl:document
и функцией document()
. Данный
XSLT-сценарий выполняет следующие действия:
Создает индексный файл, в котором находятся:
binary
) в отдельные
файлы Об интернационализации. В fb2docbook/l10n
находятся файлы для поддержки языков (сейчас
русский и английский). Если файл под какой-то язык отсутствует, то выбирается язык по
умолчанию (см. Таблица 1, «Шаблонные параметры трансформации FictionBook2 — DocBook»).
Входные параметры для xslt-трансформации.
conv_info_idx
— индексный файл. См. tranformation output index. document-element
— название элемента типа
xsl:document. Зависит от используемого процессора.
Шаблонные параметры трансформации. Находятся в шаблонах параметров, используемых для конвертации DocBook — XSL-FO, см.
Таблица 6, «Шаблоны основных страниц». Одинаковы для всех шаблонов (кроме начинающихся с
output.
), см. включаемый файл
params/p_fb2_common-default.xsl
.
Внимание | |
---|---|
Обязательно прочитайте про параметры |
Таблица 1. Шаблонные параметры трансформации FictionBook2 — DocBook
Название параметра | Описание |
---|---|
fb2.book-parts
|
Указывает, как вложенные fb:section должны заменятся
на соответствующие структурные элементы DocBook (например, на первом (верхнем)
уровне -- это part , а идущие на том же уровне
fb:epigraph и fb:image идут в
partintro ). |
fb2.image.align
|
Горизонтальное расположение изображения (в FB2 такое указание для рисунков отсутствует). |
fb2.image.valign
|
Вертикальное расположение изображения (в FB2 такое указание для рисунков отсутствует). |
fb2.default.language
|
Язык по умолчанию, если он не указан в FB2-документе или отсутствует его интернационализационная поддержка. |
fb2.print.infos
|
Булев параметр, выводить или нет информацию в виде приложений о FB2-документе. |
fb2.not_in_toc
|
Значение для элемента role, в случае отсутствия названия (тег
fb2:title ) у элемента fb2:section .
Используется при дальнейших преобразованиях из Docbook для исключения пустых
элементов в содержании. См. файл параметров
params/p_fb2_common-default.xsl . |
Таблица 2. Шаблонные параметры трансформации FictionBook2 — DocBook, записываемые в индексный файл и используемые обработчиком бинарных файлов
Название параметра | Описание |
---|---|
output.images_mode.resize
|
Булев параметр. Определяет, преобразовывать ли изображения. Возможные
варианты записи: 1, 0, True, true, False, false. Если истинен, обязательно определять все нижеследующие параметры! |
output.images_mode.mode
|
Если установлен в 'BW', то изображения преобразуются в черно-белые. |
output.dpi.width
|
Количество точек на дюйм по горизонтали. Записывается просто числом в строке! |
output.dpi.height
|
Количество точек на дюйм по вертикали. Записывается просто числом в строке! |
output.max_image_margin.width
|
Если умножить на 2 и полученное число вычесть из ширины страницы в
пикселях, то получим максимальный горизонтальный размер изображения. В пикселях! Записывается просто числом в строке! |
output.max_image_margin.height
|
Если умножить на 2 и полученное число вычесть из высоты страницы в
пикселях, то получим максимальный вертикальный размер изображения. В пикселях! Записывается просто числом в строке! |
Таблица 3. Шаблонные параметры трансформации FictionBook2 — DocBook, записываемые в индексный файл и используемые обработчиком бинарных файлов, и трансформацией DocBook — XSL-FO
Название параметра | Описание |
---|---|
page.width
|
Ширина страницы. В миллиметрах. Записывается как действительное число (разделитель — точка), далее без пробела 'mm'. Например, '88.184mm' |
page.height
|
Высота страницы. В миллиметрах. Записывается как действительное число (разделитель — точка), далее без пробела 'mm'. Например, '113.854mm' |
Скрипт написан на Python. Служит "обвязкой" для xsl-трансформаций и преобразований с помощью других инструментов, скрывая детали низкоуровневой реализации. Переводит вложенные в .fb2 файлы обратно в бинарный вид и выполняет трансформацию изображений (изменение размера и цветности).
btransformer.py
{--config config_file
} [
options
...] {
input_file
} [output_file]
Замечание | |
---|---|
Входной .fb2-файл может быть сжат:
|
Таблица 4. Опции командной строки
Название опции (с возможными синонимами) | Параметр опции | Описание | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
--version
|
Вывод версии программы и завершение ее выполнения. | |||||||||
-h , --help
|
Вывод описания опций программы и завершение ее выполнения. | |||||||||
-c , --config
|
FILE
|
Обязательный параметр. Указывает конфигурационный файл
FILE . |
||||||||
--wh
|
Включение win32hack — закрытие консольного окна в системе Win32 происходит только после нажатия любой клавиши. | |||||||||
--no-remove_tmp
|
Отключить удаление временных файлов. | |||||||||
--no-update_metadata
|
Отключить обновление метаданных в выходном pdf-файле. | |||||||||
--xslt_proc
|
XSLT_PROC
|
Использовать XSLT_PROC из
конфигурационного файла как XSLT процессор. |
||||||||
--fo_proc
|
FO_PROC
|
Использовать FO_PROC из
конфигурационного файла как XSL-FO процессор. |
||||||||
--pdf_proc
|
PDF_PROC
|
Использовать PDF_PROC из
конфигурационного файла как процессор, обнавляющий метаданные в pdf-файле. |
||||||||
--pdf_optimizer
|
PDF_OPTIMIZER
|
Использовать PDF_OPTIMIZER из
конфигурационного файла как pdf-оптимизатор. |
||||||||
--xslt_params
|
FILE
|
Использовать шаблонный файл FILE для
преобразования из DocBook. |
||||||||
--xslt_titlepages
|
FILE
|
Использовать файл с описанием форматирования титульных страниц FILE для преобразования из DocBook. |
||||||||
--translify
[a]
|
Использовать транслитерацию на латиницу в метаданных pdf-файла. | |||||||||
--epub
|
Вывод в формат EPUB.
|
|||||||||
[a] Параметр |
В пакеты входят шаблоны, приспособленные для вывода pdf из формата FB2 и для устройства
Sony Reader. Находятся в директории params
дистрибутива.
Таблица 5. Шаблоны для заглавных страниц
Название файла шаблона | Формат или устройство | Примечание |
---|---|---|
titlepage.templates_prs-default.xml
|
Sony Reader PRS-50X | Уменьшены размеры шрифтов заглавий |
titlepage.templates_a4-default.xml
|
Бумага, размер A4 | Изменений не вносилось (копия из дистрибутива Docbook XSL Stylesheets) |
titlepage.templates_a5-default.xml
|
Бумага, размер A5 |
Для распечатки по две страницы на A4 Изменений не вносилось (копия из дистрибутива Docbook XSL Stylesheets) |
Таблица 6. Шаблоны основных страниц[1]
Название файла шаблона | Формат или устройство | Шрифты | Примечание | |||
---|---|---|---|---|---|---|
params_prs-font.liberation.xsl
|
Sony Reader PRS-50X | Шрифты Liberation | ||||
params_prs-font.vista.xsl
|
Sony Reader PRS-50X |
Шрифты из Vista
|
||||
params_a4-font.liberation.xsl
|
Бумага, размер A4 | Шрифты Liberation | ||||
params_a4-font.vista.xsl
|
Бумага, размер A4 |
Шрифты из Vista
|
||||
params_a5-font.liberation.xsl
|
Бумага, размер A5 | Шрифты Liberation | Для распечатки по две страницы на A4 | |||
params_a5-font.vista.xsl
|
Бумага, размер A5 |
Шрифты из Vista
|
Для распечатки по две страницы на A4 | |||
[1] Во всех шаблонах параметры для преобразования FictionBook2 — DocBook одинаковы. |
XSLT-процессор, поддерживающий спецификацию XSLT v1.0 и инструкцию типа
xsl:document
из спецификации XSLT v1.1. Один из:
XSL-FO-процессор. Один из:[3]
Python v2.4 и выше
Генерация в FOP. FOP пишет в .pdf только содержание (bookmarks), другую метаинформацию (автор, название) приходится дописывать с помощью pdftk. К сожалению в таком случае Acrobat Pro/Acrobat Reader (по-крайне мере версии 8) показывает только поле Title (название), при этом вьюер в Sony Reader показывает все поля. Не поддерживает вывод линеаризированного PDF.
Генерация в XEP. XEP имеет расширение к XSL-FO, которое позволяет дописывать всю метаинформацию, и в .pdf, полученных с использованием этого процессора, в Adobe Acrobat виден весь description (описание). Поддерживает линеаризацию при выводе .pdf-файла (опция конфигурации LINEARIZE, отключена по умолчанию).
Линеаризация. Для комфортного просмотра pdf-документов при медленном доступе к файлу или при малом количестве оперативной памяти, необходимо проводить линеаризацию документа (так называемый 'fast web view' в Acrobat). Для этого можно использовать либо Adobe Acrobat ( - (Adobe pdf files, optimized, *.pdf) и выставить соответствующую опцию в ), либо скрипт pdfopt из пакета Ghostscript . Начиная с версии 0.1.bzr252 в fb2docbook включена поддержка оптимизатора pdfopt.Это позволяет сразу получать файлы, пригодные к комфортному чтению на устройствах Sony Reader.
Download.
Требования текущей версии. Установленная JVM.
Установка и запуск. Распаковать в директорию по выбору. Далее, находясь в данной директории, обязательно запустить confsetup.exe для генерации конфигурационных файлов с указанием абсолютных путей к компонентам пакета! Для запуска использовать скрипт btransformer.cmd.
Внимание | |
---|---|
Начиная с версии с версии 0.1.bzr320 при установке необходим запуск confsetup.exe. |
Состав пакета текущей версии.
Python imaging library (PIL) v1.1.6
Pytils v0.2.1
Beautiful Soup v3.0.4
cssutils v0.9.5.1
Pdftk v1.41
GPL Ghostscript v8.63, без шрифтов
Download.
output.images_mode.mode
.
fb2:section
) без заглавий fb2-документа в
выходном файле более не выводятся в содержание (это не относится в метаинформации в
PDF-файле!).
[1] Во всех шаблонах параметры для преобразования FictionBook2 — DocBook одинаковы.
[2] Не поддерживает вывод вложенных файлов, т.к. xalan:write всегда выводит в выходном файле xml-заголовок.
[3] Оба процессора написаны на Java и требуют установленной JVM
[4] Метрики для FOP'а в архиве отсутствуют, так как начиная с версии 0.94 больше не требуются.