27 juni 2013

Formulier genereert streepjescode

Een paar dagen geleden liet ik zien hoe de invuller van een formulier een mailtje kan ontvangen met als bijlage een PDF bestand met daarin alle ingevulde gegevens. Op mijn werk werd de lat gelijk weer wat hoger gelegd:
Kun je ook een unieke streepjescode meesturen?
Een leuke uitdaging en na een paar dagen knutselen kan ik zeggen: Ja, dat kan!
Gelukkig zijn er mensen die hun werk beter documenteren dan ik. Zo kon ik de code vinden die ik nodig heb om een plaatje in het PDF bestand te voegen. Ik wist al dat er websites zijn die barcodes en QR codes aanbieden die gecreëerd worden door variabelen in een url. Zo zorgt deze url voor een QR code van Trendmatcher:
http://chart.apis.google.com/chart?cht=qr&chs=150x150&chl=Trendmatcher&chld=L%7C1
Heb je liever een streepjescode, dan kun je terecht bij RACO voor allerlei barcode generatoren. Ook die genereren url's die je als plaatje kunt gebruiken, zoals deze bijvoorbeeld.

Zo kun je dus een formulier maken dat een PDF bestand naar de invuller stuurt met een QR- of barcode die gescand kan worden bij de ingang. Voor dat scannen heb je geen dure barcodescanner meer nodig, maar dat kan met een smartphone. Maak je bijvoorbeeld gebruik van Quickmark op een SmartPhone dan kun je alles wat je gescand hebt als .csv bestand naar je computer sturen. Lees je dat bestand weer in in de spreadsheet met je aanmeldingen, dan weet je wie er is komen opdagen!

Dit is de code die ik heb toegevoegd aan mijn oorspronkelijke script:
// Dit plaatst de QR code
var img = UrlFetchApp.fetch("http://chart.apis.google.com/chart?cht=qr&chs=150x150&chl=" + voornaam + "" + tussenvoegsel + "" + achternaam + "&chld=L%7C1");

var totalElements = copyBody.getNumChildren();
var el=[]
for( var j = 0; j < totalElements; ++j ) {
 var element = copyBody.getChild(j);
 var type = element.getType();
 Logger.log(j+" : "+type);
 if (type =='PARAGRAPH'){
  el[j]=element.getText()
  if(el[j]=='###'){element.removeFromParent();// dit verwijdert de ###
   copyBody.insertImage(j, img);
   }
  }
}
Op de plek waar ik in het template document ### plaats komt nu de code te staan!
Daarvoor moet ### wel in een aparte paragraaf staan, zonder iets ervoor of erachter. Het plaatje bij dit bericht klopt dus (nog) niet helemaal, maar is zoals ik het uiteindelijk hebben wil.
De lat ligt dus weer wat hoger!

Wil je zien wat je binnen krijgt als je mijn formulier invult, klik dan hier voor de streepjescode variant en hier voor de QR code variant.

Geen opmerkingen:

Een reactie plaatsen