drawing a Barcode without a Barcode font

Phil Davis revdev at pdslabs.net
Mon Jul 23 20:02:11 CEST 2018


I wonder what would happen if you turned the bar code by 90 degrees and 
then printed it? Could it be scanned then?

Just a wild thought...

Phil Davis


On 7/22/18 2:43 PM, Matthias Rebbe via use-livecode wrote:
> 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
> _______________________________________________
> 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

-- 
Phil Davis




More information about the use-livecode mailing list