![]() © 2001-2003 |
XSL FO и FOPДля чего нужны XSL FO и FOPОдно из решающих преимуществ использования XML для подготовки текстовых документов -- возможность получения произвольного множества представлений из одного и того же исходного текста. Многие веб-мастера уже оценили преимущества XML+XSLT перед ручным написанием HTML. Такой подход позволяет в любой момент изменить стиль сайта или получать различные версии HTML-оформления для одних и тех же документов. С помощью языка XSL Formatting Objects и его реализации -- Apache FOP появляется дополнительная возможность получения печатных документов. Конечно, можно печатать HTML из броузера, но все броузеры до сих пор являются крайне примитивными системами автоматической верстки. К тому же, возможностей HTML и CSS недостаточно для исчерпывающе точного описания представления документа. XSL FO позволяет точно описывать, а FOP -- генерировать документы, практически, типографского качества. FOP может использоваться, в частности:
Как это работаетПредположим, мы хотим получить печатную версию (PDF) руководства пользователя в каком-то нашем частном XML языке. Процесс полностью аналогичен генерации HTML -- нам нужно написать XSLT-преобразование из нашего языка в XSL FO, соответствующий желаемому оформлению. Конечно, можно писать текст XSL FO и руками, но это довольно непродуктивное занятие, сводящее на нет все преимущества XML-паблишинга. Затем мы обрабатываем полученный XSL FO документ в FOP и получаем требуемый результат. Можно поступить еще проще -- если FOP может найти какой-нибудь TRAX-совместимый XSLT-процессор (стандартная поставка включает Xalan), он может самостоятельно выполнить XSLT-преобразование. В этом случае нам достаточно указать исходный XML-документ и XSLT-стайлшит чтобы сразу получить PDF (промежуточный этап -- генерация XSL FO произойдет автоматически). Если вы используете стандартный XML-язык, то можно попытаться найти для него готовые XSLT-стайлшиты для преобразования в XSL FO. Например, такие стайлшиты входят в пакет DocBook XSL Stylesheets для популярного языка DocBook. В дистрибутив самого FOP входят стайлшиты для собственного языка Apache XML Project (стайлшиты, DTD и образцы документов на этом языке можно найти в каталоге src/documentation). |