2017-01-30 9 views
0

Я использую этот код, чтобы добавить фоновое изображение в мой файл:Использование текста в качестве фона

<fo:block-container absolute-position="absolute" 
         top="-1cm" left="-3cm" width="26cm" height="29.7cm" 
         background-image="Pictures/afbeelding.png"> 
         <fo:block/> 
</fo:block-container> 

Этот код работает отлично. Теперь я хочу попробовать что-то новое.

Можно ли добавить строку в качестве фона? Могу ли я также определить положение строки? Я хочу, чтобы эта строка была расположена по диагонали от верхнего левого угла до нижнего правого.

Я искал решение, но не нашел его.

+1

Если вы используете apache fop, я думаю, вы можете использовать изображение svg в качестве backgroud, где вы можете легко сохранить «String» –

+0

@StefanHegny Thx, не знаю, возможно ли это, но я взгляну на него! – user3356007

+1

Посмотрите на http://stackoverflow.com/questions/38012480/setting-xsl-fo-background-image-from-embedded-svg для использования svg в качестве фонового изображения. –

ответ

0

Да, вы можете использовать текст в качестве фона. Для того, чтобы убедиться, что фон текст отображается в виде фона, а не на верхней части основного текста:

  • место текст в одном из static-content кадров
  • использовать block-container с absolute-position, чтобы поместить контейнер под тело кадра

<fo:static-content flow-name="inside"> 
 
    <fo:block-container width="170mm" absolute-position="absolute" top="100mm" left="20mm"> 
 
     <fo:block text-align="center" font-size="45pt" font-weight="bold" axf:transform="rotate(-45deg)"> 
 
    \t <xsl:text>Watermark text</xsl:text> 
 
     </fo:block> 
 
    </fo:block-container> 
 
</fo:static-content>

  • в вашем fo:simple-page-master, порядок регионов определяет, какой контент отображается сверху. Регионы обрабатываются по порядку, более поздние регионы будут нарисованы поверх более ранних. Поместите region-body последние в списке, и он будет нарисован поверх всех остальных:

<fo:simple-page-master master-name="odd"> \t \t \t 
 
    \t <fo:region-before/> 
 
    \t <fo:region-after/> 
 
    \t <fo:region-start/> 
 
    \t <fo:region-end/> 
 
    \t <fo:region-body/> 
 
    </fo:simple-page-master>

Если вы используете Antennahouse, вы можете вращать ВКИ: блок диагональной ориентации : axf:transform="rotate(-45deg)"

Преимущество использования этого подхода в сравнении с помещением текста в элемент SVG: в SVG текст не может содержать более одной строки. Каждая строка должна стать отдельным элементом SVG, и вам нужно разбить текст вручную. Используя мой метод, текст заканчивается в fo: block, который поддерживает разрывы строк, перенос и т. Д.

+0

Htx i Попробую это решение также, я также использовал SVG, это прекрасно работает! – user3356007

+0

Я тестирую ваше решение так, чтобы я мог голосовать за ваш ответ, но еще не успел. Можете ли вы привести пример кода? и я не использую Antennahouse – user3356007

+0

Я добавил соответствующие кодовые блоки. – Hobbes

 Смежные вопросы

  • Нет связанных вопросов^_^