2016-07-21 2 views
2

region-before와 region-body 사이에 10mm 공간을 확보하려고합니다. 그러나 나는 그것을 regin-before의 크기에 상대적으로 얻을 수는 없다. 국경 어떻게해야FOP에서 region-before와 region-body 사이의 상대 공간 xslt

Thats how it should be.

이잖아. 한 줄짜리 'Bemerkung'으로 작동합니다. 그러나 바로이 이중 - 또는 신체 아래로 bushed되지 않습니다, 세 줄 지어 도착, 그러나 여기에서 볼 수 있듯이, 동일한 위치에 유지로 :

enter image description here

내 레이아웃 마스터 세트처럼 보이는 그 :

<fo:layout-master-set> 
    <fo:simple-page-master master-name="Stueckliste" 
     margin="{$Innenraender}" page-height="{$SeitenhoeheA4}" page-width="{$SeitenbreiteA4}"> 
     <fo:region-body region-name="xsl-region-body" 
      margin="45mm 0mm 17mm 0mm" /> 
     <fo:region-before extent="80mm" display-align="before" 
      region-name="xsl-region-before" /> 
     <fo:region-after region-name="xsl-region-after" 
      extent="50mm" display-align="after" margin="30mm 0mm 40mm 0mm" /> 
    </fo:simple-page-master> 
</fo:layout-master-set> 

리전 전에 surounding :

<fo:static-content flow-name="xsl-region-before"> 
    ... 
</fo:static-content> 

지역 바디 surounding :

<fo:flow flow-name="xsl-region-body"> 
    ... 
</fo:flow> 

어디서 실수입니까?

+1

나는 힘들 것 같다. 지역 보디의 위쪽 여백에 몇 mm를 더해야하지만 Bemerkung이 단 한 줄이라도이 공간은 항상있을 것이다. 하지만 전문가가 들어가서 어떻게 달성 할 수 있는지 설명 할 수 있습니다. 어떻게 fo 파일을 생성합니까? 발전기가 헤더가 더 크고 몸체가 더 큰 마진을 가져야한다고 이미 추정하는 방법이 있습니까? –

+0

고맙습니다. 헤더가 얼마나 큰지 상관없이 헤더와 본문 사이의 간격을 설정하는 방법이 있어야한다고 생각했습니다. XML을 통해 생성 중입니다. 그래서 Bemerkung이 너무 길어서 2 ~ 3 줄이 필요한지 확인할 수 있습니다. 그러면 지역의 범위를 이전에 설정할 수 있습니다. 그러나 나는 그 일을 더 쉽게 할 수있는 방법이 있어야한다고 생각했습니다. ... 흠 ... – MrOnkelChiller

+1

지역 기반의 레이아웃 모델은 아마 지역을 보았을 것입니다 ... 또 다른 아이디어는 Stückliste 헤더 (그리고 빈 분리)를 어떻게 든 아래의 테이블로 가져 와서 각 페이지의 테이블 헤더로 반복합니다 (완전히 생략하기 전에 영역을 생략 함). –

답변

2

오류는 없습니다. XSL FO에서는 영역의 높이가 고정됩니다. "범위"를 초과하거나 초과하지 않는 콘텐츠를 기반으로 확장 (또는 계약)하지 않습니다. 후속 페이지에서 헤더 영역을 반복해야한다면 예측 된 높이를 결정하고 XSL FO를 생성하는 XSL에서 그 높이를 설정하기 위해 (문자 계산과 같이 제안하는 것과 같은) 무언가를 수행해야합니다. 또는 다양한 "범위"가있는 페이지 템플리트 세트를 설정하고 문자 수에 기초하여 템플리트를 선택할 수 있습니다.

머리글을 첫 번째 페이지와 같은 후속 페이지에서 반복하지 않거나 하나의 페이지 만있는 경우 머리글이없는 내용을 일부 또는 전부 옮길 수 있습니다.