Как использовать поплавки с XSL-FO в C # (NFOP)?
Вопрос
Вопрос: Поддержка NFOP плавает?
Задний план: У меня есть требование генерировать отчет о печати, содержащий номера страниц, корпоративный логотип и таблицу данных. Отчет предназначен для веб-проекта, и изначально я думал о том, чтобы сделать его в Pure HTML с помощью стилей для печати CSS, однако номера страниц и расщепление клеток таблиц, кажется, являются проблемами.
Из-за этого я решил пойти на маршрут PDF Generation, используя XSL для генерации XSL и используя NFOP для генерации PDF. Тем не менее, кажется, что NFOP не поддерживает <fo:float>
Часть XSL-FO?
Ниже отображается нормально:
<fo:block>
<fo:external-graphic src="c:\Projects\NFopSpike\NFopSpike\logo.jpg" />
<fo:block>
Foo
</fo:block>
<fo:block>
Bar
</fo:block>
</fo:block>
Ниже пропускается график полностью:
<fo:block>
<fo:float float="start">
<fo:external-graphic src="c:\Projects\NFopSpike\NFopSpike\logo.jpg" />
</fo:float>
<fo:block>
Foo
</fo:block>
<fo:block>
Bar
</fo:block>
</fo:block>
Альтернативное решение, которое я использую сейчас, состоит в том, чтобы создать отдельный блок-контейнер, который абсолютно расположен к тому, где должен появиться плаватое изображение, и убедитесь, что другой контент не затенется, но простое поплавок будет намного проще для обслуживания.
Решение
NFOP (последний выпуск в марте 2008 г.) - это порт Apache FOP (последний выпуск в июле 2010 года). Apache Fop никогда не поддерживал fo: float (см. http://xmlgraphics.apache.org/fop/compliance.html#foobject-float.).
Таким образом, ответ на ваш вопрос: нет, fo: float, к сожалению, не поддерживается.