Кривые границы для динамических таблиц свободного потока в altova stylevision или xsl-fo без использования свойства border-radius
Я новичок в Altova Stylevision и xsl-fo . Мне нужно иметь кривые границы для таблиц, которые являются динамическими и проходят через несколько страниц. Свойство border-radius не работает, так как это свойство не распознается процессором xsl-fo ни на уровне таблицы, ни на уровне строки, ни на уровне ячейки. Я не смог выдать точное исключение при использовании свойства border-radius, поскольку я завершил использование след версия
Пожалуйста, найдите детали ниже:
<fo:root xmlns:altova="http://www.altova.com"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions">
Я использовал расширение fop из trunk и включил указанную выше строку вверху XML.
Ниже приведен фрагмент моего кода, который я использовал для создания изогнутой рамки для ячейки.
<fo:table-cell visibility="hidden" padding="0" display-align="center">
<fo:block-container overflow="hidden">
<fo:block text-align="center" fox:border-before-radius-start="7mm"
fox:border-start-radius-before="7mm">
<fo:inline font-family="RonBscRg" font-size="7pt">ee</fo:inline>
</fo:block>
</fo:block-container>
</fo:table-cell>
Пожалуйста помоги.
1 ответ
Важно: чтобы получить закругленные углы, вы должны использовать магистральную (разрабатываемую) версию FOP. Он не работает с последней выпущенной версией (FOP 1.1). Смотрите также http://wiki.apache.org/xmlgraphics-fop/RoundedBorders.
Ствол FOP можно получить, проверив код из репозитория Subversion и скомпилировав его, как описано здесь.
Есть также ночные снимки.
Основная проблема с кодом FO в вопросе состоит в том, что имена свойств радиуса неверны. Смотрите спецификацию на http://xmlgraphics.apache.org/fop/trunk/extensions.html. Также обратите внимание, что в разделе "Ограничения по току" говорится:
Закругленные углы на столах напрямую не поддерживаются. Чтобы установить закругленные углы на уровне стола, стол должен иметь
border-collapse
свойство установлено вseparate
,
Непонятно, как именно вы хотите, чтобы вывод был похож, но со следующим fo:block
вместо того, что в вопросе, вы должны увидеть заметную разницу:
<fo:block text-align="center" border-style="solid"
fox:border-before-start-radius="7mm"
fox:border-before-end-radius="7mm">
<fo:inline font-family="RonBscRg" font-size="7pt">ee</fo:inline>
</fo:block>
Если вы хотите, чтобы все четыре угла были скруглены, просто используйте сокращение fox:border-radius
,