2017-11-06 4 views
1

봉투로 자동 포장되는 문서를 작성 중입니다.n 번째 페이지마다 무언가를 인쇄하십시오.

이 목적을 위해 문서에는 매 5 페이지마다 마지막 페이지에 마커가 있어야합니다.

문제는 AFAIK, XSL이 FO에서 제공 한 < fo : page>에 의존 할 수 없다는 것입니다.

누구나 해결책을 생각할 수 있습니까?

+0

당신이 사용하는 어떤 FO 프로세서? –

+0

fop, 나는 그것을 언급하지 않아서 유감 스럽다는 것을 몰랐다. 그건 그렇고 솔루션을 찾았지만 특정 페이지 수로 제한됩니다. 게시해야합니까? –

+0

FOP에서 생성 된 영역 트리를 조사 할 수 있습니다. (OP 영역 트리 샘플 검색) 중간 중간 형식을 나타냅니다. 여기에는 페이지 객체가 포함되며 영역 트리를 조작하고 형식을 계속하여 마크를 삽입 할 수 있습니다. –

답변

2

내가 할 수있는 최선의 방법은 최대 페이지 수를 처리하기 위해 충분한 수의 반복을 fo:page-sequence-master에 넣어야한다는 것입니다. 작은 스크린 샷을 만드는 위해서

,이 예제는 모든 세 번째 페이지와 마지막 페이지에 표시를 박았 :

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" 
    xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions" 
    font-size="36pt"> 
    <fo:layout-master-set> 
     <fo:simple-page-master master-name="spm" page-width="5in" page-height="5in"> 
      <fo:region-body margin="36pt"/> 
     </fo:simple-page-master> 
     <fo:simple-page-master master-name="marked" page-width="5in" page-height="5in"> 
      <fo:region-body margin="36pt"/> 
      <fo:region-start extent="36pt"/> 
     </fo:simple-page-master> 
     <fo:page-sequence-master master-name="psm"> 
      <fo:repeatable-page-master-alternatives maximum-repeats="2"> 
       <fo:conditional-page-master-reference master-reference="marked" page-position="last"/> 
       <fo:conditional-page-master-reference master-reference="spm"/> 
      </fo:repeatable-page-master-alternatives> 
      <fo:single-page-master-reference master-reference="marked"/> 
      <fo:repeatable-page-master-alternatives maximum-repeats="2"> 
       <fo:conditional-page-master-reference master-reference="marked" page-position="last"/> 
       <fo:conditional-page-master-reference master-reference="spm"/> 
      </fo:repeatable-page-master-alternatives> 
      <fo:single-page-master-reference master-reference="marked"/> 
      <!-- Repeat as often as necessary. --> 
      <fo:repeatable-page-master-alternatives maximum-repeats="2"> 
       <fo:conditional-page-master-reference master-reference="marked" page-position="last"/> 
       <fo:conditional-page-master-reference master-reference="spm"/> 
      </fo:repeatable-page-master-alternatives> 
      <fo:single-page-master-reference master-reference="marked"/> 
     </fo:page-sequence-master> 
    </fo:layout-master-set> 
    <fo:page-sequence master-reference="psm"> 
     <fo:static-content flow-name="xsl-region-start"> 
      <fo:block margin-top="2in"><fo:external-graphic width="100%" src="logo-antenna.svg" content-width="scale-down-to-fit"/></fo:block> 
     </fo:static-content> 
     <fo:flow flow-name="xsl-region-body"> 
      <fo:block break-after="page">1</fo:block> 
      <fo:block break-after="page">2</fo:block> 
      <fo:block break-after="page">3</fo:block> 
      <fo:block break-after="page">4</fo:block> 
      <fo:block>5</fo:block> 
     </fo:flow> 
    </fo:page-sequence> 
</fo:root> 

enter image description here

+0

이것은 내 솔루션에 매우 가깝다. 단 하나의 차이점은 표시된 페이지에도 반복 가능한 페이지 시퀀스를 사용했다는 점이다. 최대 반복 수는 1이고, 필요하지 않더라도이 페이지가 추가 될까봐 두려워하기 때문이다. 친절하고 깨끗한 답변 주셔서 감사합니다! –

관련 문제