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

Post on 07-Feb-2020

25 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

xmlprague 2013 Database Publishing

XSL FO++

Patrick Gundlachgundlach@speedata.de

@speedata

speedata Berlin, Germany

xmlprague 2013 Database Publishing

Design rules

4

„if new product group, then page break”

xmlprague 2013 Database Publishing

Design rules

5

“always five products per page”

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

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

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”

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

xmlprague 2013 Database Publishing

The speedata Publisher

9

PDFXML

xmlprague 2013 Database Publishing

The speedata Publisher

9

PDFXML(data)

Layout instructions(XML)

xmlprague 2013 Database Publishing

Difference to XSL-FO

10

XSL-FO

speedata

Data+Layout PDFRenderer

Data PDFRenderer

Layout instructions

xmlprague 2013 Database Publishing

Difference to XSL-FO

10

XSL-FO

speedata

Data+Layout PDFRenderer

Data PDFRenderer

Layout instructions

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

xmlprague 2013 Database Publishing

Hello world

12

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

data XML

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

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

xmlprague 2013 Database Publishing

Virtual pages

14

Occupy the minimum space

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

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

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

xmlprague 2013 Database Publishing

Page grid

15

xmlprague 2013 Database Publishing

Page grid

15

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

xmlprague 2013 Database Publishing

16

xmlprague 2013 Database Publishing

Dynamic layout

16

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

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

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

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)

xmlprague 2013 Database Publishing

Example

17

xmlprague 2013 Database Publishing

Example

17

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

xmlprague 2013 Database Publishing

Dynamic layout

18

xmlprague 2013 Database Publishing

Dynamic layout

18

Example

xmlprague 2013 Database Publishing

Dynamic layout

18

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

grid cells

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)

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

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

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. --> ....

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>

xmlprague 2013 Database Publishing

Layout instructions

21

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

xmlprague 2013 Database Publishing

Layout instructions

21

‣ XML based

‣ Schema: RelaxNG

‣ Multilingual: English / German

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

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

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)

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

xmlprague 2013 Database Publishing

Technical data

22

xmlprague 2013 Database Publishing

Technical data

22

‣ 100%-automation because of “server application“

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

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.

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

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)

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

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

xmlprague 2013 Database Publishing

Why this talk?

23

xmlprague 2013 Database Publishing

Why this talk?

23

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

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

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)

xmlprague 2013 Database Publishing

More information

24

speedata.github.com/publisher

Mail: gundlach@speedata.de

Source code

Twitter: @speedata

top related