bwipp / postscriptbarcode Goto Github PK
View Code? Open in Web Editor NEWBarcode Writer in Pure PostScript
Home Page: https://bwipp.terryburton.co.uk
License: MIT License
Barcode Writer in Pure PostScript
Home Page: https://bwipp.terryburton.co.uk
License: MIT License
Specification was ambiguous and insufficient reference material to verify best guess approach.
For matrix-style symbologies we render by drawing and filling squares for each dark module.
To properly support inkspread without leaving imaging artifacts it is necessary to trace the outline of clusters of dark modules to render the minimal set of complex shapes, contracting the edges by a given fixed amount.
After which we could look at merging the linear and matrix renderers.
All the strings
(45)(45)z
(45)a(45)z
(45)ab(45)z
(45)abc(45)z
...
produce the same output. I've tested this with bwip-js. BTW, is it possible to test the original PS code without latex (e.g. minimal ps-file which includes pst-barcode.pro and calls the relevant function)?
Closed by d8a6d21
There are cases where selecting a fixed encoding method is preferable over automatic selection for minimum barcode size. (some systems are fixed to read only certain types)
I'd suggest reintroducing the "encoding=???" options so the default can be overridden.
Hey There. I tried to generate a M2 QR Code with the following options:
eclevel=L version=M2 format=micro
Referring to http://www.qrcode.com/en/codes/microqr.html 6 alphanumeric characters can be encoded using eclevel=L, 5 using eclevel=M. If I try to encode any character (even just one) I get a "No valid symbol available" error.
Validate that input is in the range 0 to 255.
qrcode.ps high-level encoding fails on the gs1qrcode.ps rendition of:
(91)230(01)00000000699129(241)69912(3103)000865(8005)000149(3922)000129(17)171231(16)171225(412)8480000000002(10)L12345
Code for this is ready for testing in the pdf417_encode branch.
I suggest to run make build/standalone/pdf417.ps
then add invocation to end of this file and run directly.
Attempting to render any of the S versions of a Code One barcode result in an undefined error on metrics.
Example test:
30 480 moveto (406990) (version=S-10) /codeone /uk.co.terryburton.bwipp findresource exec
The metrics array is defined in the non-stype 'else' part of the code, but used after the ifelse.
The attached edit should fix it.
Ta
Martin
Stretch the inter-character gap to fill the width of the symbol. Observe padding.
Consider formats for which this might be the default.
Originally from the following report:
It is not possible to generate the FNC1 always automatically.
For example the code (10)ABC(3103)000123
The identifier (10) could contain up to 20 alphanumeric characters including left and right paranthesis "()". This variable length field has to be terminated with a FNC1. But this can not always be placed automatically before the next left paranthesis because this could be part of the data of this identifier. Therefore it has to be possible to set a FNC1 by the user.
I was wondering whether it is possible to create a Code 128 barcode, but with different subsets used for different parts of it? More specifically, say subset A for the first 8 characters, B for the next 10, etc.
I’ve never come across anything like this before and wondered whether BWIPP would be able to generate such a barcode?
Trying to generate a reader-init bar code for an old scanner, it causes an abort in BWIPP/ghostscript (and an infinite loop in bwip-js ;-).
encoder: code128
text: ^FNC3^027BV0^FNC3
opts: parse parsefnc
Ghostscript reports Error: /typecheck in --cvi--
.
That cvi
is in the one in the parse
branch. It's probably enough to check the next character after the caret and verify it is a digit before doing the replacement. That should be sufficient to differentiate between parse
and parsefnc
entities.
Reporting this for code128
but this bug likely hides in a handful of other encoders.
Thanks!
Cost of specification is $200.
Issue to gather idea and track work on the rendering revamp
An option to switch from squares to dots (with configurable radius) would be very handy.
Description here: https://github.com/bwipp/postscriptbarcode/tree/master/libs
Specification here: https://github.com/bwipp/postscriptbarcode/wiki/Metadata-Specification
If you're a BWIPP frontend developer the I encourage a discussion of requirements here.
Add proper input validation with detailed error messages to all symbologies:
Currently the user must enter successive 5-bit characters using the ^NNN pattern.
We should perform the binary encoding of the given input, up to 18 digits -> 60 bits.
FLG(0)
FLG(1)
to FLG(6)
Add support for basic human readable text to 2D barcodes.
Support required for:
Documentation contain the following notice:
“The Windows pre-built Ghostscript binary uses a ROM file system. If you want to modify the Resources available, then . . . put all the required resources on disk and tell Ghostscript to use the disk-based resources. . . . You will need to download the Ghostscript source (the Resources are not currently available separately) . . . modify the Resources directory and tell Ghostscript to use it by adding one of the relevant command line switches (-I, -sGenericResourceDir) or possibly by setting the GS_LIB environment variable.”
It is possible to specify both Ghostscript ROM resource and custom resources (such as bwipp) without downloading and modifying resource directory as suggested by the note. This can be acomplished by using Ghostscript -I
switch. For example:
C:/GS/bin/gswin64c.exe -dSAFER -I%rom%Resource/;C:/bwipp/Resource/ -sDEVICE=pdfwrite -o D:/barcode.pdf D:/create-barcode.ps
(The command above is one line.)
sometimes creating qr codes will throw this error (running through ghostscript)
Unrecoverable error: typecheck in moveto
Operand stack:
--nostringval-- 10100100111
Seems to be when there is a number of uppercase characters, I've not been able to track down the exact cause. however...
this works ok
350 -80 moveto (testing) (eclevel=Q) /qrcode /uk.co.terryburton.bwipp findresource exec
as does this
350 -80 moveto (TEsting) (eclevel=Q) /qrcode /uk.co.terryburton.bwipp findresource exec
while this brings up the error
350 -80 moveto (TESting) (eclevel=Q) /qrcode /uk.co.terryburton.bwipp findresource exec
And this also errors
350 -80 moveto (TESTING) (eclevel=Q) /qrcode /uk.co.terryburton.bwipp findresource exec
I'm using the latest version of the qrcode.ps from the repository.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.