VilleSysinoro / PythonYmparisto

Esimerkkejä Python-ympäristön asetuksista
0 stars 0 forks source link

Viivakoodi 128B -moduuli #1

Closed VilleSysinoro closed 2 days ago

VilleSysinoro commented 3 days ago

Sovellukseen tarvitaan moduuli, joka tuottaa henkilötunnuksista viivakoodin. Viivakoodin tulostamiseen käytetään Google Fonts -kirjastosta löytyvää Code 128 fonttia. Viivakoodin muodostamiseen tarvitaan

  1. Alkumerkki
  2. Loppumerkki
  3. Varmistussumma

Viivakoodi128B drawio

Alkumerkkinä käytetään ASCII-merkkiä 204 (104 + 100) Loppumerkkinä käytetään ASCII-merkkiä 206 (106 + 100)

Varmistussumma lasketaan siten, että merkkien järjestusnumerolla kerrotaan merkin ASCII-arvo. josta on vähennetty 32 Tulot lasketaan yhteen ja siihen lisätään vielä akumerkin ASCII-arvo (104). Varmistussumma on modulo 103.

Esimerkin tapauksessa 1x17 + 2x18 + 3x24 + 4x34 + 104 = 365. Tästä otetaan jakojäännös 103:lla jaettaessa 269 mod 103 = 56 Kun siihen listään 32 saadaan ASCII-arvo 88, joka on merkkinä X

Kuvan esmerkissä varmistussumma lasketaan seuraavasti

Linkkejä koodiesimerkkeihin:

https://www.w3schools.com/python/ref_func_chr.asp https://www.w3schools.com/python/ref_func_ascii.asp https://www.w3schools.com/python/ref_func_ord.asp

VilleSysinoro commented 2 days ago

Tehty ja testattu