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@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@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@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@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@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@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@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@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@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@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@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@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@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@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


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to