[英]Generate PDF from XQuery using XSL-FO in Exist-db
我有一点问题......
但首先:
这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE akweny SYSTEM "akweny.dtd">
<akweny>
<akwen>
<nazwa>Atlantycki</nazwa>
<typ>ocean</typ>
<powierzchnia>106450</powierzchnia>
<akweny>
<akwen>
<nazwa>Północne</nazwa>
<typ>morze</typ>
<powierzchnia>750</powierzchnia>
</akwen>
<akwen>
<nazwa>Batyckie</nazwa>
<typ>morze</typ>
<powierzchnia>386</powierzchnia>
<akweny>
<akwen>
<nazwa>Botnicka</nazwa>
<typ>zatoka</typ>
<powierzchnia>117</powierzchnia>
</akwen>
</akweny>
</akwen>
</akweny>
</akwen>
<akwen>
<nazwa>Spokojny</nazwa>
<typ>ocean</typ>
<powierzchnia>179700</powierzchnia>
</akwen>
</akweny>
如何使用Xquery生成PDF文件?
我有这样的:
<table border="1" width="100%">
<th>Podrzędne</th><th>Nazwa</th><th>Typ</th><th>Powierzchnia</th><th>Edycja</th>
{
let $nodes := doc('/db/Dane/akweny.xml')//akweny[ancestor::*/nazwa="Atlantycki"]
for $x in $nodes/*
let $nazwa := $x/nazwa/text()
let $typ := $x/typ/text()
let $powierzchnia := $x/powierzchnia/text()
return
<tr>
<th><img src="/exist/apps/Obrazki/lupa.jpg" alt="Podrzedny" /></a></th>
<th bgcolor="#F46978">{$nazwa}</th>
<th>{$typ}</th>
<th>{$powierzchnia}</th>
<th>Edytuj</th>
</tr>
因此,单击PRINT按钮后必须生成不太好的文件...
任何消化? 我正在研究它超过一个星期,我无法处理它的突然出现...
eXist-db可以使用XSL-FO模块生成PDF,默认情况下,XSL-FO模块配置为使用Apache FOP。 我们的想法是,如果您可以将XML转换为XSL-FO,那么您可以将XSL-FO传递给XSL-FO模块,然后XSL-FO模块将为您生成PDF。 该模块的功能记录在http://exist-db.org/exist/apps/fundocs/view.html?uri=http://exist-db.org/xquery/xslfo中 。 默认情况下不启用此模块,因此您需要执行以下操作:
如果正在运行,请退出eXist-db。
编辑$EXIST_HOME/extensions/local.build.properties
(或者,如果您没有此文件,请复制该目录中的build.properties
文件,并重命名重复的local.build.properties
)以转换include.module.xslfo = false
行include.module.xslfo = false
为include.module.xslfo = true
。
使用build.sh rebuild
重建eXist-db(或在Windows上build.sh rebuild
build.bat rebuild
)
取消注释conf.xml中的XSL-FO模块,该块以<module uri="http://exist-db.org/xquery/xslfo" class="org.exist.xquery.modules.xslfo.XSLFOModule">
重启eXist-db
现在您可以使用xslfo:render()
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.