Основная причина, по которой вы все еще получаете чистый PDF, заключается в том, что другие ваши шаблоны никогда не применяются.Я внес пару изменений в вашу таблицу стилей (например, добавление преобразования идентификаторов, изменение select
, удаление ненужного шаблона и исправление написания Document_Number
), и я получаю вывод в PDF.
Модифицированная версия вашего XSL:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output indent="yes"/>
<xsl:template match="node()|@*">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<xsl:template match="SDC_SN_1">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="simple" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm">
<fo:region-body margin-top="3cm"/>
<fo:region-before extent="3cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="simple">
<fo:flow flow-name="xsl-region-body">
<xsl:apply-templates select="General/Document_Number"/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="Document_Number">
<fo:block font-size="12pt" font-family="sans-serif" line-height="15pt" space-after.optimum="3pt" text-align="justify">
<xsl:value-of select="."/>
</fo:block>
</xsl:template>
</xsl:stylesheet>
Я также написал краткую таблицу стилей, которая создает раздел «Общие» и часть раздела «Доставка» (на основе вашегоHTML вывод, который изначально был в вопросе).Он использует немного другой подход.
My XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:apply-templates select="node()|@*"/>
</xsl:template>
<xsl:template match="SDC_SN_1">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page" page-width="8.5in" page-height="11in">
<fo:region-body margin="1in" margin-top="1.5in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body">
<xsl:apply-templates/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="General">
<fo:block font-weight="bold" text-decoration="underline" margin-top=".25in">General</fo:block>
<fo:table margin-top=".25in" margin-bottom=".25in">
<!-- border-style="solid" border-width="1pt" -->
<fo:table-column column-width="25%"/>
<fo:table-column column-width="75%"/>
<fo:table-body>
<fo:table-row>
<xsl:apply-templates select="Document_Number"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Order_Number"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Sell_to_Customer/Name"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Customer_Order_Number"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Customer_Order_Number2"/>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>
<xsl:template match="General/Document_Number">
<fo:table-cell>
<fo:block>Document Number</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="General/Order_Number">
<fo:table-cell>
<fo:block>Order Number</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="Sell_to_Customer/Name">
<fo:table-cell>
<fo:block>Name</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="General/Customer_Order_Number">
<fo:table-cell>
<fo:block>Customer Reference</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="General/Customer_Order_Number2">
<fo:table-cell>
<fo:block>Purchase Order</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="Shipping">
<fo:block font-weight="bold" text-decoration="underline" margin-top=".25in">Shipping</fo:block>
<fo:table margin-top=".25in" margin-bottom=".25in">
<!-- border-style="solid" border-width="1pt" -->
<fo:table-column column-width="25%"/>
<fo:table-column column-width="75%"/>
<fo:table-body>
<fo:table-row>
<xsl:apply-templates select="Ship_to_Customer/Name"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Ship_to_Customer/Additional_Name_Info"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Ship_to_Customer/Contact_Person"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Ship_to_Customer/Address"/>
</fo:table-row>
<fo:table-row>
<xsl:apply-templates select="Ship_to_Customer/Additional_Address_Info"/>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>
<xsl:template match="Ship_to_Customer/Name">
<fo:table-cell>
<fo:block>Name</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="Ship_to_Customer/Additional_Name_Info">
<fo:table-cell>
<fo:block>Name 2</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="Ship_to_Customer/Contact_Person">
<fo:table-cell>
<fo:block>Contact</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="Ship_to_Customer/Address">
<fo:table-cell>
<fo:block>Address</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
<xsl:template match="Ship_to_Customer/Additional_Address_Info">
<fo:table-cell>
<fo:block>Address 2</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>: <xsl:value-of select="."/></fo:block>
</fo:table-cell>
</xsl:template>
</xsl:stylesheet>
Дайте мне знать, если вам нужна какая-либо другая помощь с таблицей стилей или у вас есть вопросы по поводумой.