gpt4 book ai didi

xslt - 如何使用 XSL-FO 将源 XML 打印成 PDF?

转载 作者:行者123 更新时间:2023-12-01 06:00:35 24 4
gpt4 key购买 nike

美好的一天!我需要编写一个 xsl-fo 模板,但我无权访问源 XML。有没有办法将源 XML 打印到 PDF 中,以便我可以从 PDF 中复制它并粘贴到文件中?它应该与包含属性的源 xml 具有相同的结构。请问怎么做呢?先感谢您!沃伊科技

已编辑:我有一个网络界面,我可以在其中粘贴我的模板并生成 PDF。但我不完全知道用作数据源的 XML 的结构是什么。所以我需要编写另一个模板来读取输入的 XML(元素、属性、结构)并将其写入 PDF。我想复制PDF的内容,然后将其保存到file.xml中,以便我可以研究它。

最佳答案

这是另一个大大简化的选项;只需打印整个 XML 的副本。

例子:

XML 输入

<doc attr="test">
<a>Lorem ipsum dolor sit amet...</a>
<b>
<c>Lorem ipsum dolor sit amet...</c>
<d>
<e attr="another test"/>
<f>Lorem ipsum dolor sit amet...</f>
</d>
</b>
</doc>

XSLT 1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="/">
<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" margin-bottom="1.5in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body" font-family="monospace">
<fo:block white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve">
<xsl:text disable-output-escaping="yes">
&lt;![CDATA[
</xsl:text>
<xsl:copy-of select="/*"/>
<xsl:text disable-output-escaping="yes">
]]&gt;
</xsl:text>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>

</xsl:stylesheet>

XSL-FO 输出

<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" margin-bottom="1.5in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body" font-family="monospace">
<fo:block white-space-collapse="false" white-space-treatment="preserve" linefeed-treatment="preserve">
<![CDATA[
<doc attr="test">
<a>Lorem ipsum dolor sit amet...</a>
<b>
<c>Lorem ipsum dolor sit amet...</c>
<d>
<e attr="another test"/>
<f>Lorem ipsum dolor sit amet...</f>
</d>
</b>
</doc>
]]>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>

PDF 输出(Apache FOP)

enter image description here

关于xslt - 如何使用 XSL-FO 将源 XML 打印成 PDF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9465084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com