Модификация файла layout-masters.xsl в исходном плагине не отображается в выходном файле PDF - PullRequest
1 голос
/ 22 апреля 2019

Я внес изменения в layout-masters.xsl и добавил layout-masters.xsl в catalog.xml.Однако изменение не отображается в выходном PDF-файле.Как я могу заставить его распознавать модификацию?

Если я напрямую изменю layout-masteres в org.dita.pdf2, модификация появится в выходном файле PDF.Следовательно, похоже, что layout-masters-attr.xsl работает правильно, но почему-то fo не ссылается на layout-masteres.xsl в моем плагине.

Файл layout-masteres.xsl:

<!-- First page-->
<fo:simple-page-master master-name="front-matter-first" xsl:use-attribute-sets="simple-page-master">
    <fo:region-body xsl:use-attribute-sets="region-body.first"/>
    <fo:region-before region-name="first-body-header" xsl:use-attribute-sets="region-before.first"/>
    <fo:region-after region-name="first-body-footer" xsl:use-attribute-sets="region-after"/>
</fo:simple-page-master>

<fo:simple-page-master master-name="front-matter-last" xsl:use-attribute-sets="simple-page-master">
    <fo:region-body xsl:use-attribute-sets="region-body.first"/>
    <fo:region-before  region-name="last-frontmatter-header" xsl:use-attribute-sets="region-before.first"/>
    <fo:region-after region-name="last-frontmatter-footer" xsl:use-attribute-sets="region-after"/>
</fo:simple-page-master>

layout-masteres-attrs.xsl файл:

<!--first page without header (pale blue) -->
<xsl:attribute-set name="region-body.first">
  <xsl:attribute name="margin-top">
    <xsl:value-of select="$page-margin-top-first"/>
  </xsl:attribute>
<xsl:attribute name="margin-bottom">
<xsl:value-of select="$page-margin-bottom"/>
</xsl:attribute>
<xsl:attribute name="{if ($writing-mode = 'lr') then 'margin-left' else 'margin-right'}">
<xsl:value-of select="$page-margin-inside"/>
</xsl:attribute>
<xsl:attribute name="{if ($writing-mode = 'lr') then 'margin-right' else 'margin-left'}">
    <xsl:value-of select="$page-margin-outside"/>
</xsl:attribute>
<xsl:attribute name="background-color">#84f9ff</xsl:attribute>
</xsl:attribute-set>

Файл catalog.xml:

<?xml version='1.0' encoding='utf-8'?>
<catalog prefer="system" xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
    <uri name="cfg:fo/attrs/custom.xsl" uri="fo/attrs/custom.xsl" />
    <uri name="cfg:fo/xsl/custom.xsl" uri="fo/xsl/custom.xsl" />
    <uri name="cfg:fo/font-mappings.xsl" uri="fo/font-mappings.xsl" />
    <uri name="cfg:fo/layout-masters.xsl" uri="fo/layout-masters.xsl" />
</catalog>

1 Ответ

1 голос
/ 22 апреля 2019

Файл catalog.xml настройки может перенаправлять только ограниченное количество XSLT (и все возможные перенаправления закомментированы в catalog.xml). Таким образом, вы не можете просто добавить новое отображение для определенного документа XSLT и предположить, что оно будет работать. В вашем случае вы должны добавить перезаписанные шаблоны xsl: непосредственно в таблицу пользовательских стилей "fo / xsl / custom.xsl".

...