Как создать рамку для каждой страницы в формате PDF, используя FOP (xsl и ftl)? - PullRequest
0 голосов
/ 21 февраля 2019

Я генерирую PDF, используя FOP, и я хочу включить рамку для каждой страницы в PDF.Я использую XSLT 2.0.

Есть ли какой-либо способ или какой-либо атрибут или какие-либо теги для создания границы для каждой страницы в XSL?

1 Ответ

0 голосов
/ 21 февраля 2019

Вы можете добавить атрибут border к элементам fo:region-*padding, если необходимо).


Обратите внимание, что, строго говоря, это не разрешено рекомендацией XSL :

Значения отступы и border-width черты должны быть "0".

, и стандартное поведение FOP должно заканчиваться ошибкой проверки:

SEVERE: Exception javax.xml.transform.TransformerException: 
org.apache.fop.fo.ValidationException: Border and padding for fo:region-body 
"xsl-region-body" should be '0' (See 6.4.14 in XSL 1.1); non-standard values
are allowed if relaxed validation is enabled.  (See position ...)

Однако, поскольку это все-таки общее использованиеcase и другие средства форматирования тоже позволяют это, вы можете запустить FOP с расслабленной проверкой и получить желаемый результат:

  • добавив опцию -r, если вы запускаете FOP из командыстрока
  • с использованием метода FopFactoryBuilder.setStrictFOValidation() в коде Java

Вы по-прежнему получаете предупреждение о нестандартном поведении, но обработка продолжается в обычном режиме:

WARNING: Border and padding for fo:region-body "xsl-region-body" should be '0' 
(See 6.4.14 in XSL 1.1); non-standard values are allowed if relaxed validation
is enabled.  (See position ...)
...