-
-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved: Barcode scaling for PDF417 and Code128 #219
Conversation
Improved: PDF417 scaling Improved: DHL uses a decimal height for PDF417 Improved: PDF417 size when no column value is given
src/BinaryKits.Zpl.Viewer/ElementDrawers/PDF417ElementDrawer.cs
Outdated
Show resolved
Hide resolved
Thanks to reportingissue I found more improvements for the vertical scaling, it looks even better now. I also added a PDF417 barcode test in the list, here it is with the real print and the overlay: As long as the rows and columns are defined, it's very good. The visible differences are basically always related to the ZXing library having to guess the row/column combination. |
Improved: Code128 invocation filtering
Hardened the Code128 drawer code a bit more and improved GS1 support, added an example and this is the generated and printed result of that: You can preview it here: https://binarykits.dvdg.nu/ |
* Create dotnet - test.yml * Bump SkiaSharp from 2.88.3 to 2.88.6 in /src/BinaryKits.Zpl.Viewer Bumps [SkiaSharp](https://github.com/mono/SkiaSharp) from 2.88.3 to 2.88.6. - [Release notes](https://github.com/mono/SkiaSharp/releases) - [Commits](mono/SkiaSharp@v2.88.3...v2.88.6) --- updated-dependencies: - dependency-name: SkiaSharp dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * fix(viewer): cannot find package vue@next (#208) * fix(viewer): cannot find package vue@next * Update index.html Don't use specific versions for web dependencies. * Enable ^FV command (needed for UPS) (#195) * Enable ^FV command - Based off ^FD * ZPL Parser: Enable ignoring certain commands (#194) * Enable ignoring certain commands - small refactors + comments in the zpl parser * Comment specification * Add documentation on how to add barcode support (#198) * Change invertdraw to skia xor blending (#193) - Also added tests - Refactored viewer tests * Structure Viewer UnitTest project (merge after #193) (#199) * Change invertdraw to skia xor blending - Also added tests - Refactored viewer tests * Begin structuring viewer testing project - readme for goals - custom test for feature development - zpl/png data folder copied to output - factor out more to common * Try to fix cannot copy data to output for linux build * Copy data again * Capitalization mistake * Added: Font fallback structure for the default fonts. (#217) * Added: Font fallback structure for the default fonts. * Improved: DejaVu Sans Mono as first mono type Improved: Courier New is more often available than Courier * Added: Roboto font to Dockerfile * Improved: Enabled antialiased text (#218) * Improved: Barcode scaling for PDF417 and Code128 (#219) * Improved: Code128 charset usage Improved: PDF417 scaling Improved: DHL uses a decimal height for PDF417 Improved: PDF417 size when no column value is given * Improved: PDF417 uses correct vertical scaling now * Improved: GS1 type support Improved: Code128 invocation filtering * Added: PDF generation (#220) * Added: Font fallback structure for the default fonts. * Improved: DejaVu Sans Mono as first mono type Improved: Courier New is more often available than Courier * Improved: Enabled antialiased text * Improved: Code128 charset usage Improved: PDF417 scaling Improved: DHL uses a decimal height for PDF417 Improved: PDF417 size when no column value is given * Added: Roboto fontface to docker image * Improved: Added a working roboto font to the Dockerfile * Improved: PDF417 uses correct vertical scaling now * Added: PDF support Added: Download buttons for ZPL, PNG and PDF Fixed: GraphicBox radius with thicker lines Improved: Invert/Reverse draw results when using white elements Improved: White background for PNG requested from viewer * Added: More real world tests Improved: Tabs for tests and examples in webinterface * Improved: GraphicBox can't have a border smaller than 1 * Improved: Made more ^FR blending native for performance * Improved: GraphicBox border should not exceed half of the smallest side. Improved: Adjusted some example sizes * Fixed: Build issues * Improved: More Skia blending to improve performance Improved: Performance of GraphicBox rounding fix Added: GraphicCircle supports reverse draw now Improved: Overlay can handle custom label sizes better now * Improved: Overlay requests may use wrong number formatting * Bump Dependencies Bump ImageSharp and SkiaSharp dependencies. * Added: MaxiCode support (#224) * Added: MaxiCode support * Improved: Slight finetune on maxicode linux fix * Patch #194 (#227) Don't neglect to append on ignore. * Added: Barcode93 support (#226) * Added: Barcode93 support * Update Code93 Update interpretation line Add test to WebApi * Fix vue lib URL (#228) * Drop BarcodeLib dependency (#229) * Drop BarcodeLib dependency * don't inline regex * Prepare for release * Silence warnings --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Yiping <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dmitrii Savchenkov <[email protected]> Co-authored-by: reportingissue <[email protected]> Co-authored-by: Daniël van der Garde <[email protected]> Co-authored-by: Marius Starke <[email protected]> Co-authored-by: Yiping <[email protected]>
* Improved: Code128 charset usage Improved: PDF417 scaling Improved: DHL uses a decimal height for PDF417 Improved: PDF417 size when no column value is given * Improved: PDF417 uses correct vertical scaling now * Improved: GS1 type support Improved: Code128 invocation filtering
* Create dotnet - test.yml * Bump SkiaSharp from 2.88.3 to 2.88.6 in /src/BinaryKits.Zpl.Viewer Bumps [SkiaSharp](https://github.com/mono/SkiaSharp) from 2.88.3 to 2.88.6. - [Release notes](https://github.com/mono/SkiaSharp/releases) - [Commits](mono/SkiaSharp@v2.88.3...v2.88.6) --- updated-dependencies: - dependency-name: SkiaSharp dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * fix(viewer): cannot find package vue@next (#208) * fix(viewer): cannot find package vue@next * Update index.html Don't use specific versions for web dependencies. * Enable ^FV command (needed for UPS) (#195) * Enable ^FV command - Based off ^FD * ZPL Parser: Enable ignoring certain commands (#194) * Enable ignoring certain commands - small refactors + comments in the zpl parser * Comment specification * Add documentation on how to add barcode support (#198) * Change invertdraw to skia xor blending (#193) - Also added tests - Refactored viewer tests * Structure Viewer UnitTest project (merge after #193) (#199) * Change invertdraw to skia xor blending - Also added tests - Refactored viewer tests * Begin structuring viewer testing project - readme for goals - custom test for feature development - zpl/png data folder copied to output - factor out more to common * Try to fix cannot copy data to output for linux build * Copy data again * Capitalization mistake * Added: Font fallback structure for the default fonts. (#217) * Added: Font fallback structure for the default fonts. * Improved: DejaVu Sans Mono as first mono type Improved: Courier New is more often available than Courier * Added: Roboto font to Dockerfile * Improved: Enabled antialiased text (#218) * Improved: Barcode scaling for PDF417 and Code128 (#219) * Improved: Code128 charset usage Improved: PDF417 scaling Improved: DHL uses a decimal height for PDF417 Improved: PDF417 size when no column value is given * Improved: PDF417 uses correct vertical scaling now * Improved: GS1 type support Improved: Code128 invocation filtering * Added: PDF generation (#220) * Added: Font fallback structure for the default fonts. * Improved: DejaVu Sans Mono as first mono type Improved: Courier New is more often available than Courier * Improved: Enabled antialiased text * Improved: Code128 charset usage Improved: PDF417 scaling Improved: DHL uses a decimal height for PDF417 Improved: PDF417 size when no column value is given * Added: Roboto fontface to docker image * Improved: Added a working roboto font to the Dockerfile * Improved: PDF417 uses correct vertical scaling now * Added: PDF support Added: Download buttons for ZPL, PNG and PDF Fixed: GraphicBox radius with thicker lines Improved: Invert/Reverse draw results when using white elements Improved: White background for PNG requested from viewer * Added: More real world tests Improved: Tabs for tests and examples in webinterface * Improved: GraphicBox can't have a border smaller than 1 * Improved: Made more ^FR blending native for performance * Improved: GraphicBox border should not exceed half of the smallest side. Improved: Adjusted some example sizes * Fixed: Build issues * Improved: More Skia blending to improve performance Improved: Performance of GraphicBox rounding fix Added: GraphicCircle supports reverse draw now Improved: Overlay can handle custom label sizes better now * Improved: Overlay requests may use wrong number formatting * Bump Dependencies Bump ImageSharp and SkiaSharp dependencies. * Added: MaxiCode support (#224) * Added: MaxiCode support * Improved: Slight finetune on maxicode linux fix * Patch #194 (#227) Don't neglect to append on ignore. * Added: Barcode93 support (#226) * Added: Barcode93 support * Update Code93 Update interpretation line Add test to WebApi * Fix vue lib URL (#228) * Drop BarcodeLib dependency (#229) * Drop BarcodeLib dependency * don't inline regex * Prepare for release * Silence warnings --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Yiping <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Dmitrii Savchenkov <[email protected]> Co-authored-by: reportingissue <[email protected]> Co-authored-by: Daniël van der Garde <[email protected]> Co-authored-by: Marius Starke <[email protected]> Co-authored-by: Yiping <[email protected]>
A DHL label that I use crashed on the PDF417 barcode and the Code128 barcodes are too long to fit on the page.
DHL uses
^BY2^B7N,6.7,5,,30,N
that has the following issues PDF417:^BY2
defines a width of2
but the code was hard set to3
.6.7
defines a rowHeight but as that is not an int, we default to 10.,,30
definesno
columns for30
rows, which is hard for the library used.DHL uses
>5
in the Code128 barcode. They do that to select the limited Code128C charset for that part of the barcode to have a shorter result, but we don't support that.A good fallback is the
TYPE.CODE128
option, which automatically optimizes the charset usage and comes very close to the expected result.(Left: after with Labelary overlay, right: before)
EDIT 05-04-2024:
After the last vertical scaling changes this is the result compared to the real print: