Prev: VB3 anyone...?
Next: rsidll32
From: Gaga on 27 May 2005 20:30 "Gaga" <Gaga(a)momo.com> wrote in message news:4297b558$0$5534$afc38c87(a)news.optusnet.com.au... > In the case of a "12 twip thickness line" (as in your example) the > thickness of the line will be 1.69 printer pixels. To avoid any confusion, I'd like to point out that I meant a 12 twip thickness line will be 1.69 printer pixels *on a printer that has a native resolution of 203 dots per inch*, as in your own specific example, and that the printer would of course be unable to produce such a line exactly, and so it will draw a line that is closest to that value (which on most printers will be a "whole pixel" value and which even on printers that can artificially "increase" the apparent effective resolution beyond the native value will still not be exactly 1.69). Mike
From: BigOne9x2 on 28 May 2005 14:22 "mjimeno" <miguelangeljimeno(a)hotmail.com> wrote: >Here is my problem: I want to print to a barcode printer (Zebra 2844) in >this way: I want to use true type fonts like "Arial Bold", so I used the >printer method from VB. Perfect. Now I want to print barcodes too, but it >have been not easy trying with barcode fonts and other methods, so I >decided to print barcodes using raw data via API programming. Here is the >exact problem: If I use raw data I can't use windows fonts (according to >Zebra is possible, but not to me) and if I use printer method I can't >print perfectly barcodes like with raw data. The question is: Can I send >raw data using printer method? any other suggestion, please? >Thanks, Miguel. > Use the EPL2 lang for the ZEBRA printer: http://www.zebra.com/id/zebra/na/en/index/resource_library/manuals.html
From: mjimeno on 31 May 2005 11:16 BigOne: I've used EPL, that's my problem. Everything would be resolved if I could use true type fonts with EPL, but as the manual said, I need to download to the printer the windows font. I do so, with the zebra fonts downloader, and the printer asign a letter to it. But I use it with the command to print but it doesn't recognize it and doesn't print a point. So, any suggestion, please? Mikey: I'll try your fonts. Thanx. Gaga: explain me please a little bit more about intelligent printing: How can I print in the exact point where the printer can do it perfectly? What do you mean with: "desired output data in terms of the actual native resolution of the current output device (printer) and then draw the lines accordingly". I've been trying some tips you told me, but still no results. Thanks everyone for your suggestions M
From: Gaga on 31 May 2005 19:48 "mjimeno" <miguelangeljimeno(a)hotmail.com> wrote in message news:b4b46bf7da9b57e23790dbde7efacab8(a)localhost.talkaboutprogramming.com... > Gaga: explain me please a little bit more about intelligent printing: > How can I print in the exact point where the printer can do it > perfectly? What do you mean with: "desired output data in terms > of the actual native resolution of the current output device (printer) What I mean is that for something like barcodes it is the relationship between the thickness of the individual lines and the relative spacing that counts, rather than the overall size. That relationship can be severely upset if the printer cannot print a dot at the exact position you have specified and if it therefore has to decide for itself whether to go "to the next whole dot backwards" or "to the next whole dort forwards". This doesn't matter too much if you are using a high resolution printer (or if the barcode you are printing is quite large in overall size), because even the thinest line you require will probably consist of a number of individual dots that are themselves quite a bit thinner than the desired line thickness. It does, however, matter *a lot* if you are using a low resolution printer (as in your own case where I think you said it is only about 200 dots per inch). In the case of a very small barcode the thickness of many of the lines will be not much more than the thickness of a single dot (or perhaps even less), and that is where you get the problems. Ideally, if you are using simple methods such as True Type barcode fonts then even the thinnest line you require in the barcode as printed should be at least as thick as three or four individual printer dots, and preferably more than that. As I've already said, I've never actually dealt with barcodes and I know nothing at all about them, but that's the way I see it at the moment. You can overcome many of these problems if you take care when choosing the overall barcode size. The way I see it, the smallest barcode you will be able to reliably print will be of such size that the thickness of the "thinnest" line you require is exactly one "printer pixel", with all of the other "thicknesses" being a whole number of pixels - but having said that I don't know what the "size relationship" actually is in a real bar code, so I can't really analyse it further at this point. Perhaps you would care to tell me. For example, if (in a typical bar code) the thickness of the thinnest line is exactly "one unit" then what is the thickness (in units) of the "next thickest line" that you might require. Also, what is the thickness of the "thinnest white band" that might be required in such a bar code. I've got much to learn, and sadly (at the moment) no time to learn it in! (I'm off on a little "holiday within a holiday" today and I'm likely to be away for up to a week). You should be able to sort a lot of it out yourself though. Start off by setting your Printer.ScaleMode to vbPixels and try to arrange it so that the desired "line thickness" and the desired "white space thickness" of every line in your barcode is an integer. If that isn't possible (perhaps maybe because in some barcodes one particular line might require to be "one and a half times as thick" as the previous thickness of line) then try to arrange it so that such relationships between line thickness do not occur until the actual desired thickness (of the thinner line down) is at least two whole pixels. I'm pretty sure that barcodes allow quite a bit of "drift" from the ideal, otherwise they would be totally unreliable in real life situations, so there may be other "approximations" that would be suitable, but I just don't know enough about barcodes yet to sort that out. Let me know how you get on (although I may not see your reply for a week or so). Mike
From: mjimeno on 7 Jun 2005 13:22
Mike, or gaga(a)momo: Barcodes are this simple: Every code you need to print (0 to 255 ascii) is represented by a 6 digits code. For example, if you need to print the "A", you need to print "211 12", where a 1 is a thin line, 2 is a fat line, and the space is a space. So, you usually print the fat line twice the width of the thin line, but you could also use a ratio like 5:2, 6:3, 2:1, and so. The space is exacly the width of a thin line, but white, not black. That's the way I can explain you barcodes, I hope you got it. Now, I use Printer.ScaleMode in vbPixels, but didn't work neither. As I understand what you told me, I must print where the printer can print, not where I want to. But, should I better use some points mode or scale, as I guess it's the mode it can print perfectly? and how to know where it's able to print? Thanks, M |