Это мой первый опыт печати XSL-FO.
Существует 2 шаблона, каждый из которых имеет свой собственный макет. Xsl
Необходимо изменить нумерацию страниц второго шаблона, чтобы преемник первого.
Пример
шаблон 1 имеет 4 страницы, затем шаблон 2 должен начинаться с номера страницы. 5 не 1!
У меня есть идеи, но они все еще не работают; это создать третий шаблон, который вызывает эти 2 шаблона
<xsl:template>
<xsl:call-template name="templateOne" />
<!-- <xsl:block break-after="page"/> -->
<xsl:call-template name="templateTwo" />
<!-- <xsl:block break-after="page"/> -->
</xsl:template>
Макет templateOne:
<xsl:template match="/">
<fo:root>
<xsl:call-template name="LayoutMasterSet"/>
<xsl:variable name="TheVeryLastPage" select="."/>
<xsl:choose>
<xsl:when test="$titel='Anwendungsprotokoll'">
<fo:page-sequence master-reference="landscape" initial-page-number="1" format="1">
<!-- Kopfzeile -->
<xsl:call-template name="StandardKopfzeile">
<xsl:with-param name="TheVeryLastPage"><xsl:value-of select="$TheVeryLastPage"/></xsl:with-param>
</xsl:call-template>
<!-- Fusszeile -->
<xsl:call-template name="StandardFusszeile">
<xsl:with-param name="TheVeryLastPage"><xsl:value-of select="$TheVeryLastPage"/></xsl:with-param>
</xsl:call-template>
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="8pt" line-height="10pt">
<xsl:apply-templates select="/*"/>
</fo:block>
<fo:block id="{generate-id($TheVeryLastPage)}"/>
</fo:flow>
</fo:page-sequence>
</xsl:when>
<xsl:otherwise>
<fo:page-sequence master-reference="default-pages" initial-page-number="1" format="1">
<!-- Kopfzeile -->
<xsl:call-template name="StandardKopfzeile">
<xsl:with-param name="TheVeryLastPage"><xsl:value-of select="$TheVeryLastPage"/></xsl:with-param>
</xsl:call-template>
<!-- Fusszeile -->
<xsl:call-template name="StandardFusszeile">
<xsl:with-param name="TheVeryLastPage"><xsl:value-of select="$TheVeryLastPage"/></xsl:with-param>
</xsl:call-template>
<fo:flow flow-name="xsl-region-body">
<fo:block font-size="8pt" line-height="10pt">
<xsl:apply-templates select="/*"/>
</fo:block>
<fo:block id="{generate-id($TheVeryLastPage)}"/>
</fo:flow>
</fo:page-sequence>
</xsl:otherwise>
</xsl:choose>
</fo:root>
</xsl:template>
Макет templateTwo:
<xsl:template match="/">
<fo:root xsl:use-attribute-sets="font.arial.8.normal.black">
<xsl:call-template name="LayoutMasterSet"/>
<xsl:variable name="TheVeryLastPage" select="."/>
<fo:page-sequence master-reference="default-pages" initial-page-number="1" format="1">
<xsl:call-template name="StandardHeader"/>
<xsl:call-template name="GeneralFooter">
<xsl:with-param name="TheVeryLastPage">
<xsl:value-of select="$TheVeryLastPage"/>
</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates select="/*"/>
</fo:page-sequence>
</fo:root>
</xsl:template>
<!-- ++++++++++++++++++++++++++++++++++Layout Master Set+++++++++++++++++++++++++++++++++++++++++++++ -->
<xsl:template name="LayoutMasterSet">
<fo:layout-master-set>
<fo:simple-page-master master-name="any-page" page-height="297mm" page-width="210mm" margin-top="1.5cm" margin-bottom="1.5cm" margin-left="1.5cm" margin-right="1.5cm">
<fo:region-body margin-top="2cm" margin-bottom="2cm" column-count="{$columns}"/>
<fo:region-before extent="2cm" region-name="region-before"/>
<fo:region-after extent="2cm" region-name="region-after"/>
</fo:simple-page-master>
<fo:page-sequence-master master-name="default-pages">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference page-position="any" master-reference="any-page"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
</fo:layout-master-set>
</xsl:template>
Эта идея не это дает мне:
saving .xsl. <anonymous development build> javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: "{http://www.w3.org/1999/XSL/Format}table" is not a valid child of "fo:page-sequence"!
ERROR |17:33:05,752|DefaultExceptionHandler.logException:75 (WorkerThread 17:31:48)[-1] TRANSFORMATION_ERROR [] <anonymous development build>
de.vodafone.core.exception.BadProcessingException: [-1] TRANSFORMATION_ERROR []
at de.vodafone.app.epos.shared.print.fop.FopPrintService.addToPageable(FopPrintService.java:165)
at de.vodafone.app.epos.shared.print.fop.FopPrintService.print(FopPrintService.java:78)
at de.vodafone.app.epos.shared.print.fop.PrintServiceDelegator.print(PrintServiceDelegator.java:53)
at de.vodafone.app.epos.shared.print.activity.AbstractPrintAgent.execute(AbstractPrintAgent.java:213)
at de.vodafone.app.epos.shared.activity.ActivityManager.execute(ActivityManager.java:78)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderFacade.executeActivities(AbstractOrderFacade.java:210)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.SingleCustomerOrderFacade.handleAfterSave(SingleCustomerOrderFacade.java:101)
at de.vodafone.app.epos.client.plugin.fixednet.activation.mvc.FNActivationFacade.handleAfterSave(FNActivationFacade.java:370)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderFacade.save(AbstractOrderFacade.java:335)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderFacade.save(AbstractOrderFacade.java:298)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderFacade.send(AbstractOrderFacade.java:117)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderController.send(AbstractOrderController.java:943)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderController.onSend(AbstractOrderController.java:861)
at de.vodafone.app.epos.client.plugin.order.manager.common.presentation.AbstractOrderController$10.doExecuteCommand(AbstractOrderController.java:1258)
at de.vodafone.app.epos.client.framework.ui.action.AbstractWidgetActionUIJob.execute(AbstractWidgetActionUIJob.java:45)
at de.vodafone.app.epos.client.framework.ui.action.RunnableBuilder$CommandRunnable.run(RunnableBuilder.java:196)
at de.vodafone.app.epos.client.framework.ui.action.AbstractUIJob.run(AbstractUIJob.java:50)
at EDU.oswego.cs.dl.util.concurrent.QueuedExecutor$RunLoop.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: "{http://www.w3.org/1999/XSL/Format}table" is not a valid child of "fo:page-sequence"! (Siehe Position 17:276)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:469)
at de.vodafone.app.epos.shared.print.fop.FopPrintService.addToPageable(FopPrintService.java:156)
... 18 more
Caused by: org.apache.fop.fo.ValidationException: "{http://www.w3.org/1999/XSL/Format}table" is not a valid child of "fo:page-sequence"! (Siehe Position 17:276)
at org.apache.fop.events.ValidationExceptionFactory.createException(ValidationExceptionFactory.java:38)
at org.apache.fop.events.EventExceptionManager.throwException(EventExceptionManager.java:54)
at org.apache.fop.events.DefaultEventBroadcaster$1.invoke(DefaultEventBroadcaster.java:175)
at com.sun.proxy.$Proxy1.invalidChild(Unknown Source)
at org.apache.fop.fo.FONode.invalidChildError(FONode.java:534)
at org.apache.fop.fo.FONode.invalidChildError(FONode.java:517)
at org.apache.fop.fo.pagination.PageSequence.validateChildNode(PageSequence.java:147)
at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.startElement(FOTreeBuilder.java:267)
at org.apache.fop.fo.FOTreeBuilder.startElement(FOTreeBuilder.java:171)
at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1020)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:452)
... 19 more
Потому что я не тот, кто пишет эти огромные шаблоны, я не смог найти неверное расположение fo: table внутри fo: page-sequence
Более того, номер страницы не распространяется. Я думаю определить параметр, который изначально на 1 и установлен последней страницей templateOne, будет увеличен на 1 и инициализирован на первой странице шаблона 2 сразу после исправления предыдущего исключения формирования.
Ваша помощь действительно ценится Большое спасибо Мариам