Re: Re: PDF erstellen...
Christian Stocker <[email protected]> Mon, 25 Jul 2005 07:46:20 +0200
| Newsgroups | gmane.comp.cms.bitflux.general.german |
|---|---|
| Message-ID | <[email protected]> |
On 24.7.2005 22:05 Uhr, Thomas Baumann wrote:
> PDF-Erstellung klappt soweit. Allerdings habe ich noch Probleme mit mei=
nem
> xml2fo.xsl
>=20
> Er referenziert die Variablen wie in der master.xsl nicht, d.h. mein
> PDF enth=E4lt keine Angaben =FCber Titel etc.
Hab grad bemerkt, dass in der fo-pipeline die php funktionen nicht
freigegeben sind, darum gehen da zum Teil Sachen wohl bei dir nicht:
F=FCge mal beim XSLT transformer in der "fo" pipeline (dort wo <map:whe=
n
test=3D"fo"> steht) folgendes noch dazu:
<map:parameter type=3D"options" name=3D"registerPhpFunctions" value=3D"tr=
ue"/>
<map:parameter type=3D"allowedPhpFunctions" name=3D"one"
value=3D"config://xslt_allowed_phpfunctions"/>
Kannst aber auch einfach install/dist/sitemap/sitemap.xml updaten und
nach sitemap/sitemap.xml kopieren, falls du die nicht ge=E4ndert hast.
Das k=F6nnte einen Teil deiner Probleme l=E4sen.
> Ich h=E4tte gerne Titel des Dokuments und URL in der Kopfzeile,
> Seitenzahl und Druckdatum in der Fu=DFzeile und dazwischen den
> Content etwas sch=F6ner angeordnet, als in meinem xsl.
Ich bin absolut kein xsl:fo experte, hab's selber noch kaum je benutzt,
ich muss dich da an Google oder die XSL:FO FAQ
(http://www.dpawson.co.uk/xsl/sect3/) weiterleiten.
> Bei <xsl:value-of select=3D"."/> nimmt er das gesamte Dokument,
> bei <xsl:value-of select=3D"titel"/> ist der Output leer.
>=20
> Wie kann man die einzelnen Sektionen "xsl:value-of select" debuggen, d.=
h.
> welche sind =FCberhaupt vorhanden ?
Das Input Dokument kannst du mit http://example.org/foo.pdf?XML=3D1
angucken (zuerst einloggen). Dort siehst du dann alles, was Dir vom
Input Dokument her zur Verf=FCgung steht.
Die definierten globalen parameter und variablen findest du am anfang
des XSLT documents, z.b.:
<xsl:param name=3D"webroot"/>
<xsl:variable name=3D"sitename"
select=3D"php:functionString('bx_helpers_config::getOption','sitename')"/=
>
die kann man dann eben aufrufen mit
<xsl:value-of select=3D"$webroot"/>
Wie man seitenname etc. aufrufen kann, sollte im master.xsl, resp.
static.xsl ersichtlich sein. F=FCr den vollen Seitentitel benutzen wir da=
s
Navitree Plugin, welches du evt. in deiner .configxml f=FCr die PDF
pipeline noch aktivieren musst. Schau in <xsl:template
name=3D"html_head_title"> in master.xsl wie's dann genau geht
chregu
>=20
> Mein xml2fo.xsl ist beigef=FCgt.
>=20
> Danke & Gruss
>=20
> - tom
>=20
> -------------------------------------------------
> This mail sent through IMP: http://horde.org/imp/
>=20
>=20
> -----------------------------------------------------------------------=
-
>=20
> <?xml version=3D"1.0" encoding=3D"UTF-8"?>
> <xsl:stylesheet version=3D"1.0"=20
> xmlns:xsl=3D"http://www.w3.org/1999/XSL/Transform"=20
> xmlns:fo=3D"http://www.w3.org/1999/XSL/Format">
> <!-- :::::::::::: Globale Variable :::::::::::::::::::::::::::::::::=
:::::::::::::::::::::::::::::::::::::: -->
> <xsl:variable name=3D"table-cell-padding-after">
> <xsl:text>2pt</xsl:text>
> </xsl:variable>
> <xsl:variable name=3D"hs-green">
> <xsl:text>#99CCCC</xsl:text>
> </xsl:variable>
> <xsl:variable name=3D"hs-gray">
> <xsl:text>#EEEEEE</xsl:text>
> </xsl:variable>
>=20
> <xsl:param name=3D"webroot"/>
> <xsl:param name=3D"webrootLang"/>
> <xsl:param name=3D"requestUri"/>
> <xsl:param name=3D"mode"/>
> <xsl:param name=3D"admin" select=3D"'false'"/>
> <xsl:param name=3D"lang" select=3D"'de'"/>
> <xsl:param name=3D"collectionUri"/>
> <xsl:param name=3D"filename"/>
> <xsl:param name=3D"fileNumber"/>
> <xsl:variable name=3D"langsAvail" select=3D"php:functionString('bx_=
helpers_config::getLangsAvailXML')"/>
> <xsl:variable name=3D"sitename" select=3D"php:functionString('bx_he=
lpers_config::getOption','sitename')"/>
> <xsl:variable name=3D"sitedescription" select=3D"php:functionString=
('bx_helpers_config::getOption','sitedescription')"/>
> <xsl:param name=3D"theme" select=3D"php:functionString('bx_helpers_=
config::getOption','theme')"/>
> <xsl:param name=3D"themeCss" select=3D"php:functionString('bx_helpe=
rs_config::getOption','themeCss')"/>
>=20
> <xsl:variable name=3D"defaultLanguage" select=3D"php:functionString('=
constant','BX_DEFAULT_LANGUAGE')"/>
>=20
> <xsl:variable name=3D"navitreePlugin" select=3D"/bx/plugin[@name=3D=
'navitree']"/>
> <xsl:variable name=3D"webrootW" select=3D"substring($webroot,1,stri=
ng-length($webroot)-1)"/>
> <xsl:variable name=3D"webrootLangW" select=3D"substring($webrootLan=
g,1,string-length($webrootLang)-1)"/>
>=20
> <!-- :::::::::::: Globale Variable End :::::::::::::::::::::::::::::=
:::::::::::::::::::::::::::::::::::::: -->
>=20
> <xsl:template match=3D"/">
> <fo:root xmlns:fo=3D"http://www.w3.org/1999/XSL/Format">
> <fo:layout-master-set>
> <!-- ::::::::: seitendefinition start :::::::::::::::::=
:::::::::::::::::::::::::::::::::::::: -->
> <fo:simple-page-master master-name=3D"A4std"=20
> margin-top=3D"5cm" margin-bottom=3D"2cm"=20
> margin-left=3D"2.5cm" margin-right=3D"1.5cm"=20
> page-height=3D"29.7cm" page-width=3D"21cm">
> <fo:region-body margin-bottom=3D"2cm" margin-top=3D=
"2cm"/>
> <fo:region-before extent=3D"2cm"/>
> <fo:region-after extent=3D"1cm"/>
> </fo:simple-page-master>
> <!-- ::::::::: seitendefinition end :::::::::::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> </fo:layout-master-set>
> <!-- :::::::::::::::::::::::: SEITENDESIGN START ::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> <fo:page-sequence master-reference=3D"A4std">
> <!-- :: header design start :::::::::::::::::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> <xsl:call-template name=3D"header-template"/>
> <!-- :: header design end:::::::::::::::::::::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> <!-- :: footer template start :::::::::::::::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> <xsl:call-template name=3D"footer-template"/>
> <!-- :: footer template end :::::::::::::::::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> <!-- :: body design start :::::::::::::::::::::::::::=
::::::::::::::::::::::::::::::::::::: -->
> <xsl:call-template name=3D"body-template"/>
> </fo:page-sequence>
> </fo:root>
> </xsl:template>
>=20
> <xsl:template name=3D"header-template">
> <fo:static-content flow-name=3D"xsl-region-before">
> <fo:block font-family=3D"Helvetica" font-size=3D"8pt" text-=
align=3D"start" font-weight=3D"bold">
> <xsl:text>(c) tiri.li information technology - http://w=
ww.tiri.li/ </xsl:text>
> <!-- all: <xsl:value-of select=3D"."/> -->
> Sitename: <xsl:value-of select=3D"$sitename"/> -=20
> Items: <xsl:value-of select=3D"items/*[filename=3D$filename]/title"/>=
-
> </fo:block>
> </fo:static-content>
> </xsl:template>
>=20
> <xsl:template name=3D"footer-template">
> <fo:static-content flow-name=3D"xsl-region-after">
> <fo:block font-family=3D"Helvetica" font-size=3D"8pt" text-=
align=3D"start" font-weight=3D"bold">
> <xsl:text>(c) tiri.li information technology - http://w=
ww.tiri.li/ </xsl:text>
> - Seite <fo:page-number/>
> </fo:block>
> </fo:static-content>
> </xsl:template>
>=20
> <xsl:template name=3D"body-template">
> <fo:flow flow-name=3D"xsl-region-body">
> <fo:table>
> <fo:table-column column-width=3D"17.5cm"/>
> <fo:table-body font-size=3D"12pt">
> <fo:table-row>
> <fo:table-cell padding-after=3D"{$table-cell-paddin=
g-after}+4pt">
> <fo:block padding-start=3D"4pt"=20
> font-size=3D"24pt" font-weight=3D"bold">
> bla bla bla
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> <fo:table-row>
> <fo:table-cell padding-after=3D"{$table-cell-paddin=
g-after}+4pt">
> <fo:block padding-start=3D"4pt"=20
> background-color=3D"{$hs-green}"=20
> padding-before=3D"2pt"
> font-size=3D"10" font-weight=3D"bold">
> Titel: <xsl:value-of select=3D"title" mode=3D"xhtml"/>
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> <fo:table-row>
> <fo:table-cell padding-after=3D"{$table-cell-paddin=
g-after}+4pt">
> <fo:block padding-start=3D"4pt"=20
> font-size=3D"14pt" font-weight=3D"bold"
> background-color=3D"{$hs-green}"=20
> padding-before=3D"2pt"
> text-align=3D"left"
> text-align-last=3D"left">
> <xsl:apply-templates/>
> </fo:block>
> </fo:table-cell>
> </fo:table-row>
> </fo:table-body>
> </fo:table>
> </fo:flow>
> </xsl:template>
>=20
> </xsl:stylesheet>
>=20
--=20
christian stocker | Bitflux GmbH | schoeneggstrasse 5 | ch-8004 zurich
phone +41 1 240 56 70 | mobile +41 76 561 88 60 | fax +41 1 240 56 71
http://www.bitflux.ch | [email protected] | gnupg-keyid 0x5CE1DECB