Кривые границы для динамических таблиц свободного потока в 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,

Другие вопросы по тегам