我有一点问题......
但首先:
这是我的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按钮后必须生成不太好的文件...
任何消化?我正在研究它已经有一个多星期了,我无法解决这个问题......
答案 0 :(得分:2)
eXist-db可以使用XSL-FO模块生成PDF,默认情况下,该模块配置为使用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
)以转换行{{ 1}}到include.module.xslfo = false
。
使用include.module.xslfo = true
(或Windows上的build.sh rebuild
)重建eXist-db
取消注释conf.xml中的XSL-FO模块,该块以build.bat rebuild
开头
重启eXist-db
现在您可以使用<module uri="http://exist-db.org/xquery/xslfo" class="org.exist.xquery.modules.xslfo.XSLFOModule">
功能。