2014.07.6

Címkék készítése powershell és mspaint segítségével

Egyszer minden barkácsolgató ember életében eljön az idő, hogy az alkatrészeit, szerszámait szeretné rendben látni és ezért rászánja magát egy rendezőszekrény megvételére. Engem is elért ez a végzet és miután már készítettem magamnak egy kis szekrénykét, kezdtem belátni, hogy bár klassz a saját készítésű, de néha nem elég kényelmes. Ami az enyémben nem volt jó, az mindössze annyi volt, hogy kevés fiókocskát terveztem rá és az elektronikai alkatrészeim csak fajtánként választottam szét benne (ellenállások, kondik, tranyók, ...), pedig mennyivel életszerűbb pl. az ellenállásokat érték szerint szétválogatni! Rengeteg műhelyben a gyufásdobozokból összerakott "rendezőszekrény" dívik, ami olcsó és praktikus. És persze lehet kapni gyári megoldásokat is, legtöbbször horror áron és-vagy pocsék minőségben. Érdemes azonban nézegetni az Aldi és a Lidl katalógusait, mert kifoghatunk köztük jó minőségű dolgokat relatíve olcsón, mint ahogy én is tettem ezt az Aldi Workzone 91044-es cikkszámú szortimentjével. Ezután természetesen a feliratok elkészítése még mindig nincs megoldva, azt nekünk kell szépen megalkotnunk, s erről szól az írásom többi része.

Címkézéshez legegyszerűbb módszerként mondhatnánk, hogy egy sima alkoholos filctollal felírjuk mi található a fakkokban, de ez nem túl elegáns és nem is lesz feltétlen túl szép. Ehelyett kinyomtatott lapokat is rakhatunk a kialakított fülecskékbe, azok sokkal kultúráltabb kinézetet fognak kölcsönözni a dolognak. Erre legegyszerűbb módszer az lenne, ha mondjuk Wordben készítenénk egy táblázatot, aminek a celláit pontosan méretre beállítjuk és azokba írjuk be az értékeinket. De! Nem lennék az aki, ha nem kívánnék ennél többet és még igényesebbet...

A címke készítés első lépése mindig a méret meghatározása, ami persze két egyszerű mérésből áll (szélesség és magasság megmérése). Az én szortimentem esetében ez 67 x 10mm-re jött ki, ebbe kellett tehát beleférnem. Mivel én úgy gondoltam, hogy grafikus dolgokat is rakok a címkére, ezért az egészet képként készítettem el. Ha valamilyen komolyabb programunk van, akkor az képes úgy menteni a képünket, hogy az mm pontos legyen, én azonban a Windows beépített képszerkesztőjét a paint-et használtam a sablon elkészítéséhez, ami ezt nem tudja (cserébe viszont nagyon kényelmes benne "pixelperfekt" grafikát készíteni). A sablon méretének kiszámításához egy aprócska dolgot kell tudnunk, méghozzá, hogy alapértelmezésként a paint a kiszolgáló felület (azaz a Windows) képméret beállításait használja, azaz legtöbb esetben 96dpi felbontásban dolgozik. Ha mi mást szeretnénk, akkor érdekes meglepetések érhetnek... Természetesen én jobb felbontásban gondolkoztam, egész pontosan 300dpi-ben. Ez azt jelenti, hogy hüvelykenként 300 képpontot fogunk kirajzolni (nyomtatni), azaz jóval több információt lehet belevinni, finomabb lesz a rajzolat nyomtatáskor. Hogy ez mekkora képet jelent, az egy pici számolást igényelt:

 1inch = 25,4mm
67mm=2,63779inch
2,63779*300=791pixel
10mm=118pixel

A fenti számolásból kapott értékek nem túl szépek, helyettük egy kis kerekítéssel a 720 x 120 méretnél maradtam (tizedmm különbség, ami vagdosáskor amúgy is eltűnik) és nekiláttam a sablon megrajzolásának. Miután végeztem a sablonnal, jöhetett az exceltáblám elkészítése, amiből végül a szkriptem a kitöltendő értékeket fogja venni. Ezeket mind mellékeltem, a lap alján le lehet tölteni - persze nem minden ellenállás érték van bent a táblázatban, csak azok, amikből nekem éppen van itthon. Miután az excel táblám is elkészült, állhattam neki a szkript megírásának, ami közben belefutottam pár vicces dologba. Mivel néha Paint.Net-tel is belepiszkáltam a sablonomba, így olykor 300dpi volt beégetve a png képembe, olykor pedig csak 96dpi. Így előfordult, hogy két futtatás között a sablonon más-más betűmérettel lett felírva az aktuális érték. Erre megoldás a szkript 36. sora, ami beállítja a sablont fix 300dpi felbontásra:

36
$sablon.SetResolution(300,300)

Másik vicces dolog volt, hogy néha nem tudta a megfelelő színcsíkot berajzolni az ellenállásomra, s ekkor derült ki az a turpisság, hogy a Text tulajdonság az excelben kiírt értéket adja vissza (a Value tulajdonság nem adott vissza semmit), így a legegyszerűbb megoldás az volt, hogy a csíkok celláinak szélességét kicsit megnöveltem, hogy a két számjegyű számok is kiférjenek, ne # kerüljön a helyükre. Miután ezeket kijavítottam, már csak le kellett generáltatni a címkéket, majd nyomtatás után vagdosni és felragasztgatni a helyükre...

Nyomtatáshoz a legegyszerűbb trükk, ha nyitunk egy Word dokumentumot és abba bedobáljuk az elkészült képeket, mert szerencsére a Word kezeli a felbontás értéket és automatikusan megfelelő méretben rakja be a dokumentumba a címkéinket.

OLYMPUS DIGITAL CAMERA

szkript.zip (104 KB)