Zigurana's Labels of: waarom makkelijk doen als het ook moeilijk kan?

Gestart door zigurana, 11-06-2010 17:35 u

Vorige topic - Volgende topic

0 leden en 1 gast bekijken dit topic.

zigurana

Mijn etiket:


Ik print dit etiket rechtstreeks uit MS-Word.

Wat is daar zo moeilijk aan vraag je? Dat zal ik proberen uit te leggen:
Ik gebruik dus BrouwVisie om mijn recepten in te ontwikkelen en het brouwproces in bij te houden, heel handig alles op 1 plek, alles uitgerekend. Alleen in BrouwVisie kun je geen mooie etiketten printen. Dat is jammer. ( ;) hint)
Maar met BrouwVisie kun je wel gemakkelijk je recept exporteren naar een Beer XML bestand, waar al je relevante recept gegevens ook in staan.
Nu blijkt dus dat je met zogenaamde XSLT, een XML transformatie, XML data kunt weergeven. Dit wordt blijkbaar veel gebruikt bij websites waar ze wel de content maar niet de layout willen veranderen. Maar goed, een webpagina is nog geen vel met printbare etiketten.
Nu heeft MS-Word ook ondersteuning voor XML, en kun je ook in Word XML transforms definieren, dat wordt dan XSL bestand (niet te verwarren met .xls spreadsheets). Om zo'n XSL bestand te maken, dien je gebruik te maken van dit tool. Een werkzaam XSL bestand kun je gebruiken om een BeerXML recept om te toveren tot een vel vol etiketten, met jouw favoriete ontwerp.

De output van het microsoft tool is echter niet werkzaam, en je zult een aanzienlijke hoeveelheid tijd moeten steken in het doorlopen van de code. Als je dat echter doet, omdat je bijvoorbeeld in je hoofd hebt gehaald dat het moet  >:D kunnen, en te koppig bent om toe te geven dat het veel meer tijd kost om allemaal uit te zoeken dan om met de hand hetzelfde label te typen, dan krijg je uiteindelijk een werkzaam XSL bestand.

Nogmaals het etiket, nu met aangegeven waar de verschillende XML data elementen naar voren komen:


Wat deze XML/XSL combinatie dus doet, is de relevante data uit de XML te selecteren (naam vh bier, ingredienten, beschrijving, etc), te sorteren en op de juiste plek in een tabel in een Word document te plaatsen, wat ik in een keer kan uitprinten.
Is deze methode tijdsefficient? Nee, volstrekt niet. Maar ik haal er toch een pervers soort genoegen uit dat het nu wel werkt.

Zo kan ik dus heel snel van mijn verschillende recepten dezelfde labels maken:




Bijgevoegd vindt je mijn uiteindelijke XSL bestand, wat je kunt gebruiken om je eigen recepten op mijn labels te printen  :). Mochten er mensen geïnteresseerd zijn om deze zelfde route te gebruiken om hun labels te printen, dan wil ik ze graag op weg helpen, maar maak je borst nat voor een aanzienlijke hoeveelheid gedoe.

Herman

Heel slim opgelost en natuurlijk een heel mooi logo! Hulde!

dennis

 :groots:
ik word al moe als ik eraan denk.  Tegenwoordig moet het voor mij eigenlijk in een keer werken.  Ik wil hier ook nog iets vragen over Open Office maar laat dat toch maar achterwege ;)

Hopmans


JWVG

Citaat van: Hopmans op 11-06-2010  20:11 uIk moet een beetje aan Geert denken...

Dat is geen toeval!

:degroeten: JW.

Kleine_Schriek

Heel mooi!! En ik snap die "gekte" dat het moet kunnen. Het blijft een soort haat-liefde verhouding met je PC in combi met puzzelfanatisme...

zigurana

Citaat van: dennis op 11-06-2010  20:01 uIk wil hier ook nog iets vragen over Open Office maar laat dat toch maar achterwege ;)
Tja, OpenOffice is naar verluid heel goed in XML, bijna al hun bestanden zijn de een of andere vorm van XML. Maar hoe ik dit in Open Office voor elkaar had moeten krijgen, geen idee. Ik denk dat er in dit geval meer wegen zijn die naar Rome leiden, en als er mensen zijn met een makkelijkere weg, dan hoor ik het graag.

 :denken: Toch maar eens een substantiële donatie aan BrouwVisie doen, misschien dat het printen van een mooi label een nieuwe feature zou kunnen worden...

Hopmans

Tja, de titel van deze topic lijkt correct.
Ik zie de link niet tussen grafische zaken en een databaseformaat zoals XML.



dennis

Citaat van: Hopmans op 11-06-2010  22:40 u... een databaseformaat zoals XML.
Hap.

Het is geen database formaat maar een set van regels (taal) waarmee gestructureerde gegevens beschreven kunnen worden.  De gegevens die in XML (eXtensible Markup Language) zijn vastgelegd kunnen als XML makkelijk verstuurd en uitgewisseld worden.

Kleine_Schriek

Ik kon het niet laten en heb gisteren wat zitten spelen met die tools. Natuurlijk kom ik er weer niet uit. Ik kan wel een XML bestand van BrouwVisie via Word Transformeren als ik jouw XSL file als transferfile kies. Maar hoe bouw je nu je eigen XSL file? P.S. Ik snap wel hoe XML werkt, heb zelf vroeger menig webpage met Notepad gemaakt en heeeeel vroeger Basic en Pascal geprogrameerd. Het is gewoon veel te geinig dit  :groots:

Oscar

Citaat van: zigurana op 11-06-2010  17:35 uAlleen in BrouwVisie kun je geen mooie etiketten printen. Dat is jammer. ( ;) hint)

Klopt, maar dat is voor mij lastig om te maken (ligt aan mijn programmeerkunst). En Om nu een grafische etiketontwerp module in te bouwen... ik denk dat daar programma's voor zijn die dat beter kunnen... :)

Citaat van: zigurana op 11-06-2010  22:27 uToch maar eens een substantiële donatie aan BrouwVisie doen,

Dat zou erg gewaardeerd worden... :groots:

Oscar

Citaat van: Kleine_Schriek op 12-06-2010  08:19 uheeeeel vroeger Basic en Pascal geprogrameerd.

Hee wat leuk ikke ook... later is Pascal Delphi geworden en daar wordt BrouwVisie in gemaakt.

zigurana

Citaat van: Kleine_Schriek op 12-06-2010  08:19 uMaar hoe bouw je nu je eigen XSL file?

Omdat ik ook niet wist hoe ik een XML transformatie file (extensie: XSL ) zou moeten opbouwen, heb ik gebruik gemaakt van het tool van Microsoft waarnaar ik link. De werkwijze die dat tool volgt is met behulp van een zgn "seed-document":
1) open in Word een XML bestand dat representatief is voor de groep bestanden waar de transform op moet gaan werken. Een willekeurig recept export in BeerXML dus.

Nu krijg je een lange boomstructuur met alle XML tags en waarden.

2) Verander de opmaak van dit document tot iets waar je tevreden mee bent, in mijn geval was dat dus (om een etiket te maken) dat ik acht etiketten op een a-4tje ontwerp.
Bijvoorbeeld: ik importeer mijn logo (ook De Geert´s logo) en definieer een textbox waar de naam van het bier in komt. De tags en inhoud ({NAME}Biernaam{/NAME}) copy-paste je dan in dat textbox.
Zo zet je alle elementen die je graag op je etiket wilt zien op de juiste plek. De overige elementen, met uitzondering van die elementen die hierarchisch boven de tags staan die je wilt gebruiken. Dus, {RECIPES\RECIPE} en dingen als {FERMENTABLES\FERMENTABLE} zul je moeten behouden om te kunnen verwijzen naar de naam van een bepaalde fermentable (mout oid).

3) Als je tevreden bent met het ontwerp kun je het opslaan. (Trouwens je kunt de XML tags wel of niet weergeven, ik geloof dat ik in de afgelopen dagen wel 1000x tussen die twee views heb geschakeld. :) ) Let hier bij op dat je het nieuwe XML document niet opslaat als "alleen data". Als je dat doet, krijg je namelijk alleen de XML tags en de bijbehorende data nog, en ben je in principe terug bij af. Alsof je je mooie opmaakt als .txt bestand, zeg maar. Dus je vinkt die optie UIT. en het gevolg is een bestand wat niet alleen je eerdere XML tags, maar ook nog eens een hele zooi (2000 regels) Word XML (ook wel WordML) code erbij hebt gekregen.

4) Dit nieuwe WordML bestand haal je door de tool, en die spuugt een XSL bestand uit met dezelfde naam.

5) Eigenlijk zou het nu klaar moeten zijn, maar bij mij werkte dat in ieder geval nog voor geen meter. Het XSL bestand werkte wel om een willekeurige beerxml te transformeren, maar de output was altijd hetzelfde, namelijk de data van mijn seed-document. Best jammer, nu begint dus het gedoe.

6)Vanaf nu gaan we verder alleen nog in het XSL bestand werken, en wel gewoon keihard de code in. Ik wil je aanraden om dit niet in Word te doen, maar in een externe editor. Notepad kan, maar er zijn ook andere die meehelpen om XML te schrijven. Ik gebruik Notepad++. Hoewel het XSL bestand niet puur XML is, is het wel XML compliant, dus dezelfde schrijfregels gelden er voor.

7) Scroll eerst maar een beetje door het bestand heen, zodat je weet waar alles zo´n beetje staat, de opbouw is vaak erg onleesbaar, en afhankelijk hoe netjes je met stijlen, grammatica, spellingscontrole, taalinstellingen en dergelijke hebt gewerkt in je originele seed-document, zie je meer of minder aantekeningen in WordML. Aantekeningen die dingen zeggen als: het aankomende stuk tekst is in het Nederlands, met dit en dit font etc etc. Zoek eens naar een tag die je op de juiste plek had gezet in je seed-document bijvoorbeeld {RECIPES\RECIPE\NAME} oid.

8 ) Bij mij stond daar doodleuk de naam van het bier waarvan ik het recept had ge-exporteerd voor het seed-document. In plaats van die tekst. Moet er een XSL code komen. in plaats van:
<xsl:text>Bla Bla Naam van het Bier </xsl/text>Moet daar komen
<xsl:value-of select="RECIPES\RECIPE\NAME"/>Voor mijn ingredienten gebruik ik de volgende regels:
<xsl:for-each select="//FERMENTABLE"><xsl:sort data-type="number" order="descending" select="AMOUNT"/>
<w:t><xsl:value-of select="NAME"/><xsl:text>, </xsl:text></w:t>
</xsl:for-each>
Deze code selecteert alle fermentables, sorteert die op hoeveelheid (grootste eerst) en voert dan de naam uit, gevolgd door een komma-spatie. Herhaal dit voor //HOPS, //MISCS (kruidenzooi) en //YEASTS.

Ook de ander waarden moet je op deze manier corrigeren. Zie voor de specifieke uitwerking het bestand dat ik in mijn eerste post heb bijgevoegd.

Inderdaad nogal gedoe ja, niet zeggen dat ik je niet gewaarschuwd had!

9) Sla XSL bestand op, en hoop dat je nergens een typo hebt gemaakt. (naïef, haal het eerst maar eens door een XML validator, bijvoorbeeld deze. )

10) Open een beerXML recept, en probeer je nieuwe XSL bestand daar op uit. Werkt het? Drink dan een biertje, lekker he? Na hard werken...

Muldermans

Ik vind het leuk gevonden en kan me voorstellen dat je er trots op bent! Super dat je het ook documenteert voor anderen. Mooi simpel strak en krachtig etiket!
Als ik weer tijd heb lijkt het me wel leuk om hier eens mee te klooien, maar goed heb eerst nog een andere programmeer uitdaging waar ik aan werk.


Kleine_Schriek

Heel erg bedankt voor de uitleg! Deze week geen tijd, maar volgende week ga ik er eens mee aan de slag ;-)

Vergelijkbare Topics (7)

2076

Reacties: 1
Gelezen: 6801

19-01-2005 10:49 u
door SiriS
17866

Gestart door Eijndeloos


Reacties: 11
Gelezen: 5877

1880

Reacties: 90
Gelezen: 50639

43863

Reacties: 1
Gelezen: 1142


Zoeken met Google op deze site.
Brouwspullen zijn ook te koop via Bol.com.
Als je iets bestelt bij Bol.com (ook andere zaken dan brouwspullen) via deze link steun je het forum.


Het boek van de beheerder van deze site.