7

XSL ドキュメントを使用して PDF を作成しています。インラインとして定義されているスタイルがいくつかあります。それらを外部CSSファイルに移動したいのですが、行き止まりです。

これが私のコードです:

<fo:table border-bottom="solid 2pt #409C94" border-top="solid 2pt #409C94" margin-bottom=".1in" background-color="#E9E9E9" text-align="center"  table-layout="fixed" width="100%" font-size="9pt">
    <fo:table-column column-width="proportional-column-width(100)"/>
    <fo:table-body width="100%" table-layout="fixed">
        <fo:table-row>
            <fo:table-cell text-align="center" padding-top=".5mm" padding-bottom=".5mm">
                <fo:block>Some text is placed here.</fo:block>
            </fo:table-cell>
        </fo:table-row>
    </fo:table-body>
</fo:table>

このドキュメントから削除したいのは、すべてのスタイリング タグです。

border-bottom="solid 2pt #409C94"
border-top="solid 2pt #409C94"
margin-bottom=".1in"
background-color="#E9E9E9"
text-align="center"
table-layout="fixed"
width="100%" font-size="9pt"

それらをCSSファイルに移動することを考えていますが、より良い方法があれば歓迎します.

ありがとう。

4

2 に答える 2

11

Danial Haley から提供された貴重な提案により、私はいくつかの調査を行い、解決策を見つけました。以下、どなたでもご参考に。

スタイルを含むファイル (Styles.xsl など)

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:attribute-set name="CustomStyles">
    <xsl:attribute name="background-color">#BB5588</xsl:attribute>
    <xsl:attribute name="border-bottom">solid 2pt #409C94</xsl:attribute>
    <xsl:attribute name="border-top">solid 2pt #409C94</xsl:attribute>
    <xsl:attribute name="font-size">9pt</xsl:attribute>
</xsl:attribute-set>

スタイルをインポートするメイン ファイル (Main.xsl など)

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:import href="Styles.xsl"/>

<fo:table xsl:use-attribute-sets="CustomStyles" margin-bottom=".1in" text-align="center" table-layout="fixed" width="100%">
    <fo:table-column column-width="proportional-column-width(100)"/>
    <fo:table-body width="100%" table-layout="fixed">
        <fo:table-row>
            <fo:table-cell text-align="center" padding-top=".5mm" padding-bottom=".5mm">
                <fo:block>Some text is placed here.</fo:block>
            </fo:table-cell>
        </fo:table-row>
    </fo:table-body>
</fo:table>

ここで Main.xsl を見るとxsl:include、「スタイルシート」Styles.xsl をインポートした (使用することもできた) ことがわかります。タグfo:tableに を追加しました。VS2010 では、Styles.xsl で定義されたxsl:use-attribute-setsすべての要素にインテリセンスを提供しました。xsl:attribute-set

于 2013-07-09T12:51:15.790 に答える