0

XSLT-FO を使用してレター (pdf) を作成しています。最初のページには、会社のロゴ/画像と、手紙の内容の始まりがあります。他のページにロゴを表示したくないので、repeatable-page-master-alternatives を使用しています。問題は、テキスト ブロック (smf:body) が最初のページから続くのではなく、次のページに繰り返されることです。これがなぜなのかを突き止めるために、インターネットで多くの検索を行いましたが、解決できません。XSL-FO は次のとおりです。

    <xsl:template match="/smf:workItem">                                
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <fo:layout-master-set>

            <fo:simple-page-master master-name="first-page" page-height="29.7cm" page-width="21cm" margin-top="0.5cm"  margin-bottom="1cm" margin-left="1.75cm">
                <fo:region-body margin-right="2cm" margin-top="1.27cm" margin-bottom="1mm" /> 
                <fo:region-before region-name="header-first" extent="0mm" />
                <fo:region-after region-name="footer-first" extent="0mm" />
                <fo:region-end border-top-width="5pt" region-name="right-sidebar" writing-mode="tb-rl" extent="10mm" />                 
            </fo:simple-page-master>

            <fo:simple-page-master master-name="all-pages" page-height="29.7cm" page-width="21cm" margin-top="0.5cm"  margin-bottom="1cm" margin-left="1.75cm">
                <fo:region-body margin-left="0.25cm" margin-right="2cm" margin-top="1.27cm" margin-bottom="1mm" /> 
                <fo:region-before region-name="header-normal" extent="0mm" />
                <fo:region-after region-name="footer-normal" extent="0mm" />                    
            </fo:simple-page-master>        


            <fo:page-sequence-master master-name="document" font-family="Helvetica">
                <fo:repeatable-page-master-alternatives>
                    <fo:conditional-page-master-reference page-position="first" master-reference="first-page"/>
                    <fo:conditional-page-master-reference page-position="any" master-reference="all-pages" />
                </fo:repeatable-page-master-alternatives>
            </fo:page-sequence-master>

            <!--
            <fo:page-sequence-master master-name="document" font-family="Helvetica">
                    <fo:single-page-master-reference master-reference="first-page"/>
                    <fo:repeatable-page-master-reference master-reference="all-pages"/>
            </fo:page-sequence-master>
            -->

        </fo:layout-master-set>     

        <fo:page-sequence master-reference="document">          
            <fo:static-content flow-name="header-first" font-size="10pt">                                               
                <fo:external-graphic src="url('C:\Program Files (x86)\numerointeractive\whitemail\Images\club1830.jpg')" />     
            </fo:static-content>                                    

            <fo:flow flow-name="xsl-region-body">                                           
                <fo:block font-size="10pt" linefeed-treatment="preserve" white-space-collapse="false" white-space-treatment="ignore-if-surrounding-linefeed" wrap-option="wrap">    
                    <xsl:value-of select="smf:body"/>                                                           
                </fo:block>                                                     
            </fo:flow>
        </fo:page-sequence>                                                         
    </fo:root>
</xsl:template>

誰かがこれで私を助けてください。ブロック (smf:body) は、私のレイアウトを定義するページ シーケンスにありますが、何らかの理由でそれが繰り返されます。どんな助けでも大歓迎です。

ありがとう。

ps - 単一/反復可能なページ マスターも使用してみましたが、同じように動作します

4

1 に答える 1

0

最初のページを fo:repeatable-page-master-alternatives 要素に含めずにカバー ページとして作成することができます。例を見てください:

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="Cover" margin="1in" page-height="11in" page-width="8.5in">
      <fo:region-body margin-top="2in"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="StoriesOdd" page-height="11in" page-width="8.5in"
      margin=".5in">
      <fo:region-body margin=".5in"/>
      <fo:region-before region-name="oddHead" extent=".5in"/>
      <fo:region-after region-name="oddFoot" extent=".5in"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="StoriesEven" page-height="11in" page-width="8.5in"
      margin=".5in">
      <fo:region-body margin=".5in"/>
      <fo:region-before region-name="evenHead" extent=".5in"/>
      <fo:region-after region-name="evenFoot" extent=".5in"/>
    </fo:simple-page-master>
    <fo:page-sequence-master master-name="Stories">
      <fo:repeatable-page-master-alternatives>
        <fo:conditional-page-master-reference master-reference="StoriesOdd" odd-or-even="odd"/>
        <fo:conditional-page-master-reference master-reference="StoriesEven" odd-or-even="even"/>
      </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
    <fo:page-sequence-master master-name="CoverPage">
      <fo:single-page-master-reference master-reference="Cover"/>
    </fo:page-sequence-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="CoverPage">
    <fo:flow flow-name="xsl-region-body">
      <fo:block text-align="center" font-weight="bold" font-size="1in"> Cover Page </fo:block>
    </fo:flow>
  </fo:page-sequence>
  <fo:page-sequence master-reference="Stories">
    <fo:static-content flow-name="oddHead">
      <fo:block border-bottom-width="thin" border-bottom-style="solid" border-bottom-color="green"
        font-weight="bold" text-align="outside"> Story Title </fo:block>
    </fo:static-content>
    <fo:static-content flow-name="evenHead">
      <fo:block border-bottom-width="thin" border-bottom-style="solid" border-bottom-color="green"
        font-weight="bold" text-align="outside"> Book of Stories </fo:block>
    </fo:static-content>
    <fo:static-content flow-name="oddFoot">
      <fo:block border-bottom-width="thin" border-bottom-style="solid" border-bottom-color="green"
        font-weight="bold" text-align="outside">
        <fo:page-number/> | </fo:block>
    </fo:static-content>
    <fo:static-content flow-name="evenFoot">
      <fo:block border-bottom-width="thin" border-bottom-style="solid" border-bottom-color="green"
        font-weight="bold" text-align="outside"> | <fo:page-number/>
      </fo:block>
    </fo:static-content>
    <fo:flow flow-name="xsl-region-body">
      <fo:block/>
    </fo:flow>
  </fo:page-sequence>
</fo:root>
于 2013-05-01T10:24:32.453 に答える