Giter Club home page Giter Club logo

postscriptbarcode's People

Contributors

acohn avatar chhitz avatar gitlost avatar glensc avatar metafloor avatar terryburton avatar vadz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

postscriptbarcode's Issues

Matrix renderer: Outline tracing and support for inkspread

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.

Allow repeated GS1 AIs

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)?

Data Matrix - selectable encoding

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.

QR Code high-level encoder bug

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

Optimised encoding of PDF417 input data

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.

S versions in Code One broken

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.

codeone.zip

Ta

Martin

Add support for textxalign=full

Stretch the inter-character gap to fill the width of the symbol. Observe padding.

Consider formats for which this might be the default.

Provide facility to encode parenthesis within AI data

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.

Code 128 manual subset selection

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?

Simplify interaction between parse and parsefnc options

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!

Rendering revamp

Issue to gather idea and track work on the rendering revamp

  • Specify X-dimension directly
  • Grid-fitting
  • Review sizing options
  • "Standards compliant" constraints

Documentation updates

  • showborder
  • borderwidth
  • border{left,right,top,bottom}
  • barcolor
  • backgroundcolor
  • bordercolor
  • addontext{font,size}
  • addontext{x,y}offset
  • guardwhitespace
  • guardwidth
  • guardheight
  • guard{left,right}pos
  • guard{left,right}ypos
  • inkspread, inkspread{v,h} (matrix style}

Implement Han Xin code

  • High-level data encoding
    • Byte mode
  • Version selection
  • Reed Solomon error codewords
    • Codeword splitting into blocks/Interleaving
  • Lucky 13 interleaving
  • Matrix setup (finders, alignment, assistant alignment, function modules)
  • Data placement in matrix
  • Apply masking
  • Mask evaluation and selection
  • Add function information

Add input validation to each symbology

Add proper input validation with detailed error messages to all symbologies:

  • auspost
  • azteccode
  • codablockf
  • code128
  • code16k
  • code49
  • code93
  • code93ext
  • codeone
  • daft
  • databarexpanded
  • databarexpandedcomposite
  • databarexpandedstacked
  • databarexpandedstackedcomposite
  • databarlimitedcomposite
  • databaromni
  • databaromnicomposite
  • databarstackedcomposite
  • databarstackedomnicomposite
  • databartruncatedcomposite
  • dotcode
  • ean13composite
  • ean8composite
  • gs1-128
  • gs1-128composite
  • gs1-cc
  • gs1datamatrix
  • hanxin
  • japanpost
  • maxicode
  • micropdf417
  • msi
  • onecode
  • pdf417
  • posicode
  • qrcode
  • telepen
  • upcacomposite
  • upcecomposite

Implement Code One S-type binary encoding

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.

Data Matrix improvements

  • SAM
  • ECI
  • FNC1 in 2nd
  • Auto detection and compression of "[)>{RS}NN{GS}...{RS}{EOT}" structured data ("ISO/IEC15434 Syntax for high-capacity ADC media")

Composite symbols do not honour the dontdraw option

Support required for:

  • ean13composite
  • ean8composite
  • upcacomposite
  • upcecomposite
  • gs1-128composite
  • databarexpandedcomposite
  • databarexpandedstackedcomposite
  • databarlimitedcomposite
  • databaromnicomposite
  • databarstackedcomposite
  • databarstackedomnicomposite
  • databartruncatedcomposite

Documentation Improvement: Running Ghostscript on Windows

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.)

Error generating some QRCodes (Uppercase issue?)

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.