2014-02-28 38 views
0

我正在生成像标准印刷书籍一样设置的文档,每一章从正面和右面页面开始。第一页有它自己的页面主页。最近我还被要求特别处理最后一页。我可以通过强制执行前一页面序列的页数(我一直在做的)或通过在章节中使用break-before来实现右手启动。不幸的是,无论哪种技术有时会在序列中添加一个空白页面,该页面将成为该序列的实际最后一页或第一页(也就是说,我的最后一页或带有内容的第一页未获得正确的页面主页)。我不认为有办法设置conditional-page-master-references来允许这样做,因为我不知道一个章节何时需要一个空白页面,什么时候不需要。操纵带内容的第一页或最后一页

我的想法是我无法将页面添加到章节的页面序列,而是在每个章节之间创建页面序列,这些页面序列会为左侧页面定义单个空白的条件页面主页。不幸的是,似乎没有条件满足时,格式化程序(Antenna House 6.0)无论如何都输出空白页。

所以,我的问题是,有谁知道有条件地生成一个页面的方式,允许在某些情况下,不会生成页面?我不知道什么,如果有的话,在这里发布代码会很有用,但我很乐意发布任何可以帮助我获得答案的东西。

一段可能有用的代码:我的空白页面页面序列主页。

<fo:page-sequence-master master-name="blank-verso"> 
    <fo:repeatable-page-master-alternatives> 
     <fo:conditional-page-master-reference master-reference="blankpage" odd-or-even="even" maximum-repeats="1"/> 
    </fo:repeatable-page-master-alternatives> 
</fo:page-sequence-master> 
+0

我可能已经找到了使用最大重复的解决方案。仍然需要测试更多,但会发布答案,如果它的工作。不希望任何人花时间在此(除非你有一个真正想要分享的精彩解决方案)。 – Christina

回答

1

我想我使用最大重复来解决这个问题。我使用的方法如下:

<fo:page-sequence-master master-name="main"> 
    <fo:repeatable-page-master-alternatives maximum-repeats="2"> 
     <fo:conditional-page-master-reference master-reference="blankpage" 
               blank-or-not-blank="blank" 
               page-position="first"/> 
     <fo:conditional-page-master-reference master-reference="first-main-recto" 
               odd-or-even="odd" 
               page-position="any"/> 
     <fo:conditional-page-master-reference master-reference="body-main-verso" 
               odd-or-even="even" 
               page-position="rest"/> 
     <fo:conditional-page-master-reference master-reference="last-main-verso" 
               odd-or-even="even" 
               page-position="last"/> 
    </fo:repeatable-page-master-alternatives> 
    <fo:repeatable-page-master-alternatives> 
     <fo:conditional-page-master-reference master-reference="blankpage" blank-or-not-blank="blank"/> 
     <fo:conditional-page-master-reference master-reference="last-main-verso" 
               odd-or-even="even" 
               page-position="last"/> 
     <fo:conditional-page-master-reference master-reference="last-main-recto" 
               odd-or-even="odd" 
               page-position="last"/> 
     <fo:conditional-page-master-reference master-reference="first-main-recto" 
               odd-or-even="even" 
               page-position="first"/> 
     <fo:conditional-page-master-reference master-reference="first-main-recto" 
               odd-or-even="odd" 
               page-position="first"/> 
     <fo:conditional-page-master-reference master-reference="body-main-verso" odd-or-even="even"/> 
     <fo:conditional-page-master-reference master-reference="body-main-recto" odd-or-even="odd"/> 
    </fo:repeatable-page-master-alternatives> 
    </fo:page-sequence-master> 

哪里需要我的简单页面的主人节和我的章节都以这样的方式定义的最后主要和第一主页大师中定义的他们从一个空白页面开始(如果有必要的话)(而不是以一个结束)并且force-page-count被设置为无效的。

我实际上可能有比我需要的条件更多的条件,但是我犯了安全问题。这个想法是,第一个可重复使用的页面主选项最多可以使用两次。如果我的章节从空白页开始,那么将在第一个(空白)页面上使用'空白'页面主页,然后在第二页上使用我的'第一个'页面主页(这是第一页内容)。如果我的章节没有从空白页面开始,则将使用'第一'页面主页,然后使用'主页'页面主页。 '最后'页面主人也被定义为2页章节的奇怪情况。在第二页之后,第二个可重复页面母版替代品将会启动,并在本章的其余部分应用预期的母版。似乎正在工作,并认为它可能对其他人有用,因为“最大重复”似乎不是一个讨论的话题。

0

您可以在您的conditional-page-master-reference中设置页面条件。例如:

<fo:page-sequence-master master-name="recto-verso-document"> 
    <fo:repeatable-page-master-alternatives> 
     <fo:conditional-page-master-reference odd-or-even="even" master-reference="page-even" blank-or-not-blank="not-blank"/> 
     <fo:conditional-page-master-reference blank-or-not-blank="not-blank" odd-or-even="odd" page-position="first" master-reference="first-page-odd"/> 
     <fo:conditional-page-master-reference blank-or-not-blank="not-blank" odd-or-even="odd" page-position="last" master-reference="last-page-odd"/> 
     <fo:conditional-page-master-reference odd-or-even="odd" master-reference="page-odd" blank-or-not-blank="not-blank"/> 
     <fo:conditional-page-master-reference blank-or-not-blank="blank" master-reference="alternate-blank"/> 
    </fo:repeatable-page-master-alternatives> 
</fo:page-sequence-master> 

设置page-position="last"可能是您需要的。

+0

问题在于'实际'最后一页是空白页面。没有直接的方法来处理'最后一页如果最后一页是空白'。不过,我想我可能已经找到了一个使用多重可重复集合的解决方案,这个解决方案我之前并不完全了解。不过,仍然在测试它。感谢您的输入! – Christina

+0

所以你需要知道下一页是空白的吗? – PhillyNJ

+0

那么,任何章节都可以拥有自然结束于偶数页或奇数页的内容。但是每一章都必须从一个奇怪的页面开始,因此在某些情况下会添加一个空白页面,而在其他情况下则不会。因此,“最后一页”有时只是包含内容的最后一页,在处理过程中无法知道是否会出现这种情况。我可以查看区域树,然后返回到XSLFO,但这绝对是最后一招。我认为最大限度的重复将允许我在章节的开始处留下空白,然后像第一页那样对待第2页。手指交叉。 – Christina

相关问题