De afgelopen dagen heb ik met Albumprinter lopen spelen. Dit is een (gratis) tool om (digitale) foto's in een digitaal fotoalbum te zetten, en te voorzien van commentaar. Het geheel kun je vervolgens laten afdrukken en thuissturen, zodat je toch een echt fotoalbum hebt.
Nu werkt het programma vrij aardig, maar liep ik toch tegen wat beperkingen op. Zo kent het programma een antal vaste paginastijlen, die opgeven waar de foto's staan, waar de texten staan, en hoe groot dat alles mag zijn. Deze waarden zijn echter niet zelf aan te passen, en als je dus iets anders wil, heb je pech.
Zo ook voor achtergronden op de pagina's: dat kan, maar slechts een beperkt aantal, en dan op iedere pagina dezelfde
Uit nieuwsgierigheid ben ik eens gaan kijken hoe die templates en opgeslagen albums er op fileniveau uitzien, en dan bleek vrij simpel te zijn: platte text, en een HTML-achtige opmaak. Met notepad (of je favoriete plain-text editor) kun de templates vrij gemakkelijk aanpassen, om een vak voor text of plaatjes in te voeren, te verwijderen of aan te passen, of om een (eigen) achtergrond per pagina verschillen in te stellen.
De globale opbouw van een template is als volgt:
Die van een album is ook zoiets:
Nu is aanpassen in de code wel leuk, maar natuurlijk, maar het is makkelijker om hier een programmaatje voor te schrijven, zodat je de templates ala powerpoint kan indelen.
Nu kan ik best een beetje imperatief programmeren, maar zo iets heb ik nog nooit gemaakt. Heeft iemand enig idee of er iets bestaat waarmee ik dit makkelijk in elkaar zou kunnen zetten, waar dus met drag en drop boxen gemaakt kunnen worden, die dan wat attributen mee kunnen krijgen, en waardan bv een template uit gedistilleeerd kan worden?
Nu werkt het programma vrij aardig, maar liep ik toch tegen wat beperkingen op. Zo kent het programma een antal vaste paginastijlen, die opgeven waar de foto's staan, waar de texten staan, en hoe groot dat alles mag zijn. Deze waarden zijn echter niet zelf aan te passen, en als je dus iets anders wil, heb je pech.
Zo ook voor achtergronden op de pagina's: dat kan, maar slechts een beperkt aantal, en dan op iedere pagina dezelfde
Uit nieuwsgierigheid ben ik eens gaan kijken hoe die templates en opgeslagen albums er op fileniveau uitzien, en dan bleek vrij simpel te zijn: platte text, en een HTML-achtige opmaak. Met notepad (of je favoriete plain-text editor) kun de templates vrij gemakkelijk aanpassen, om een vak voor text of plaatjes in te voeren, te verwijderen of aan te passen, of om een (eigen) achtergrond per pagina verschillen in te stellen.
De globale opbouw van een template is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| Locatie: Hema Album Software\Albumstyles\pap_001\Album met heel veel tekst\<<Naam>>\<<Naam>>.als Opbouw: <albumstylecollection> <albumstyles> <albumstyle author="<<Naam Auteur>>" category="<<Naam categorie>>" //moet gelijk zijn aan dirnaam? "Album met heel veel tekst" description="<<Naam stijl>>" //gelijk aan bestandsnaam??? localprintable="true" preferredresolution="72" previewimagefileurl="<<filenaam>>.jpg" styleid="11x8.5stl007" //??????????? > <paper description="paper" papertypeid="pap_001" //Naam van de dir, pap001 is 30x30 cm height="<<hoogte papier in Inch>>" //Met drie decimalen, . als scheiding width="<<breedte papier in Inch>>" //11.811 voor 30x30 imageablearea="0 0 11.811 11.811" //Hpos Vpos Hlen Vlen /> //let op de / voor de > <pagestyles> //er moeten 25 pagestyles in een album zitten <pagestyle backgroundcolor="8A8A8A" fixedposition"true" fillcolor="000000" backgroundimagefileurl="<<filenaam>>.jpg" //formaat 00x???? coverpage="<<Bool>>" //true voor eerste pagina, false voor de rest previewimagefileurl="<<filenaam>>.jpg" //liefst gelijk aan backgroundimage styleid="30x30_300" > //Dan een willekeurig aantal van deze twee elementen: <caption //voor text data="5.512 1.693 4.725 0.394" //Hpos Vpos Hlen Vlen, maten in Inch font="<<arial of Times>>" size="<<lettergrote>>" //12 ofzo bold="<<Bool>>" //text vet? true/false italic="<<Bool>>" //text schuin? true/false color="<<kleur>>" //net als HTML-kleuren: RRGGBB /> <picture //voor foto's data="0.512 2.362 10.787 8.268" //Hpos Vpos Hlen Vlen, maten in Inch /> </pagestyle> </pagestyles> </albumstyle> </albumstyles> </albumstylecollection> |
Die van een album is ook zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| Locatie: Hema Album Software\MyAlbums\<<naam>>\<<naam>>.alb Opbouw <albumprinter prologue="1.3" //???? lastpath="<<Pad naar foto's>>" vendorid="1003" //HEMA=1003 clientversion="1.5.2" //???? > <user email="<<email>>" id="<<nummer van 4 cyfers>>" /> <album duplex="-1" //???????????????? id="<<nummer van 5 cyfers>>" style="pap_001\Blanco\Blanco\" //verwijzing naar stijltemplate pagesize="11.811 11.811" //maat bladzijden in Inch > <page no="1" data="0.000 0.000 11.811 11.811 255 255 255" src="002.jpg" > //dan de feitelijke data voor de gebruikte paginastijl // Texten: <caption data="1.378 0.512 9.055 0.984 /arialbold 48 0 0 0" font="arial" size="48" bold="-1" italic="0" color="0" alignment="2" > <![CDATA[<<Hier de text>>]]> </caption> //Foto's <picture data="2.854 2.362 6.102 8.268" //positie foto src="_1.jpg" //lokatie van de (kopie van de) foto originalsrc="<<pad naar de originele foto>>" //het volledide pad naar de originele foto > </picture> </page> </album> </albumprinter> |
Nu is aanpassen in de code wel leuk, maar natuurlijk, maar het is makkelijker om hier een programmaatje voor te schrijven, zodat je de templates ala powerpoint kan indelen.
Nu kan ik best een beetje imperatief programmeren, maar zo iets heb ik nog nooit gemaakt. Heeft iemand enig idee of er iets bestaat waarmee ik dit makkelijk in elkaar zou kunnen zetten, waar dus met drag en drop boxen gemaakt kunnen worden, die dan wat attributen mee kunnen krijgen, en waardan bv een template uit gedistilleeerd kan worden?
Men moet het denken bijbrengen, niet wat al gedacht is. ~C. Gurlitt