0

XMLファイルを「現状のまま」印刷しようとしています。タグ付きで Apache FOP を使用して PDF に変換します。FOP 1.1 の src dir にあるExampleXML2PDFサンプル ファイルから始めます。フォーマットされた XML オブジェクトは印刷できますが、タグ付きの XML は印刷できません。

XSLは以下の通り、

<xsl:stylesheet version="2.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="testRaw" />
<xsl:template match="/">
    <fo:root>
        <fo:layout-master-set>
            <fo:simple-page-master master-name="my-page">
                <fo:region-body margin="0.5in" />
            </fo:simple-page-master>
        </fo:layout-master-set>
        <fo:page-sequence master-reference="my-page">
            <fo:flow flow-name="xsl-region-body" font="7pt Times">
                <fo:block break-before="page">
                    <xsl:value-of select="$testRaw" />
                </fo:block>
            </fo:flow>
        </fo:page-sequence>
    </fo:root>
</xsl:template>

パラメータの設定に使用される Java コード。

4

2 に答える 2

1

xsl:value-ofyourをに置き換えて、xsl:copy-ofでラップしてみてくださいCDATA

例...

<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<xsl:copy-of select="$testRaw" />
<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
于 2013-10-07T15:54:24.497 に答える
0

bufferwriter を使用すると、次のようになります。

public void readXML() {
            String name = "TheFile.xml";
            String path = "C:/User/Desktop/";
            File file = new File(path + name);
            if(file.canRead()) {
                String FileTxt = "";
                if((path + name).endsWith(".xml")) {
                    try {
                        Scanner read = new Scanner(new FileInputStream(file));
                        while (read.hasNextLine()) {
                            FileTxt += read.nextLine();
                        }
                        read.close();
                    } catch(FileNotFoundException e) {}
                    writePDF(FileTxt);
                }

            } else {
                System.out.print("Cannot Open File!");
            }
}

public void writePDF(String text) {
      String path = "C:/User/Desktop/"
      String name = "TheFile.pdf"
      if(!path.endsWith(name)) path += name;
                try {
                     BufferedWriter write = new BufferedWriter(new FileWriter(path));
                    write.write(text);
                    write.close();
                } catch(Exception e) {}
}
于 2013-10-03T10:37:42.157 に答える