drawing a Barcode without a Barcode font

Matthias Rebbe matthias_livecode_150811 at m-r-d.de
Sun Jul 22 17:43:42 EDT 2018


Of course i meant

So the code below shows the settings which allow us to scan the labels when printed with a Toshiba B-EV4D and a Zebra LP 2844.

> Am 22.07.2018 um 23:18 schrieb Matthias Rebbe via use-livecode <use-livecode at lists.runrev.com>:
> 
> I have to add something.
> 
> As I wrote, we were able to successfully scan the labels. This is true as long as we print the labels with a laser printer.
> 
> If we print the labels with a thermo printer (203 dpi) then the code cannot be scanned with the values i posted before.
> We  had set the line thickness of the rectangles to 0 and had to increase the width of the black bars and decrease the width of the clear ones.
> 
> So the code below shows the settings which allow us to scan the labels with a Toshiba B-EV4D and a Zebra LP 2844.
> 
> put “3" into tNarrow
> put “6" into tWide
> set the width of grc "narrowC" to (tNarrow - 2)
> set the width of grc "narrowB" to (tNarrow -3)
> set the width of grc "wideC" to tWide
> set the width of grc "wideB" to tWide
> 
> Regards,
> 
> Matthias Rebbe
> 
> 
>> Am 20.07.2018 um 13:31 schrieb Matthias Rebbe via use-livecode <use-livecode at lists.runrev.com>:
>> 
>> We tried here with iPhone and also with an USB scanner. Both devices scanned the code successfully.
>> 
>> I have just finished a program for shipment. It fetches customer and invoice data from the accounting software and creates then the shipment labels including a Code25i barcode and a QR code. The carrier is Trans-o-Flex. I need to send some sample labels to their IT department. They will check if the labels are readable by their scanners. But i am now confident, that this will work on their side also.
>> 
>> Thanks again.
>> 
>> Matthias
>> 
>> 
>> 
>>> Am 20.07.2018 um 11:31 schrieb Mike Bonner via use-livecode <use-livecode at lists.runrev.com>:
>>> 
>>> Very cool!  Does it actually produce a code that can be scanned?
>>> 
>>> On Fri, Jul 20, 2018 at 3:25 AM Matthias Rebbe via use-livecode <
>>> use-livecode at lists.runrev.com> wrote:
>>> 
>>>> Mike
>>>> 
>>>> you´re awesome. That is already an almost complete solution to my
>>>> question. Never had expected that. Thank you very much.
>>>> I´ve made some little changes. One among of them is:
>>>> To have all the separate bars of the barcode in a group, i changed the
>>>> lines where the grc is cloned
>>>> to for example        copy grc “narrowB” to grp “barcode2of5”
>>>> 
>>>> Here´s now my code to convert the nNnNN…. string to Barcode
>>>> 
>>>> local tLast
>>>> on mouseup
>>>> if there is a grp "barcode2of5" then delete grp "barcode2of5"
>>>> -- now change the width of the template graphics
>>>> put "2" into tNarrow
>>>> put "4" into tWide
>>>> set the width of grc "narrowC" to tNarrow
>>>> set the width of grc "narrowB" to tNarrow
>>>> set the width of grc "wideC" to tWide
>>>> set the width of grc "wideB" to tWide
>>>> put "0" into tHorAdjust -- allows to put a gap beween the separate bars.
>>>> put "60,286" into tBarTopLeft -- defines where the first bar is placed
>>>> put empty into tLast
>>>> put fld "2of5" into tChars -- the field with your wNnnW string
>>>> set the casesensitive to true -- to differentiate case of course
>>>> create grp "barcode2of5"
>>>> repeat for each char tChar in tChars
>>>>    switch tChar
>>>>       case "N"
>>>>          -- checks the char, and clones the matching bar.
>>>>          --if its the first time through, places it at astart location
>>>>          -- then uses the id of the most recent bar forplacement
>>>> purposes
>>>>          --clone grc "narrowB"
>>>>          copy grc "narrowB" to grp "barcode2of5"
>>>>          if tLast is empty then
>>>>             set the topleft of the last grc to tBarTopLeft
>>>>          else
>>>>             set the topleft of the last grc to horAdjust(tHorAdjust)
>>>>          end if
>>>>          break
>>>>       case "n"
>>>>          --clone grc "narrowC"
>>>>          copy grc "narrowC" to grp "barcode2of5"
>>>>          if tLast is empty then
>>>>             set the topleft of the last grc to tBarTopLeft
>>>>          else
>>>>             set the topleft of the last grc to horAdjust(tHorAdjust)
>>>>          end if
>>>>          break
>>>>       case "W"
>>>>          --clone grc "wideB"
>>>>          copy grc "wideB" to grp "barcode2of5"
>>>>          if tLast is empty then
>>>>             set the topleft of the last grc to tBarTopLeft
>>>>          else
>>>>             set the topleft of the last grc to horAdjust(tHorAdjust)
>>>>          end if
>>>>          break
>>>>       case "w"
>>>>          --clone grc "widec"
>>>>          copy grc "widec" to grp "barcode2of5"
>>>>          if tLast is empty then
>>>>             set the topleft of the last grc to tBarTopLeft
>>>>          else
>>>>             set the topleft of the last grc to horAdjust(tHorAdjust)
>>>>          end if
>>>>          break
>>>>    end switch
>>>>    put the short id of the last grc into tLast -- the id of the most
>>>> recently placed bar
>>>> end repeat
>>>> set the height of grp "barcode2of5" to 69
>>>> set the width of grp "barcode2of5" to 360
>>>> end mouseup
>>>> 
>>>> --This function allows a horizontal adjustment of the single bars.
>>>> function horAdjust tHorAdjust
>>>> put the topright of grc id tLast into tTMP
>>>> set the itemdelimiter to ","
>>>> add tHorAdjust to item 1 of tTMP
>>>> return tTMP
>>>> end horAdjust
>>>> 
>>>> Again, thank you very much for your help.
>>>> 
>>>> Regards,
>>>> 
>>>> Matthias
>>>> 
>>>> 
>>>>> Am 20.07.2018 um 01:01 schrieb Mike Bonner via use-livecode <
>>>> use-livecode at lists.runrev.com>:
>>>>> 
>>>>> Not sure if it will work for your purpose, but as a test I created for
>>>>> graphic lines, 1 narrow black, 1 wider black, duplicated them and set the
>>>>> blendlevel of the copies so that they're transparent.
>>>>> 
>>>>> Grcs are named narrowB, wideB, narrowC and wideC (b for black, c for
>>>> clear)
>>>>> 
>>>>> Then used the following code (and your example string from above with the
>>>>> WWnNw stuff) to generate a barcode.
>>>>> 
>>>>> on mouseup
>>>>> put empty into tLast
>>>>> put field 1 into tChars -- the field with your wNnnW string
>>>>> set the casesensitive to true -- to differentiate case of course
>>>>> repeat for each char tChar in tChars
>>>>>   switch tChar
>>>>>      case "N" -- checks the char, and clones the matching bar.
>>>>>                     --if its the first time through, places it at a
>>>>> start location
>>>>>                     -- then uses the id of the most recent bar for
>>>>> placement purposes
>>>>>         clone grc "narrowB"
>>>>>         if tLast is empty then
>>>>>            set the topleft of the last grc to 10,50
>>>>>         else
>>>>>            set the topleft of the last grc to the topright of grc id
>>>>> tLast
>>>>>         end if
>>>>>         break
>>>>>      case "n"
>>>>>         clone grc "narrowC"
>>>>>         if tLast is empty then
>>>>>            set the topleft of the last grc to 10,50
>>>>>         else
>>>>>            set the topleft of the last grc to the topright of grc id
>>>>> tLast
>>>>>         end if
>>>>>         break
>>>>>      case "W"
>>>>>         clone grc "wideB"
>>>>>         if tLast is empty then
>>>>>            set the topleft of the last grc to 10,50
>>>>>         else
>>>>>            set the topleft of the last grc to the topright of grc id
>>>>> tLast
>>>>>         end if
>>>>>         break
>>>>>      case "w"
>>>>>         clone grc "widec"
>>>>>         if tLast is empty then
>>>>>            set the topleft of the last grc to 10,50
>>>>>         else
>>>>>            set the topleft of the last grc to the topright of grc id
>>>>> tLast
>>>>>         end if
>>>>>         break
>>>>> 
>>>>>   end switch
>>>>>   put the short id of the last grc into tLast -- the id of the most
>>>>> recently placed bar
>>>>> end repeat
>>>>> end mouseup
>>>>> 
>>>>> Spacing and line size might need to be tweaked, but it seems like this
>>>>> would be relatively straight forward.
>>>>> 
>>>>> On Thu, Jul 19, 2018 at 4:30 PM Bob Sneidar via use-livecode <
>>>>> use-livecode at lists.runrev.com> wrote:
>>>>> 
>>>>>> I think the trick will be drawing large graphics one at a time and
>>>>>> properly spaced at several times their finished size, perhaps off
>>>> screen,
>>>>>> then getting a snapshot of the result and scaling it down. Not sure how
>>>>>> picky the readers will be.
>>>>>> 
>>>>>> Bob S
>>>>>> 
>>>>>> 
>>>>>>> On Jul 19, 2018, at 15:06 , Matthias Rebbe via use-livecode <
>>>>>> use-livecode at lists.runrev.com> wrote:
>>>>>>> 
>>>>>>> Currently i am using a special 2of5i barcode font. The font .has only
>>>>>> four characters (bars) in its set.
>>>>>>> The code displays a
>>>>>>> narrow space (blank) bar when the character is n
>>>>>>> narrow black bar when N
>>>>>>> wide space when w
>>>>>>> wide black bar when W
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> use-livecode mailing list
>>>>>> use-livecode at lists.runrev.com
>>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>>>> subscription preferences:
>>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>>>> 
>>>>> _______________________________________________
>>>>> use-livecode mailing list
>>>>> use-livecode at lists.runrev.com
>>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>>> 
>>>> 
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode at lists.runrev.com
>>>> Please visit this url to subscribe, unsubscribe and manage your
>>>> subscription preferences:
>>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>> _______________________________________________
>>> use-livecode mailing list
>>> use-livecode at lists.runrev.com
>>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list