fully automatic database publishing with the speedata ... · xsl fo++ patrick gundlach...

62
xmlprague 2013 Database Publishing Fully automatic database publishing with the speedata Publisher Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany

Upload: others

Post on 07-Feb-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 4: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Design rules

4

„if new product group, then page break”

Page 5: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Design rules

5

“always five products per page”

Page 6: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Design rules

6

“space for text must take all languages into account”

109

Licht für Büro und Verwaltung

SL 730 Lichtband-Pendelleuchte mit Spiegelraster

Lichtband-Pendelleuchte mit Spiegelraster für direkt/indirekte Beleuchtung für T16 Lampen.

Leuchtengehäuse aus Alu-Strangpressprofil, Kopfstücke aus Aluminiumdruckguß, pulverbe-

schichtet. Spiegelraster aus Reinstaluminium (Al 99,98), vakuumbedampft, hochglänzend.

Vorbereitet für Lichtbandmontage, inkl. Durchgangsverdrahtung mit Steckverbinder (Stecker

bzw. Buchse), montiertem Direktverbinder und einseitiger Y-Stahlseilabhängung. Max.

Gewicht: 4,5 kg

Ausführung RAL 9006 struktur

Ausführung EVG EVG digital dimmbar (DALI) Länge x Breite x Höhe Fassung

T16 1 x 28 / 54 W 730.481.54.3L18 730.481.54.6L18 1200 x 223 x 32 mm G5

T16 1 x 35 / 49 / 80 W 730.481.80.3L18 730.481.80.6L18 1500 x 223 x 32 mm G5

T16 3 x 28 / 54 W 730.483.54.3L18 730.483.54.6L18 1200 x 223 x 32 mm G5

T16 3 x 35 / 49 W 730.483.49.3L18 730.483.49.6L18 1500 x 223 x 32 mm G5

Falls Sie die Leuchte oder weitere Komponenten in weiß (RAL 9016 struktur) wünschen, schreiben Sie den Farbcode „-10“ anstatt „-18“ falls Sie graphit (DB 703 struktur) wünschen, schreiben Sie bitte „-12“.

223

32

1200/1500

1185 /1485

100100100100100150150150150150200200200200200

250 cd/klm

90°90°90°90°90°

120°120°120°120°120°

150°150°150°150°150°150°150°150°150°150°

120°120°120°120°120°

90°90°90°90°90°

Zubehör (bitte extra bestellen!)

Installations-Set für Endeinspeisung (transparente Zuleitung, Y-Seilabhängung 1,5 m, 2 Kopfstücke in RAL 9006 struktur)

730.322.150-18

Installations-Set für Mitteneinspeisung (transparente Zuleitung, Y-Seilabhängung 1,5 m, 2 Kopfstücke in RAL 9006 struktur)

730.323.150-18

Sonderfarbe 730.0090

Deckenauslassdose rund, RAL 9006 struktur 900.001-18

Deckenauslassdose quadratisch, RAL 9006 struktur 900.004-18

T16 3 x 54 W indirekt / direkt 80 / 20 %

UGR 11,3 / 11,6

Grenzausstrahlwinkel/1000 cd/m 65 °

Wirkungsgrad 85 %

SL 730 Lichtband-Pendelleuchte mit Spiegelraster

Lichtband-Pendelleuchte mit Spiegelraster für direkt/indirekte Beleuchtung für T16 Lampen.

Leuchtengehäuse aus Alu-Strangpressprofil, Kopfstücke aus Aluminiumdruckguß, pulver-

beschichtet. Spiegelraster aus Reinstaluminium (Al 99,98), vakuumbedampft, hochglänzend.

Vorbereitet für Lichtbandmontage, inkl. Durchgangsverdrahtung mit Steckverbinder

(Stecker bzw. Buchse), montiertem Direktverbinder und einseitiger Y-Stahlseilabhängung.

Max. Gewicht: 5,0 kg

Ausführung RAL 9006 struktur

Ausführung EVG EVG digital dimmbar (DALI) Länge x Breite x Höhe Fassung

T16 2 x 28 / 54 W 730.482.54.3L18 730.482.54.6L18 1200 x 223 x 32 mm G5

T16 2 x 35 / 49 W 730.482.49.3L18 1500 x 223 x 32 mm G5

T16 2 x 35 / 49 / 80 W 730.482.80.3L18 730.482.80.6L18 1500 x 223 x 32 mm G5

Falls Sie die Leuchte oder weitere Komponenten in weiß (RAL 9016 struktur) wünschen, schreiben Sie den Farbcode „-10“ anstatt „-18“ falls Sie graphit (DB 703 struktur) wünschen, schreiben Sie bitte „-12“.

223

32

1200/1500

1185 /1485

120180180180180180

300 cd/klm

120°120°120°120°120°150°150°150°150°150°150°150°150°150°150°

120°120°120°120°120°

60°60°60°60°60°30°30°30°30°30° 30°30°30°30°30°

60°60°60°60°60°

Zubehör (bitte extra bestellen!)

Installations-Set für Endeinspeisung (transparente Zuleitung, Y-Seilabhängung 1,5 m, 2 Kopfstücke in RAL 9006 struktur)

730.322.150-18

Installations-Set für Mitteneinspeisung (transparente Zuleitung, Y-Seilabhängung 1,5 m, 2 Kopfstücke in RAL 9006 struktur)

730.323.150-18

Sonderfarbe 730.0090

Deckenauslassdose rund, RAL 9006 struktur 900.001-18

Deckenauslassdose quadratisch, RAL 9006 struktur 900.004-18

T16 2 x 54 W indirekt / direkt 55 / 45 %

UGR 14,4 / 15,1

Grenzausstrahlwinkel/1000 cd/m 65 °

Wirkungsgrad 85 %

Lich

tban

d

03_buero_produkte.indd 10903_buero_produkte.indd 109 28.05.2010 16:46:22 Uhr28.05.2010 16:46:22 Uhr

109

223

32

1200/1500

1185 /1485

100100100100100150150150150150200200200200200

250 cd/klm

90°90°90°90°90°

120°120°120°120°120°

150°150°150°150°150°150°150°150°150°150°

120°120°120°120°120°

90°90°90°90°90°

223

32

1200/1500

1185 /1485

120180180180180180

300 cd/klm

120°120°120°120°120°150°150°150°150°150°150°150°150°150°150°

120°120°120°120°120°

60°60°60°60°60°30°30°30°30°30° 30°30°30°30°30°

60°60°60°60°60°

Eclairage pour bureaux et administrations

SL 730 Luminaire suspendu avec grille grand brillant pour montage en ligne

Luminaire suspendu en ligne continue avec grille grand brillant pour éclairage direct/indi-

rect pour lampes T5. Boitier en profilé d‘aluminium, têtes en aluminium coulé sous

pression, peint par poudrage. Grille louvre en aluminium pur (AI 99,98), métallisé,

glacé. Préparé pour le montage en ligne continue, y compris le câblage avec connection

(mâle/femelle), le coupleur direct pré-installé et une suspension par câble acier 2 points.

Poids maximum: 4,5 kg

Version structure RAL 9006

Version Ballast électronique Ballast électronique numérique graduable (DALI) Longueur x largeur x hauteur Type de prise

T5 1 x 28 / 54 W 730.481.54.3L18 730.481.54.6L18 1200 x 223 x 32 mm G5

T5 1 x 35 / 49 / 80 W 730.481.80.3L18 730.481.80.6L18 1500 x 223 x 32 mm G5

T5 3 x 28 / 54 W 730.483.54.3L18 730.483.54.6L18 1200 x 223 x 32 mm G5

T5 3 x 35 / 49 W 730.483.49.3L18 730.483.49.6L18 1500 x 223 x 32 mm G5

Si vous désirez le luminaire ou d‘autres accessoires en blanc (structure RAL 9016), merci d‘indiquer le code couleur „-10“ au lieu de „-18“, si vous désirez du graphite (structure DB 703), indiquer „-12“.

Accessoires (à commander séparément)

Kit d‘installation pour alimentation finale (câble d‘alimentation transparent, 1,5 m de câble de suspension 2 points, 2 têtes en RAL 9006)

730.322.150-18

Kit d‘installation pour alimentation centrale (câble d‘alimentation transparent, 1,5 m de câble de suspension 2 points, 2 têtes en RAL 9006)

730.323.150-18

Couleur spéciale 730.0090

Rosace ronde, structure RAL 9006 900.001-18

Rosace carrée, structure RAL 9006 900.004-18

T5 3 x 54 W indirect / direct 80 / 20 %

UGR 11,3 / 11,6

Angle de radiation critique/1000 cd/m! 65 °

Rendement 85 %

SL 730 Luminaire suspendu avec grille grand brillant pour montage en ligne

Luminaire suspendu en ligne continue avec grille grand brillant pour éclairage direct/indi-

rect pour lampes T5. Boitier en profilé d‘aluminium, têtes en aluminium coulé sous

pression, peint par poudrage. Grille louvre en aluminium pur (AI 99,98), métallisé, glacé.

Préparé pour le montage en ligne continue, y compris le câblage avec connection

(mâle/femelle), le coupleur direct pré-installé et une suspension par câble acier 2 points.

Poids maximum: 5,0 kg

Version structure RAL 9006

Version Ballast électronique Ballast électronique numérique graduable (DALI) Longueur x largeur x hauteur Type de prise

T5 2 x 28 / 54 W 730.482.54.3L18 730.482.54.6L18 1200 x 223 x 32 mm G5

T5 2 x 35 / 49 W 730.482.49.3L18 1500 x 223 x 32 mm G5

T5 2 x 35 / 49 / 80 W 730.482.80.3L18 730.482.80.6L18 1500 x 223 x 32 mm G5

Si vous désirez le luminaire ou d‘autres accessoires en blanc (structure RAL 9016), merci d‘indiquer le code couleur „-10“ au lieu de „-18“, si vous désirez du graphite (structure DB 703), indiquer „-12“.

Accessoires (à commander séparément)

Kit d‘installation pour alimentation finale (câble d‘alimentation transparent, 1,5 m de câble de suspension 2 points, 2 têtes en RAL 9006)

730.322.150-18

Kit d‘installation pour alimentation centrale (câble d‘alimentation transparent, 1,5 m de câble de suspension 2 points, 2 têtes en RAL 9006)

730.323.150-18

Couleur spéciale 730.0090

Rosace ronde, structure RAL 9006 900.001-18

Rosace carrée, structure RAL 9006 900.004-18

T5 2 x 54 W indirect / direct 55 / 45 %

UGR 14,4 / 15,1

Angle de radiation critique/1000 cd/m! 65 °

Rendement 85 %

Mo

nta

ge

en li

gn

e co

nti

nu

e

03_buero_produkte.indd 10903_buero_produkte.indd 109 28.10.2010 9:43:22 Uhr28.10.2010 9:43:22 Uhr

Page 7: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Design rules

7

“maximize page usage”

Einstieg | Bekleidung | Schuhe & Socken | Kinder | Fahrrad | Brillen | Rucksäcke &

Taschen | Schlafsäcke | Outdoorm

öbel | Zelte | Bergsport W

assersport Zubehör | M

esser | Service

575Schwimmwesten

Marinepool Ocean Pro SoftAuftrieb: 100 N (70+ kg). Prüfzeichen: CE. Durch den geteiltenPVC-Softschaum passt sich diese Weste perfekt der jeweiligenAnatomie an. Dank des Sicherheitskragens werden ohnmächtigePersonen im Wasser sofort in die stabile Rückenlage gebracht. Zu-sätzlich ist die Weste mit Reflektorstreifen, Schrittgurt und einer Sig -nalpfeife ausgestattet. Gewicht: 540 g/40 - 60 kgorange10.49.61 10 - 20 kg, 20 - 30 kg, 30 - 40 kg,

40 - 60 kg, 60 - 70 kg w 34,9570 - 90 kg w 39,95ab 90 kg w 44,95

Marinepool Europe BabyAuftriebsklasse: 100 N (für Binnengewässer) Prüfzeichen:CE. Vollwertige Rettungsweste für Babys/Kleinkinder. MitKragen, RV, Schnellverschluss, Höschen, Signalpfeife und3M-Reflexstreifen. Material: Nylon & PE-Schaum. Gewicht: 490 gbunt10.49.67 5 - 10 kg w 34,9510.49.68 10 - 15 kg w 34,95

Frauengrößen: XS, S, M, L, XLschwarz/ hellblau17.96.26 w 99,95

Camaro Sea Kayak VestEng anliegend, aber keineswegs beengend! Durch große Aussparungen an den Ärmellöchernund einen kurzen Schnitt wird viel Bewegungsspielraum beim Paddeln geboten. Die Kajakwes -te passt sich dem Körper ergonomisch an und das sehr leichte, extrem elastische PU/Elas-than-Material ist weich und angenehm zu tragen. Mit Front-RV. Im Brust-, Seiten- und Rü-ckenbereich sind Marine-Schaum Auftriebskörper integriert. Die Kajakweste fungiert alsSchwimmhilfe, nicht als Rettungsweste! Material: 100% Elasthan, PU-beschichtet. Gewicht: 500 g/MMännergrößen: XS, S, M, L, XL, XXLschwarz/ rot17.96.25 w 99,95

Sea Kayak Vest Männer Sea Kayak Vest Frauen

Austauschset Inshore Automatik

MarinepoolAutomatic Life Jacket KidsAuftrieb: 150 N (15 - 40 kg). Prüfzeichen:CE. Leichte, automatische Rettungsweste fürKinder mit 15 bis 40 kg Körpergewicht.Durch Zug an der Reißleine oder Kontaktzum Wasser bläst sich die Rettungswesteautomatisch auf. Rücken- und Bauchgurtsind längenverstellbar; ein massiver Metall-D-Ring ermöglicht die Befestigung einer Life -line. Material: 100% Nylon. Inkl. Signalpfeifeund 24 g CO2-Patrone. Gewicht: 900 grot17.76.73 w 89,95AustauschsetAutomatic Kids lifejacketMarinepool 24 g CO2-Ersatzpatrone für dieInshore Automatik Rettungsweste.18.22.10 w 19,95

Spree hinter Spremberg. Foto: MIchael von Einem

Marinepool Inshore ManuellAuftrieb: 150 N (40+ kg). Prüfzeichen: CE. Kurzgeschnittene, manuelle Rettungsweste - geeig-net für Personen von 45 - 120 kg. Konzipiertfür den Einsatz auf See, bläst sie sich nach Zugan der Reißleine automatisch auf. ZusätzlichesMundventil. 100% Polyester, inkl. Signalpfeifeund 33 g CO2-Patrone. Gewicht: 675 gmarine11.71.63 w 72,9511.83.77 33 g CO2-Patrone w 14,95

Marinepool Inshore AutomatikAuftrieb: 150 N (40+ kg). Prüfzeichen: CE. Automatische Rettungsweste, die sich entweder ma-nuell durch Zug an der Reißleine oder automatisch bei Kontakt mit Wasser aufbläst. Sie trägt sichsehr angenehm und scheuert nicht im Nacken. Der Rückengurt ist verstellbar, auf dem Auftriebs-körper sind Reflektorstreifen angebracht. Am Bauchgurt befindet sich ein massiver Metall-D-Ringzur Befestigung einer Lifeline, mit der man sich am Segelboot sichern kann. Der Auftriebskörperlässt sich auch durch einen Mundschlauch mit Rückschlagventil aufblasen. Hergestellt aus Nylon(100%) in Einheitsgröße für Personen von 45 - 120 kg, inkl. Signalpfeife und 33 g CO2-Patrone. Gewicht: 750 grot12.23.54 w 89,95Marinepool Austauschset Inshore AutomatikMarinepool 33 g CO2-Ersatzpatrone für die Inshore Automatik Rettungsweste.12.23.55 w 19,95

473Mumienschlafsäcke | Daune

* gemäß EN Norm 13537

Temperatur*Material außen

Material innen

Füllmaterial

FüllmengePackbeutelmaßPackvolumenKörperlängeSchulterbreiteKniebreiteFußbreiteGewicht

Mountain Equipment Classic 500Allround-Schlafsack. Die Daunen sind in ei-ne Trapez-Kammer-Konstruktion gefüllt.Anatomisch geformtes Fußteil. Details: 2-Wege- RV mit Abdeckleiste, regulierbarerWärmekragen, Konturkapuze mit Kordelzug.Inkl. Pack- und Aufbewahrungs-Netzbeutel.Koppelbar.ocean dark ink

Classic 500 SMbis 175 cm Körperlänge13.58.71 RV Links oder Rechts w 219,95Classic 500 STDbis 185 cm Körperlänge13.58.71 RV Links oder Rechts w 219,95Classic 500 XLbis 200 cm Körperlänge13.58.71 RV Links oder Rechts w 239,95

Yeti Sunrizer 600 WomenSpezieller Frauenschlafsack. H-Kammer-Kon-struktion, befüllt mit hochwertiger CrystalDown. Das Innenmaterial ist angenehm wei-ches ID Emboss Soft Cell (100% Nylon).Komfort bieten das Kopfkissenfach mit inte-grierter Füllung und ein Fleece-Einschub imFußbereich für warme Füße. Der umlaufende2-Wege-RV mit Abdeckleiste ermöglicht einÖffnen zur Decke. Konturkapuze mit Kordel-zug, Wärmekragen, Innentasche. Inkl. Pack-und Aufbewahrungsbeutel. Koppelbar.zinfandel/black

Sunrizer 600 Women Sbis 165 cm Körperlänge13.28.83 RV Links oder Rechts w 229,95Sunrizer 600 Women Mbis 175 cm Körperlänge13.28.83 RV Links oder Rechts w 239,95

The North Face Gold KazooSuperleichter und komfortabel geschnittener Daunenschlafsack. H-Kammer-Konstruktion mit zusätzlichen trapezförmig ge-schnittenen Kammern im seitlichen Bereich. Ergonomisch geformte Kunstfasereinsätze im Rücken-, Gesäß- und Kopfbereichverhindern einen Wärmeverlust in diesen besonders druckintensiven Bereichen. Wärmewulst über dem Brustbereich. Kleine In-nentasche, nachleuchtender RV-Anhänger. Inkl. Netzaufbewahrungs- und Kompressions-Packbeutel. Koppelbar.sunshine yellow

Gold Kazoo regularbis 183 cm Körperlänge17.25.22 RV Links oder Rechts w 189,95Gold Kazoo longbis 198 cm Körperlänge17.25.22 RV Links oder Rechts w 199,95

SchlafsäckeThe North FaceGold Kazoo3 °C / -2 °C / -18 °CButtery Soft Fabrics100% NylonSupersoft100% Nylon90/10 Gänsedaune, +650 cuin 90% Daune/10% Federn380 g / 402 g43 cm x 14,5 cm ø6,2 l / 6,5 l183 cm / 198 cm78 cm / 82 cm72 cm / 73 cm47 cm / 47 cm994 cm / 1004 g

Mountain EquipmentClassic 5002 °C / -4 °C / -20 °CDWR100% Nylon (Ripstop)Ultrasoft 4040's100% Nylon90/10 Daune, 675+ cuin90% Daune/10% Federn500 g / 500 g / 550 g34 cm x 19 cm ø7,4 l / 7,9 l / 8,5 l175 cm / 185 cm / 200 cm79 cm / 79 cm / 80 cm56 cm / 56 cm / 58 cm40 cm / 40 cm / 42 cm1080 g / 1100 g / 1180 g

YetiSunrizer 600 Women1 °C / -5 °C / -21 °CID Soft100% NylonID Emboss Soft Cell100% Nylon90/10,600+cuin Crystal Down90% Daune/10% Federn570 g / 600 g15 cm x 15 cm x 32 cm8,0 l / 8,5 l165 cm / 175 cm75 cm / 78 cm53 cm / 56 cm50 cm / 51 cm1064 g / 1145 g

Page 8: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Design rules

8

„if new product group, then page break”

“always five products per page”

“space for text must take alllanguages into account”

“maximize page usage”

Page 9: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Design rules

8

„if new product group, then page break”

“always five products per page”

“space for text must take alllanguages into account”

“maximize page usage”

stat

icd

ynam

ic

Page 10: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

The speedata Publisher

9

PDFXML

Page 11: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

The speedata Publisher

9

PDFXML(data)

Layout instructions(XML)

Page 12: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Difference to XSL-FO

10

XSL-FO

speedata

Data+Layout PDFRenderer

Data PDFRenderer

Layout instructions

Page 13: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Difference to XSL-FO

10

XSL-FO

speedata

Data+Layout PDFRenderer

Data PDFRenderer

Layout instructions

Page 14: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Difference to XSL-FO

11

XSL-FO

speedata

Layout is known, before the text is converted to PDF

Layout is interpreted within the renderer

Page 15: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Hello world

12

<?xml version="1.0"?><data attrib="Hello World!"> ....</data>

data XML

Page 16: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Hello world

12

<Layout> <Record element="data"> <PlaceObject> <Textblock width="10"> <Paragraph> <Value>Hello world!</Value> </Paragraph> </Textblock> </PlaceObject> </Record></Layout>

<?xml version="1.0"?><data attrib="Hello World!"> ....</data>

data XML

Page 17: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Hello world

13

<Layout> <Record element="data"> <PlaceObject> <Textblock width="10"> <Paragraph> <Value select="@attrib"/> </Paragraph> </Textblock> </PlaceObject> </Record></Layout>

<?xml version="1.0"?><data attrib="Hello World!"> ....</data>

data XML

Page 18: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Virtual pages

14

Occupy the minimum space

Page 19: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Virtual pages

14

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment;

Occupy the minimum space

Page 20: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Virtual pages

14

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment;

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment;

Occupy the minimum space

Page 21: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Virtual pages

14

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment;

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment;

and yet I feel that I never was a greater artist than now. When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees, and but a few stray gleams steal into the inner sanctuary, I throw myself down among the tall grass by the trickling stream; and, as I lie close to the earth

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment;

Occupy the minimum space

Page 22: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Page grid

15

Page 23: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Page grid

15

Page 24: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Page grid

15

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment; and yet I feel that I never was a greater artist than now. When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees, and but a few stray gleams steal into the inner sanctuary

Page 25: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

16

Page 26: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

16

Page 27: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

16

‣ Place objects on a virtual page (also named “group”; not visible in the output) which starts with size (0,0) and expands by its contents

Page 28: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

16

‣ Place objects on a virtual page (also named “group”; not visible in the output) which starts with size (0,0) and expands by its contents

‣ Check if the virtual page matches the given criteria

Page 29: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

16

‣ Place objects on a virtual page (also named “group”; not visible in the output) which starts with size (0,0) and expands by its contents

‣ Check if the virtual page matches the given criteria

‣ Output or discard the virtual page

Page 30: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

16

‣ Place objects on a virtual page (also named “group”; not visible in the output) which starts with size (0,0) and expands by its contents

‣ Check if the virtual page matches the given criteria

‣ Output or discard the virtual page

‣ groupheight(‹name of virtual page›)‣ groupwidth(‹name of virtual page›)

We have helper functions (layout)

Page 31: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Example

17

Page 32: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Example

17

Page 33: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Example

17

A wonderful serenity has taken possession of my entire soul, like these sweet mornings of spring which I enjoy with my whole heart. I am alone, and feel the charm of existence in this spot, which was created for the bliss of souls like mine. I am so happy, my dear friend, so absorbed in the exquisite sense of mere tranquil existence, that I neglect my talents. I should be incapable of drawing a single stroke at the present moment; and yet I feel that I never was a greater artist than now. When, while the lovely valley teems with vapour around me, and the meridian sun strikes the upper surface of the impenetrable foliage of my trees, and but a few stray gleams steal into the inner sanctuary

Page 34: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

18

Page 35: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

18

Example

Page 36: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

18

Example‣ Typeset text with 10pt font with width of 3

grid cells

Page 37: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

18

Example‣ Typeset text with 10pt font with width of 3

grid cells

‣ Does it fit in a 3x4 grid? I.e. is the height of the virtual page <= 4? (grid cells)

Page 38: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

18

Example‣ Typeset text with 10pt font with width of 3

grid cells

‣ Does it fit in a 3x4 grid? I.e. is the height of the virtual page <= 4? (grid cells)

‣ No: recreate the text with 9pt font

Page 39: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Dynamic layout

18

Example‣ Typeset text with 10pt font with width of 3

grid cells

‣ Does it fit in a 3x4 grid? I.e. is the height of the virtual page <= 4? (grid cells)

‣ No: recreate the text with 9pt font

‣ Output even if it still doesn't fit, but give a warning to the user

Page 40: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Virtual pages (groups)

19

<Group name="sample text"> <Contents> <PlaceObject> <Textblock fontface="main" width="3"> <Paragraph> <Value select="string(.)"/> </Paragraph> </Textblock> </PlaceObject> </Contents> </Group> <!-- Nothing put in the PDF yet. We do that on the next slide. --> ....

Page 41: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Virtual pages (groups)

20

<Switch> <Case test="sd:groupheight('sample text') &lt;= 4"> <!-- fine, output --> <PlaceObject groupname="sample text"/> </Case> <Otherwise> <!-- too large, use smaller font --> <PlaceObject> <Textblock width="3" fontface="small"> ... as before ... </Textblock> </PlaceObject> <Message> <Value>The text is too long!</Value> </Message> </Otherwise></Switch>

Page 42: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

Page 43: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

Page 44: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

Page 45: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

Page 46: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

‣ Problem: there is no markup standard for dynamic, paginated layout

Page 47: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

‣ Problem: there is no markup standard for dynamic, paginated layout

‣ We take parts from XSLT, XPath, CSSHTML (table model), and our own functions

Page 48: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

‣ Problem: there is no markup standard for dynamic, paginated layout

‣ We take parts from XSLT, XPath, CSSHTML (table model), and our own functions

‣ Complete programming language (variables, loops, conditionals)

Page 49: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

‣ Problem: there is no markup standard for dynamic, paginated layout

‣ We take parts from XSLT, XPath, CSSHTML (table model), and our own functions

‣ Complete programming language (variables, loops, conditionals)

‣ We support XML standards such as XInclude, XProc

Page 50: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

Page 51: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

Page 52: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

‣ Backend: TEX (more exact: LuaTEX),

therefore: full unicode suport, OpenType fonts, excellent typography

Page 53: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

‣ Backend: TEX (more exact: LuaTEX),

therefore: full unicode suport, OpenType fonts, excellent typography

‣ High speed, first page within less than 1/3 second, up to 300 pages/sec.

Page 54: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

‣ Backend: TEX (more exact: LuaTEX),

therefore: full unicode suport, OpenType fonts, excellent typography

‣ High speed, first page within less than 1/3 second, up to 300 pages/sec.

‣ Automatic generation of cross references, table of contents and other tables

Page 55: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

‣ Backend: TEX (more exact: LuaTEX),

therefore: full unicode suport, OpenType fonts, excellent typography

‣ High speed, first page within less than 1/3 second, up to 300 pages/sec.

‣ Automatic generation of cross references, table of contents and other tables

‣ OpenSource license (github, AGPL)

Page 56: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

‣ Backend: TEX (more exact: LuaTEX),

therefore: full unicode suport, OpenType fonts, excellent typography

‣ High speed, first page within less than 1/3 second, up to 300 pages/sec.

‣ Automatic generation of cross references, table of contents and other tables

‣ OpenSource license (github, AGPL)

‣ Programming language: backend 99% Lua, frontend 100% XML + XPath

Page 57: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

‣ Backend: TEX (more exact: LuaTEX),

therefore: full unicode suport, OpenType fonts, excellent typography

‣ High speed, first page within less than 1/3 second, up to 300 pages/sec.

‣ Automatic generation of cross references, table of contents and other tables

‣ OpenSource license (github, AGPL)

‣ Programming language: backend 99% Lua, frontend 100% XML + XPath

‣ Complete user's manual

Page 58: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Why this talk?

23

Page 59: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Why this talk?

23

‣ Start a discussion: how would a “standard” for dynamic layout on paged media look like?

Page 60: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Why this talk?

23

‣ Start a discussion: how would a “standard” for dynamic layout on paged media look like?

‣ Inspire the audience to come up with alternative implementations

Page 61: Fully automatic database publishing with the speedata ... · XSL FO++ Patrick Gundlach gundlach@speedata.de @speedata speedata Berlin, Germany. xmlprague 2013 Database Publishing

xmlprague 2013 Database Publishing

Why this talk?

23

‣ Start a discussion: how would a “standard” for dynamic layout on paged media look like?

‣ Inspire the audience to come up with alternative implementations

‣ Gain popularity of the speedata Publisher – nice to have: contributions (documentation, code, bug reports)