Hankehommia Pythonilla

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

Kategoriassa Yleinen

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s