#xml #xslt #margin #xsl-fo #apache-fop
#xml #xslt #поле #xsl-fo #apache-fop
Вопрос:
Я редактирую документ XSL, который управляет форматом вывода при преобразовании XML в PDF. В макете страницы существует существующее левое поле с использованием тега «fo: region-body». Макет устанавливается в качестве основной ссылки в элементе «fo: page-sequence», который содержит поток и блок для моей таблицы. Я бы хотел, чтобы моя таблица переопределяла поле. Я попытался использовать отрицательное поле для таблицы (я пробовал это как для «таблицы», так и для «тела таблицы», но только содержимое таблицы сдвинулось влево. Граница таблицы осталась на том же месте.
Может ли кто-нибудь указать мне правильное направление?
Комментарии:
1. Вы должны опубликовать короткий пример XSL FO, чтобы другие могли помочь. Тем не менее, вы, вероятно, могли бы поместить структуру в блок / блок-контейнер и установить отступы / поля для этого, а не для таблицы.
Ответ №1:
Вероятно, вам нужно окружить структуру и установить для нее поле. Вот пример:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
font-family="Helvetica" font-size="11pt">
<fo:layout-master-set>
<fo:simple-page-master margin-top=".5in" margin-left="1in" margin-bottom="1in"
margin-right="1in" page-width="8.5in" page-height="11in" master-name="first">
<fo:region-body margin-top="0pt" margin-bottom="0pt"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="first">
<fo:flow flow-name="xsl-region-body">
<fo:block>Table not in left margin space</fo:block>
<fo:block>
<fo:table width="100%">
<fo:table-column/>
<fo:table-body>
<fo:table-row>
<fo:table-cell border-top="1pt solid black" border-bottom="1pt solid red" border-left="1pt solid green" border-right="1pt solid orange" text-align="center">
<fo:block> Center Me </fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
<fo:block>Table in left margin space</fo:block>
<fo:block margin-left="-0.75in">
<fo:table width="100%">
<fo:table-column/>
<fo:table-body>
<fo:table-row>
<fo:table-cell border-top="1pt solid black" border-bottom="1pt solid red" border-left="1pt solid green" border-right="1pt solid orange" text-align="center">
<fo:block> Center Me </fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Это приводит к следующему: