2010-12-07 2 views
1

페이지의 수는 이며 정적 컨텐츠가 달라지는 을 생성하는 것에 대한 질문이 있습니다. 즉 첫 번째 페이지에는 다른 페이지 헤더 형식이 필요하고 후속 페이지에는 다른 형식이 필요합니다.XSLT의 가변적 또는 조건부 정적 컨텐츠

두 개의 개별 마스터 페이지 중에서 선택하려면 fo : 조건부 페이지 마스터 참조을 사용했습니다. 하지만 마스터 페이지에있는 정적 컨텐츠의 조건을 지정할 수 없습니다.

가와 같은 교류 또는 조건 정전기 내용을 설명 할 수 있는가 : 즉, 정의에 의해 정적 컨텐츠 (내가 원하는 바가 아니다)

내 질문은 내 모든 페이지에 적용 XSL 페이지 모델 (단순 페이지 마스터).

감사합니다, Srivatsa

+0

당신은 여기 최소화 테스트를 게시 할 수 있을까요? – khachik

답변

2

수정할 수 있습니다 fo:static-contentfo:page-sequence에 당신이 출력. fo:markerfo:retrieve-marker을 사용하면 특정 페이지에 포함 된 정보를 기반으로 정적 컨텐츠를 설정할 수 있습니다. 예를 들어, revdate 속성을 만날 때마다 fo:marker을 출력 할 수 있습니다. fo:static-content에서 해당 마커의 값을 검색합니다. fo:marker

예 : fo:retrieve-marker

<fo:marker marker-class-name="footerRevdate"> 
    <xsl:value-of select="@revdate"/> 
</fo:marker> 

예 : 사용자가 직접 정적 컨텐츠를 설정할 수 있습니다

<fo:static-content flow-name="some_flow"> 
    <fo:block> 
    <fo:retrieve-marker retrieve-class-name="footerRevdate" retrieve-boundary="page-sequence" retrieve-position="last-starting-within-page"/> 
    </fo:block> 
</fo:static-content> 

. 이 콘텐츠는 해당 페이지 시퀀스의 모든 페이지에 적용됩니다. 예를 들어, 속성 chapnbr0과 같으면 페이지 번호 앞에 접두사를 출력 할 수 있습니다 (내용은 각 페이지 시퀀스마다 달라질 수 있음).

다음
<xsl:template match="chapter"> 
    <xsl:variable name="page-prefix"> 
     <xsl:choose> 
     <xsl:when test="number(@chapnbr)=0">INTRO-</xsl:when> 
     <xsl:otherwise/> 
     </xsl:choose> 
    </xsl:variable> 

    <fo:page-sequence master-reference="Body" font-family="Arial" font-size="10pt" force-page-count="even"> 
     <fo:static-content flow-name="Even_Page_regionafter"> 
     <fo:block> 
      <xsl:value-of select="concat('Page ',$page-prefix)"/><fo:page-number/> 
     </fo:block> 
     </fo:static-content> 
     <fo:flow flow-name="xsl-region-body"> 
     <fo:block> 
      <xsl:apply-templates/> 
     </fo:block> 
     </fo:flow> 
    </fo:page-sequence> 

    </xsl:template> 
0

당신이 가서 ....

<fo:layout-master-set> 
<fo:simple-page-master fo:master-name="Letter Page" fo:page-width="215.9mm" fo:page-height="279.4mm"> 
<fo:region-body fo:region-name="xsl-region-body" fo:background-color="rgb(204,255,255)" fo:margin="50mm 17.78mm 17.78mm 17.78mm"/> 
<fo:region-after fo:region-name="xsl-region-after" fo:extent="17.78mm"/> 
<fo:region-start fo:region-name="xsl-region-start" fo:extent="17.78mm"/> 
<fo:region-end fo:region-name="xsl-region-end" fo:extent="17.78mm"/> 
<fo:region-before fo:region-name="xsl-region-before" fo:extent="0.7in"/></fo:simple-page-master> 
<fo:simple-page-master fo:master-name="A4" fo:page-height="297.180mm" fo:page-width="210.82mm"> 
<fo:region-body fo:region-name="xsl-region-body" fo:background="rgb(255,255,153)" fo:margin="0.7in"/> 
<fo:region-before fo:region-name="A4Header" fo:extent="0.7in" fo:display-align="after"/> 
<fo:region-after fo:region-name="xsl-region-after" fo:extent="0.7in"/> 
<fo:region-start fo:region-name="xsl-region-start" fo:extent="0.7in"/> 
<fo:region-end fo:region-name="xsl-region-end" fo:extent="0.7in"/> 
</fo:simple-page-master> 

<!--This complex master page selects a Letter Page for the first page and the A4 page for the rest of the pages --> 
<fo:page-sequence-master fo:master-name="ComplexMaster1"> 
<fo:repeatable-page-master-alternatives fo:maximum-repeats="no-limit"> 
<fo:conditional-page-master-reference fo:master-reference="Letter Page" fo:page-position="first"/> 
<fo:conditional-page-master-reference fo:master-reference="A4"/> 
</fo:repeatable-page-master-alternatives> 
</fo:page-sequence-master> 
</fo:layout-master-set>