Harrastuspuolella käynnistellään paraikaa hanketta, johon liittyen tiedonkerääjille oli tarpeen tehdä helposti mukana kulkeva, laminoitu kortti, josta löytyvät henkilökohtaiset linkit raportointilomakkeille, sekä selkokielellä että QR-koodina. Alkuun värkkäsin niitä Google Sheets -taulukon kaavoilla, mutta käyttöönotto muodostui työlääksi. Ehkä tämän ongelman voisi ratkaista pienellä koodausharjoituksella…?
Piirsin ensin yksittäisen, kaksipuoleiseksi taiteltavan kortin reunukset Pages-sovelluksella ja tallensin kuvan jpg-muotoon kortin malliksi.
Python-ohjelmani laitoin kysymään korttia varten tarvittavat lähtötiedot, kuten henkilön etu- ja sukunimen sekä yksilöllisen tunnisteen, jollaisen varasin jokaiselle tiedonkerääjälle.
Sen jälkeen muodostin aikaisemmin toteuttamani lyhytlinkkipalvelun tarvitsemat henkilökohtaiset url’it sekä niistä QR-koodit. Yllätyin miten helposti ne syntyivät qrcode-kirjaston avulla.
Lopuksi ei ollut tarve kuin avata kortin malli, sijoittaa sekä tekstit että kuvat oikeisiin kohtiin ja tallentaa lopullinen tiedosto. Kuvan manipulointiin käytin Pillow-kirjastoa. Eniten meni aikaa luultavasti iteroidessa oikeita koordinaatteja jokaiselle sijoitettavalle tiedolle.
Luulen, että suurimman toistuvien, tylsien ja vikaherkkien työvaiheiden ajansäästön saavutan kuitenkin siinä, että sama Python-ohjelma kysyy lähtötietoina myös loput tiedot, joita lyhytlinkkipalvelussa majailevat kohdeosoitteet parametreineen tarvitsevat. Kuvan muodostamisen lisäksi ohjelma tekeekin lyhytlinkkipalvelun hyödyntämään AWS DynamoDB -tauluun pari lisäriviä per henkilö. Tähän toiminnallisuuteen käytössä on boto3-kirjasto.
Parannettavaa?
Kyllä vain. Vaikka tällä saadaankin henkilön korttiin tiedot kohdalleen, on jpg-muotoisen mallikortin ja siihen lisättyjen tietojen resoluutio kerrassaan surkea. Lisäksi yhden henkilön kortin tulostaminen kerrallaan ei ole mielekästä, koska se hukkaa paperia.
Korjaavat askeleet saattaisivatkin mennä esimerkiksi niin, että
- luon pdf-muotoisen mallidokumentin, jossa on kuuden henkilön korttipohjat, ja
- käytän pdf:ien käsittelyyn sopivaa Python-kirjastoa tekstien ja kuvien sijoittamiseen paikalleen.
Siinäpä onkin taas tiedossa mukavaa iltapuhdetta.