On 2013-05-11, Ivan Shmakov <
onei...@gmail.com> wrote:
> [Cross-posting to news:alt.barcodes.]
>>>>>> Andrew Smallshaw <
and...@sdf.lonestar.org> writes:
> > formats and the option of EPS output - I'm not overly inclined to
> > trust low res bitmaps for something like this.
>
> Even given that the majority of barcodes (and non-bar codes,
> such as the QR code) are essentially raster? (Well, except the
> alphanumeric label, if any.)
Yes - I've had too many problems with bitmap barcodes in the past.
It seems the biggest problem is that most printers seem to see a
raster image and assume it's fair game for dithering. "Dotty"
barcodes don't scan very well.
> > Formatted printed output from programs generally means PostScript in
> > any event (for a Unix shop at least ;-) ), so inserting a barcode
> > generation function in the header and then calling it with the right
> > options later is no big hassle.
>
> Yet, I cannot refrain from reminding that PostScript is /not/ a
> format, but a fully-featured programming language (which has
> certain implications on its own.) Surely, I'd prefer to handle
> a format which I can parse, instead of one I have to /execute/.
> (Generally, that'd mean either PDF or SVG, although the support
> for either seem to be falling behind that for PostScript.)
It's horses for courses. Personally I view that programmability
as its greatest strength - it means you can draft a standard job
header containing the relevant functions and from then on the
job-specific stuff is high-level stuff that reflects both the
logical layout of the job and the internal layout of the program
doing the generation.
Since the issue here is barcodes consider drawing one "manually".
You'll have a sequence of commands :
Go to x1,y1
Define box width x2 height y2
Fill with black.
Go to x3,y3
Define box width x4 height y4
Fill with black...
30 or 40 times over. That kind of generation gets real tedious
real fast and the resulting code inevitably looks a right mess.
In contrast with postscript you define a standard function once in
the job header and then simply call it, e.g.
(1234567890123) ean13
Of course you can argue that the complexity is simply shifted but
it always seems a _lot_ cleaner to me to put the smarts in the job
itself as opposed to the program - it saves "bitty" I/O for one
thing and expresses the complex stuff in a language designed for
the task at hand.
--
Andrew Smallshaw
and...@sdf.lonestar.org