LINUX.ORG.RU

Apache FOP 1.0

 , fop, xsl-fo


0

0

Одиннадцатый год развития открытого XSL-FO-процессора Apache FOP ознаменовался достижением версии 1.0.

По-видимому, разработчики были настолько поглощены процессом подготовки выпуска, что забыли анонсировать выпуск, который произошёл в середине лета. Тем не менее, это — знаковое событие для opensource-графики: FOP является де-факто единственным открытым и свободным процессором XSL Formatting Objects. FOP активно используется в таких серьезных организациях, как Accenture, BNP Paribas, FedEx, Европейский патентный офис, Ford, HP, IBM, Siemens, Палата Представителей и Армия США. В версии 1.0:

  • адресация всех доступных глифов в шрифтах Type 1;
  • автоматическое конфигурирование коллекций TrueType-шрифтов (.ttc). В файлах font-метрик для них более нет необходимости;
  • рендеринг с использованием Java Print System;
  • посимвольная и пословная стратегия выбора шрифта;
  • начальный набор расширений для предпечатной подготовки (препресс);
  • поддержка страниц разной ширины в рамках одной последовательности (page-sequence);
  • поддержка пиктографических шрифтов TrueType, таких, как Wingdings или Symbol;
  • фреймворк обработки событий, обеспечивающий более полное информирование о процессах в FOP.

XSL Formatting Objects (спецификация) — язык разметки типографских макетов и прочих предпечатных материалов, использующий всю мощь XML-технологий WWW-Консорциума. По идеологии XSL-FO пользователь создаёт исходный текст в виде произвольного XML (например, XHTML, DocBook или TEI), который затем при помощи XSLT-трансформации превращается в FO-документ и далее «материализуется» FO-процессором. Так, в качестве выходных механизмов Apache FOP поддерживает визуализацию на экране, вывод на печать и в файлы формата PDF/PostScript/PCL/SVG/PNG/RTF; в то же время, сам по себе XSL-FO — media-независимый язык.

Вместе с выходом Xerces-J 2.10.0 (с поддержкой XML Schema 1.1), выпуск FOP 1.0 представляет собой существенное обновление XML-стека от Apache.

Заметка на JavaLobby.

>>> Сайт проекта

★★

Проверено: maxcom ()
Последнее исправление: MuZHiK-2 (всего исправлений: 1)

Ответ на: комментарий от tr0ll

Это всё потому, что ты тролль. Правильно читать Apache FAP.

INFOMAN ★★★★★
()

надо будет попробовать. Лет 5 назад он ужасно рендерил таблицы и имел проблемы со шрифтами, из-за чего мы перешли с него на RenderX XEP

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

> перешли с него на RenderX XEP

Мне нравится название продукта «XEP». Особенно доставило, когда эта же конторка выпустила Html Adapter к XEP, назвав его HAXEP.

blex ★★★
()

Очень уж долго они его пилят. Пользовался им лет 7 назад, (таблицы он, кстати, в режиме 'в PDF' генерировал нормально), но за всё это время не видать заметного продвижения в функциональности. Если судить по таблице соответствия стандарту XSL-FO на их сайте, то непонятно, зачем выпускать '1.0', если даже по уровню 'Basic' соответствие неполное.

ximeric
()
Ответ на: комментарий от blex

Это было в годы финснсовой нестабильности в компании с русскими корнями. Программерский юмор, да.

AP ★★★★★
()

>>Одиннадцатый год развития открытого XSL-FO-процессора Apache FOP ознаменовался достижением версии 1.0.

Одиннадцатый год /////////// версии 1.0.

Ну вы поняли...

anonymous
()

Лет восемь-десять назад я пробовал прикрутить эту штуку к своему проекту, но качество рендеринговых движков заставило отказаться. Прошли годы, а технологию так и не приняли. А тогда казалось такой хорошей идеей...

Сдается мне, все-таки, что идея писать документы в чисто семантической разметке (DocBook, TEI, etc.), а потом получать из них физическую разметку сильно ущербна. Тот же LaTeX, ориентированный на густую смесь семантики и представления, получается эффективнее.

mind
()
Ответ на: комментарий от Anoxemian

Нет, это не исходный документ, а промежуточный. Еще не PDF, но уже полностью освобожденный от семантической разметки. Собственно, FO можно получать из LaTeX, хотя идеология, конечно, требует чего-то xml-based. И вот тут начинаются проблемы. Разработчики этого чего-то делают, опять-таки, в соответствии с идеологией, чистую семантическую разметку. А она must die. Лучший результат, по-моему, дают языки, которые в процессе эволюции стали смесью семантики и представления: html и LaTeX.

mind
()
Ответ на: комментарий от Anoxemian

Может быть, это своеобразный TeX. Еще не, но и уже не.

mind
()

Надо интегрировать в ЛОР, чтобы распечатанные PDF приходили домой в почтовый ящик всяким Ъ типо РМС

vertexua ★★★★★
()

А есть еще что-нибудь, свободное, без жаба, для генерации PDF из XML-формата?

anonymous
()

Хорошая штука, только на если в page-sequence больше 300-400 страниц то память начинает лопать гигабайтами.

ef37 ★★
()

Удивлён.
Вот это JustForFun, так JustForFun!!!
Всем JustForFun-ам JustForFun!
Сферический конь в ваккууме - 42 по сравнению с этой разработкой!

Pronin ★★★★
()
Ответ на: комментарий от anonymous

> А есть еще что-нибудь, свободное, без жаба, для генерации PDF из XML-формата?

ReportLab

ximeric
()
Ответ на: комментарий от anonymous

ну я где-то видел рендерер DocBook на базе TeX

maxcom ★★★★★
()
Ответ на: комментарий от anonymous

> А есть еще что-нибудь, свободное, без жаба, для генерации PDF из XML-формата?

Но сам ReportLab не использую. :-)

У себя пользуюсь конвертером OpenOffice.org: od? через UNO в pdf.

ximeric
()
Ответ на: комментарий от Dimka-Bo

> Результаты работы можно как-то увидеть?

В составе FOP есть довольно кошерная оболочка (GUI), можно загрузить туда примеры, идущие с самим FOP, и сразу увидеть output.

Kuka ★★
() автор топика
Ответ на: комментарий от mind

> Лучший результат, по-моему, дают языки, которые в процессе эволюции стали смесью семантики и представления: html и LaTeX.

А в это время все человечество борется за разделение логики, данных и представления :)

Но вот любители смешать в одном файле PHP, HTML, CSS, JS и SQL, пожалуй, вас поймут и поддержат.

Нет, это не исходный документ, а промежуточный.


Кстати, насчет промежуточных. Забыл упомянуть в новости: добавлен промежуточный формат (возможно, бинарный - что-то вроде байт-кода) для увеличения производительности. В него, видимо, компилируется исходный FO. Обещают, что формат хорошо документирован.

Kuka ★★
() автор топика

И да, MuZHiK-2, я очень уважаю твой корректорский труд, но запятые в выражении «таких как» в данном случае не ставятся (пруф). Не надо меня позорить. :)

Kuka ★★
() автор топика
Ответ на: комментарий от maxcom

Лет 5 назад он ужасно рендерил таблицы и имел проблемы со шрифтами, из-за чего мы перешли с него на RenderX XEP



А надо было воспользоваться преимуществами опенсорса. На fix проблем со шрифтами я потратил 1 день, на фиксы проблем с таблицами я потратил 5 дней. Были ещё проблема с tiff файлами, но они тоже элементарно исправлялись. Именно после фопа я проникся мощью опенсорса.

vtVitus ★★★★★
()
Ответ на: комментарий от ef37

Хорошая штука, только на если в page-sequence больше 300-400 страниц то память начинает лопать гигабайтами.


Версия 0.25 для создания таблицы на 450 страниц с 5 колонками и одним единым fow span на все 450 страниц 700 метров для java хватило.

vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus

>Версия 0.25 для создания таблицы на 450 страниц с 5 колонками и одним единым fow span на все 450 страниц 700 метров для java хватило.

Нумерация страниц типа <fo:page-number> и <fo:page-number-citation> была ?

Версия 0.95 и таблица в 10-12 колонок и порядка 10 000 строк - чуть более 300 страниц, потребление памяти подходило к 2-м Гб.

ef37 ★★
()
Ответ на: комментарий от mind

Идея офигенна, а вот реализации достойной нет (среди свободных).. Почему это нужно при наличии того-же LaTeX? Элементарно, потому что:
- Основной контент в сети все-же XML-based ([X]HTML);
- Web-программистам тоже полезно. Прочие решения генерирования PDF-ок с динамическим контентом не отличаются изяществом.

mityukov
()
Ответ на: комментарий от vtVitus

Да, это правильно. Тогда у нас, к сожалению, небыло времени ковыряться в чужом коде

maxcom ★★★★★
()

> Мощь XML технологий!!

ПорвалО! :-D

alx_me ★★☆
()
Ответ на: комментарий от mityukov

> Основной контент в сети все-же XML

Миллионы мух говорят вам спасибо.

alx_me ★★☆
()
Ответ на: комментарий от mityukov

> Идея офигенна, а вот реализации достойной нет (среди свободных)

XML мне не очень нравится, но в целом я против него ничего не имею. Я о другой идее: о чисто семантической разметке. Вот она-то, как мне кажется, порочна.

mind
()
Ответ на: комментарий от sergom

С этими рекомендациями стоит ознакомиться, может оказаться полезным.

У меня эта проблема стояла особенно остро из-за ссылок вперед, в смысле при генерации 1 и 2-й страниц(оглавление, например) FOP уже должен в этом месте поставить ссылку на некое место в документе, точная страница которого ему еще не известна, поскольку он до нее пока не дошел. Еще похожий пример - использование нумерации страниц вида «страница 1 из X». Х выяснится в самом конце документа.

Ради этого он держит все страницы sequence в памяти и при большом документе это заметно ;-).

В то же время при генерации 5-8 тыс. стр. документов, но внутри page-sequence-ов которых не больше сотни страниц расход памяти им куда более умеренный.

ef37 ★★
()
Ответ на: комментарий от ef37

Нумерация страниц типа <fo:page-number> и <fo:page-number-citation> была ?


Нумерация присутствует.

Версия 0.95 и таблица в 10-12 колонок и порядка 10 000 строк - чуть более 300 страниц, потребление памяти подходило к 2-м Гб.


Там возможно стоит покопаться на тему различных блоков, я к сожалению уже кучу лет с фопом не общался, версию 0.95 застал, потребление памяти там выросло, но не сильно. Надо просто посмотреть в коде, где создаётся что-то постоянно и под это оптимизировать. Я так поступал.

vtVitus ★★★★★
()

на работе пользуем, для визуализации всяких платёжных документов, хорошо удобно. Годная программа.

qnikst ★★★★★
()
Ответ на: комментарий от mind

Я не думаю что имеет хоть какой-нибудь смысл заменять всё на семантику. Т.е., есть, например, годный редактор, умеющий сохранять сразу в PDF — нихай будет. TeX-ы разные — тоже хорошо. Речь о другом: а) конвертация «семантики» (коей в сети очень много), б) динамическая генерация доков (скажем, отправлять какую-нибудь нотификацию о заказе сразу с HTML и с PDF вложениями), с) один документ на входе->разные оформления(через стандартизированный язык разметки шаблонов) и форматы на выходе.

Опять-таки, кому-то (люди разные) семантика может быть тупо удобнее. В том же Ворде/ОО-Райтере, например, я всегда стараюсь придерживаться структуры документа, и частенько думаю о том, насколько некоторые вещи проще было бы сделать в HTML.


> Основной контент в сети все-же XML



Миллионы мух говорят вам спасибо.



Не понял вас.

mityukov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.