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