图像未在 PDF 输出中显示 - XSL:FO

问题描述 投票:0回答:1

我正在致力于TEI Publisher平台上历史资源的数字化工作。用户可以下载 xml 格式和 pdf 格式的文本。但对于 pdf 输出,图像没有出来。

在xml文件中,图像是这样编码的:

<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?><?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng" type="application/xml"
    schematypens="http://purl.oclc.org/dsdl/schematron"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xml:id="" rendition="tei:teisimple" xml:lang="es">
    <teiHeader xml:lang="en">
        <fileDesc>
            <titleStmt>
                <title></title>
                <author></author>
                <editor role="#scholarly"></editor>
                <editor role="#technical" xml:id="">r</editor>
                <editor role="#technical" xml:id=""></editor>
            </titleStmt>
            <editionStmt>
                <edition n="1.0.0">
                    <date type="digitizedEd" when="2023-06-22">2023-06-22</date>
                </edition>
            </editionStmt>
            <publicationStmt>
                <publisher xml:id="pubstmt-publisher">
                    <orgName></orgName>
                    <ref type="url" target=/</ref>
                </publisher>
                <distributor xml:id="pubstmt-distributor">
                    <orgName></orgName>
                    <ref type="url" target=""></ref>
                </distributor>
                <pubPlace role="digitizedEd" xml:id="pubstmt-pubplace">  </pubPlace>
                <availability xml:id="pubstmt-availability">
                    <licence target="https://creativecommons.org/licenses/by/4.0" n="cc-by">
                        <p xml:id="p_ffjaztskfd">Creative
                                Commons Attribution 4.0 International (CC BY 4.0)</ref>.</p>
                    </licence>
                </availability>
                <date type="digitizedEd" when="2024-02-15">2024-02-15</date>
            </publicationStmt>
            <seriesStmt xml:id="seriesStmt">
                <title level="s"</title>
                <title level="j"></title>
                <editor xml:id="TD">
                    <persName ref="gnd:" full="yes">
                        <surname full="yes"></surname>, <forename full="yes"></forename>
                    </persName>
                </editor>
                <editor xml:id="MPMQ">
                    <persName>
                        <surname full="yes"></surname>, <forename full="yes">r</forename>
                    </persName>
                </editor>
            </seriesStmt>
            <sourceDesc>
                <p></p>
                <p> <ref source="">https://dch.hypotheses.org.</ref>
                </p>
            </sourceDesc>
        </fileDesc>
        <encodingDesc xml:lang="es">
            <classDecl>
                <taxonomy>
                    <desc></desc>
                    <category xml:id="">
                        <catDesc></catDesc>
                    </category>
                    <category>
                        <desc></desc>
                        <category xml:id="">
                            <catDesc></catDesc>
                        </category>
                        <category xml:id="">
                            <catDesc></catDesc>
                        </category>
                        <category xml:id="">
                            <catDesc></catDesc>
                        </category>
                        <category xml:id="">
                            <catDesc></catDesc>
                        </category>
                        <category xml:id="">
                            <catDesc></catDesc>
                        </category>
                    </category>
                </taxonomy>
            </classDecl>
        </encodingDesc>
        <profileDesc>
            <textClass>
                <catRef target=""/>
                <keywords scheme="palabras-clave" xml:lang="es">
                    <list>
                        <item></item>
                        <item></item>
                        <item></item>
                        <item></item>
                        <item></item>
                    </list>
                </keywords>
            </textClass>
        </profileDesc>
        <revisionDesc>
            <listChange>
                <change when="" who="">Initial Encoding<date></date>
                </change>
            </listChange>
        </revisionDesc>
    </teiHeader>
    <text>
        <front>
            <titlePage>
                <docTitle>
                    <titlePart><note n="*" place="end" xml:id="footnote-DCH"></note>
                    </titlePart>
                </docTitle>
                <docAuthor><note n="**" place="end" xml:id="footnote-author"/>
                </docAuthor>
            </titlePage>
        </front>
        <body>
            <div n="1">
                <head>1. Introducción</head>
                <p></p>
...
             <div n="6">
                <head>6. </head>
                <p> <term></term> .</p>
                        <graphic url="../dch/resources/images/palio_imagem.png"/>

我写的master.fo.xml:

<fo:layout-master-set xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:simple-page-master master-name="page-left" page-height="297mm" page-width="210mm" margin-bottom="10mm" margin-top="10mm" margin-left="36mm" margin-right="18mm">
        <fo:region-body margin-bottom="10mm" margin-top="16mm"/>
        <fo:region-before region-name="head-left" extent="10mm"/>
    </fo:simple-page-master>
    <fo:simple-page-master master-name="page-right" page-height="297mm" page-width="210mm" margin-bottom="10mm" margin-top="10mm" margin-left="18mm" margin-right="36mm">
        <fo:region-body margin-bottom="10mm" margin-top="16mm"/>
        <fo:region-before region-name="head-right" extent="10mm"/>
    </fo:simple-page-master>
    <fo:page-sequence-master master-name="page-content">
    <xsl:choose>
    <xsl:when test="graphic">
    <fo:external-graphic width="auto" height="auto" content-width="scale-to-fit" content-height="scale-to-fit" src="{$graphic}"/>
     </xsl:when>
      <xsl:otherwise>
      <fo:block>dont found it.</fo:block>
      </xsl:otherwise>
      </xsl:choose>
        <fo:repeatable-page-master-alternatives>
            <fo:conditional-page-master-reference master-reference="page-right" odd-or-even="odd"/>
            <fo:conditional-page-master-reference master-reference="page-left" odd-or-even="even"/>
        </fo:repeatable-page-master-alternatives>
    </fo:page-sequence-master>
</fo:layout-master-set>

您知道为什么图像没有打印出来吗?非常感谢。
TEI Publisher 的存储库位于:https://github.com/eeditiones/tei-publisher-app

我尝试了另一个“css media print”命令,但没有成功。

css pdf xslt xsl-fo
1个回答
0
投票

正如 @StefanHegny 指出的,您的 XSL-FO 的结构不正确。

XSL 1.1 建议中的 XSL-FO 文档的结构图是:

Pagination tree structure from XSL 1.1 Recommendation

文档元素是

fo:root
。图中显示的一些元素是可选的。您的内容位于
fo:flow
中的
fo:page-sequence
内。

此外,

fo:external-graphic
是一个内联FO,因此它应该位于
fo:block
元素内,而不仅仅是
fo:flow
元素的子元素。

您可以在 Antenna House 的“XSL-FO 示例集合”中找到 XSL-FO 的使用示例,网址为 https://www.antennahouse.com/xsl-fo-samples。 您可以下载任何示例的 XSL-FO 文件以查看它是如何制作的。

© www.soinside.com 2019 - 2024. All rights reserved.