EAN/UPC: add quiet zone indicators option (API output_options

`EANUPC_GUARD_WHITESPACE`, CLI `--guardwhitespace`) (ticket #287)
EAN-2/EAN-5: HRT now at top instead of at bottom for standalones,
  following BWIPP
CLI: batch mode: don't close input if stdin
EAN/UPC: fix excess 1X to right of add-ons
Composites: fix excess whitespace; fix quiet zone calcs to allow
  for linear shifting
CLI: use own (Wine) version of `CommandLineToArgvW()` to avoid
  loading "shell32.dll"
Move "font.h" -> "raster_font.h"
EPS/SVG: use new `out_putsf()` func to output floats, avoiding
  trailing zeroes & locale dependency
EPS: simplify "TR" formula
SVG: change font from "Helvetica, sans serif" to "OCR-B, monospace";
  use single "<path>" instead of multiple "<rect>"s to draw boxes
  (reduces file size)
Add `EMBED_VECTOR_FONT` to `output_options` (CLI `--embedfont`) to
  enable embedding of font in vector output - currently only for
  SVG output of EAN/UPC
GUI: use "OCR-B" font for EAN/UPC and "Arimo" for all others (was
  "Helvetica" for both); paint background of screen preview light
  grey so as contrasts with whitespace and quiet zones
EMF: prefix funcs with `emf_`; simplify string `halign` handling
large: rename `large_int` -> `large_uint`
CODE128/common: move `c128_hrt_cpy_iso8859_1()` to
  `hrt_cpy_iso8859_1()` and add `ZINT_WARN_HRT_TRUNCATED` warning
  (for future use)
Various symbologies: replace `printf()` with `fputs()`
  (symbol->debug)
QRCODE: better assert(), removing a NOLINT (2 left)
CLI: add some more barcode synonyms for DBAR
common: various fiddlings
CMake: don't include png.c unless ZINT_USE_PNG (avoids clang
  warning)
This commit is contained in:
gitlost 2023-06-12 01:25:55 +01:00
parent 6d015d6a8f
commit 607e4ed33a
395 changed files with 11528 additions and 23016 deletions

View file

@ -1,207 +1,12 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="616" height="347" version="1.1"
xmlns="http://www.w3.org/2000/svg">
<desc>Zint Generated Symbol
</desc>
<g id="barcode" fill="#000000">
<rect x="0" y="0" width="616" height="347" fill="#FFFFFF" />
<rect x="0.00" y="0.00" width="32.00" height="48.00" />
<rect x="36.00" y="0.00" width="4.00" height="52.00" />
<rect x="44.00" y="0.00" width="4.00" height="48.00" />
<rect x="52.00" y="0.00" width="4.00" height="48.00" />
<rect x="68.00" y="0.00" width="16.00" height="12.00" />
<rect x="88.00" y="0.00" width="4.00" height="12.00" />
<rect x="96.00" y="0.00" width="4.00" height="12.00" />
<rect x="104.00" y="0.00" width="16.00" height="12.00" />
<rect x="136.00" y="0.00" width="8.00" height="12.00" />
<rect x="148.00" y="0.00" width="4.00" height="12.00" />
<rect x="156.00" y="0.00" width="8.00" height="12.00" />
<rect x="168.00" y="0.00" width="12.00" height="12.00" />
<rect x="204.00" y="0.00" width="12.00" height="12.00" />
<rect x="220.00" y="0.00" width="20.00" height="12.00" />
<rect x="244.00" y="0.00" width="12.00" height="12.00" />
<rect x="260.00" y="0.00" width="4.00" height="12.00" />
<rect x="272.00" y="0.00" width="4.00" height="12.00" />
<rect x="296.00" y="0.00" width="4.00" height="12.00" />
<rect x="316.00" y="0.00" width="4.00" height="12.00" />
<rect x="332.00" y="0.00" width="4.00" height="12.00" />
<rect x="340.00" y="0.00" width="8.00" height="12.00" />
<rect x="356.00" y="0.00" width="4.00" height="12.00" />
<rect x="368.00" y="0.00" width="4.00" height="12.00" />
<rect x="380.00" y="0.00" width="8.00" height="12.00" />
<rect x="408.00" y="0.00" width="8.00" height="12.00" />
<rect x="432.00" y="0.00" width="4.00" height="12.00" />
<rect x="440.00" y="0.00" width="8.00" height="12.00" />
<rect x="460.00" y="0.00" width="12.00" height="12.00" />
<rect x="476.00" y="0.00" width="16.00" height="12.00" />
<rect x="496.00" y="0.00" width="4.00" height="12.00" />
<rect x="504.00" y="0.00" width="4.00" height="24.00" />
<rect x="516.00" y="0.00" width="16.00" height="12.00" />
<rect x="544.00" y="0.00" width="28.00" height="48.00" />
<rect x="576.00" y="0.00" width="4.00" height="48.00" />
<rect x="592.00" y="0.00" width="4.00" height="48.00" />
<rect x="600.00" y="0.00" width="4.00" height="48.00" />
<rect x="612.00" y="0.00" width="4.00" height="48.00" />
<rect x="68.00" y="12.00" width="20.00" height="12.00" />
<rect x="92.00" y="12.00" width="4.00" height="24.00" />
<rect x="100.00" y="12.00" width="4.00" height="12.00" />
<rect x="116.00" y="12.00" width="8.00" height="12.00" />
<rect x="136.00" y="12.00" width="4.00" height="24.00" />
<rect x="144.00" y="12.00" width="4.00" height="12.00" />
<rect x="160.00" y="12.00" width="20.00" height="12.00" />
<rect x="188.00" y="12.00" width="8.00" height="12.00" />
<rect x="204.00" y="12.00" width="24.00" height="12.00" />
<rect x="232.00" y="12.00" width="12.00" height="12.00" />
<rect x="248.00" y="12.00" width="4.00" height="12.00" />
<rect x="264.00" y="12.00" width="4.00" height="12.00" />
<rect x="272.00" y="12.00" width="8.00" height="12.00" />
<rect x="288.00" y="12.00" width="8.00" height="12.00" />
<rect x="300.00" y="12.00" width="16.00" height="12.00" />
<rect x="328.00" y="12.00" width="4.00" height="12.00" />
<rect x="340.00" y="12.00" width="4.00" height="36.00" />
<rect x="348.00" y="12.00" width="4.00" height="24.00" />
<rect x="360.00" y="12.00" width="24.00" height="12.00" />
<rect x="388.00" y="12.00" width="12.00" height="12.00" />
<rect x="408.00" y="12.00" width="12.00" height="12.00" />
<rect x="424.00" y="12.00" width="4.00" height="12.00" />
<rect x="432.00" y="12.00" width="16.00" height="12.00" />
<rect x="456.00" y="12.00" width="12.00" height="12.00" />
<rect x="476.00" y="12.00" width="24.00" height="12.00" />
<rect x="512.00" y="12.00" width="4.00" height="12.00" />
<rect x="520.00" y="12.00" width="12.00" height="12.00" />
<rect x="68.00" y="24.00" width="12.00" height="12.00" />
<rect x="84.00" y="24.00" width="4.00" height="12.00" />
<rect x="104.00" y="24.00" width="24.00" height="12.00" />
<rect x="148.00" y="24.00" width="4.00" height="12.00" />
<rect x="156.00" y="24.00" width="8.00" height="12.00" />
<rect x="172.00" y="24.00" width="20.00" height="12.00" />
<rect x="204.00" y="24.00" width="4.00" height="12.00" />
<rect x="216.00" y="24.00" width="4.00" height="12.00" />
<rect x="224.00" y="24.00" width="4.00" height="12.00" />
<rect x="236.00" y="24.00" width="16.00" height="12.00" />
<rect x="272.00" y="24.00" width="4.00" height="12.00" />
<rect x="280.00" y="24.00" width="20.00" height="12.00" />
<rect x="304.00" y="24.00" width="12.00" height="12.00" />
<rect x="320.00" y="24.00" width="8.00" height="12.00" />
<rect x="356.00" y="24.00" width="4.00" height="12.00" />
<rect x="380.00" y="24.00" width="16.00" height="12.00" />
<rect x="408.00" y="24.00" width="20.00" height="12.00" />
<rect x="432.00" y="24.00" width="4.00" height="12.00" />
<rect x="440.00" y="24.00" width="16.00" height="12.00" />
<rect x="464.00" y="24.00" width="8.00" height="12.00" />
<rect x="476.00" y="24.00" width="8.00" height="12.00" />
<rect x="488.00" y="24.00" width="4.00" height="12.00" />
<rect x="496.00" y="24.00" width="4.00" height="12.00" />
<rect x="512.00" y="24.00" width="20.00" height="12.00" />
<rect x="68.00" y="36.00" width="4.00" height="12.00" />
<rect x="76.00" y="36.00" width="4.00" height="12.00" />
<rect x="84.00" y="36.00" width="16.00" height="12.00" />
<rect x="108.00" y="36.00" width="16.00" height="12.00" />
<rect x="136.00" y="36.00" width="12.00" height="12.00" />
<rect x="160.00" y="36.00" width="12.00" height="12.00" />
<rect x="184.00" y="36.00" width="4.00" height="12.00" />
<rect x="192.00" y="36.00" width="4.00" height="12.00" />
<rect x="204.00" y="36.00" width="12.00" height="12.00" />
<rect x="220.00" y="36.00" width="8.00" height="12.00" />
<rect x="232.00" y="36.00" width="4.00" height="12.00" />
<rect x="252.00" y="36.00" width="8.00" height="12.00" />
<rect x="272.00" y="36.00" width="8.00" height="12.00" />
<rect x="284.00" y="36.00" width="12.00" height="12.00" />
<rect x="304.00" y="36.00" width="8.00" height="12.00" />
<rect x="316.00" y="36.00" width="4.00" height="12.00" />
<rect x="352.00" y="36.00" width="8.00" height="12.00" />
<rect x="368.00" y="36.00" width="16.00" height="12.00" />
<rect x="388.00" y="36.00" width="12.00" height="12.00" />
<rect x="408.00" y="36.00" width="8.00" height="12.00" />
<rect x="428.00" y="36.00" width="8.00" height="16.00" />
<rect x="444.00" y="36.00" width="4.00" height="12.00" />
<rect x="464.00" y="36.00" width="4.00" height="12.00" />
<rect x="476.00" y="36.00" width="20.00" height="12.00" />
<rect x="500.00" y="36.00" width="4.00" height="12.00" />
<rect x="508.00" y="36.00" width="24.00" height="12.00" />
<rect x="536.00" y="36.00" width="4.00" height="16.00" />
<rect x="44.00" y="48.00" width="8.00" height="4.00" />
<rect x="64.00" y="48.00" width="8.00" height="4.00" />
<rect x="88.00" y="48.00" width="4.00" height="4.00" />
<rect x="96.00" y="48.00" width="4.00" height="4.00" />
<rect x="112.00" y="48.00" width="4.00" height="4.00" />
<rect x="124.00" y="48.00" width="8.00" height="4.00" />
<rect x="140.00" y="48.00" width="4.00" height="4.00" />
<rect x="152.00" y="48.00" width="8.00" height="4.00" />
<rect x="164.00" y="48.00" width="8.00" height="4.00" />
<rect x="176.00" y="48.00" width="8.00" height="4.00" />
<rect x="192.00" y="48.00" width="12.00" height="4.00" />
<rect x="212.00" y="48.00" width="4.00" height="4.00" />
<rect x="224.00" y="48.00" width="12.00" height="4.00" />
<rect x="244.00" y="48.00" width="4.00" height="4.00" />
<rect x="260.00" y="48.00" width="4.00" height="4.00" />
<rect x="272.00" y="48.00" width="4.00" height="4.00" />
<rect x="288.00" y="48.00" width="4.00" height="4.00" />
<rect x="296.00" y="48.00" width="4.00" height="4.00" />
<rect x="312.00" y="48.00" width="4.00" height="4.00" />
<rect x="324.00" y="48.00" width="12.00" height="4.00" />
<rect x="340.00" y="48.00" width="16.00" height="4.00" />
<rect x="360.00" y="48.00" width="4.00" height="4.00" />
<rect x="372.00" y="48.00" width="8.00" height="4.00" />
<rect x="388.00" y="48.00" width="4.00" height="4.00" />
<rect x="400.00" y="48.00" width="4.00" height="4.00" />
<rect x="420.00" y="48.00" width="4.00" height="4.00" />
<rect x="440.00" y="48.00" width="8.00" height="4.00" />
<rect x="456.00" y="48.00" width="12.00" height="4.00" />
<rect x="472.00" y="48.00" width="4.00" height="4.00" />
<rect x="492.00" y="48.00" width="4.00" height="4.00" />
<rect x="508.00" y="48.00" width="4.00" height="4.00" />
<rect x="520.00" y="48.00" width="4.00" height="4.00" />
<rect x="544.00" y="48.00" width="12.00" height="4.00" />
<rect x="564.00" y="48.00" width="12.00" height="4.00" />
<rect x="588.00" y="48.00" width="4.00" height="4.00" />
<rect x="596.00" y="48.00" width="4.00" height="4.00" />
<rect x="28.00" y="52.00" width="8.00" height="256.57" />
<rect x="40.00" y="52.00" width="4.00" height="256.57" />
<rect x="52.00" y="52.00" width="12.00" height="256.57" />
<rect x="72.00" y="52.00" width="16.00" height="256.57" />
<rect x="92.00" y="52.00" width="4.00" height="256.57" />
<rect x="100.00" y="52.00" width="12.00" height="256.57" />
<rect x="116.00" y="52.00" width="8.00" height="256.57" />
<rect x="132.00" y="52.00" width="8.00" height="256.57" />
<rect x="144.00" y="52.00" width="8.00" height="256.57" />
<rect x="160.00" y="52.00" width="4.00" height="256.57" />
<rect x="172.00" y="52.00" width="4.00" height="256.57" />
<rect x="184.00" y="52.00" width="8.00" height="256.57" />
<rect x="204.00" y="52.00" width="8.00" height="256.57" />
<rect x="216.00" y="52.00" width="8.00" height="256.57" />
<rect x="236.00" y="52.00" width="8.00" height="256.57" />
<rect x="248.00" y="52.00" width="12.00" height="256.57" />
<rect x="264.00" y="52.00" width="8.00" height="256.57" />
<rect x="276.00" y="52.00" width="12.00" height="256.57" />
<rect x="292.00" y="52.00" width="4.00" height="256.57" />
<rect x="300.00" y="52.00" width="12.00" height="256.57" />
<rect x="316.00" y="52.00" width="8.00" height="256.57" />
<rect x="336.00" y="52.00" width="4.00" height="256.57" />
<rect x="356.00" y="52.00" width="4.00" height="256.57" />
<rect x="364.00" y="52.00" width="8.00" height="256.57" />
<rect x="380.00" y="52.00" width="8.00" height="256.57" />
<rect x="392.00" y="52.00" width="8.00" height="256.57" />
<rect x="404.00" y="52.00" width="16.00" height="256.57" />
<rect x="424.00" y="52.00" width="4.00" height="256.57" />
<rect x="436.00" y="52.00" width="4.00" height="256.57" />
<rect x="448.00" y="52.00" width="8.00" height="256.57" />
<rect x="468.00" y="52.00" width="4.00" height="256.57" />
<rect x="476.00" y="52.00" width="16.00" height="256.57" />
<rect x="496.00" y="52.00" width="12.00" height="256.57" />
<rect x="512.00" y="52.00" width="8.00" height="256.57" />
<rect x="524.00" y="52.00" width="12.00" height="256.57" />
<rect x="540.00" y="52.00" width="4.00" height="256.57" />
<rect x="556.00" y="52.00" width="8.00" height="256.57" />
<rect x="576.00" y="52.00" width="12.00" height="256.57" />
<rect x="592.00" y="52.00" width="4.00" height="256.57" />
<rect x="600.00" y="52.00" width="8.00" height="256.57" />
<text x="308.00" y="336.57" text-anchor="middle"
font-family="Helvetica, sans-serif" font-size="28.0" >
(01)03312345678903
</text>
</g>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="616" height="347" version="1.1" xmlns="http://www.w3.org/2000/svg">
<desc>Zint Generated Symbol</desc>
<g id="barcode" fill="#000000">
<rect x="0" y="0" width="616" height="347" fill="#FFFFFF"/>
<path d="M0 0h32v48h-32ZM36 0h4v52h-4ZM44 0h4v48h-4ZM52 0h4v48h-4ZM68 0h16v12h-16ZM88 0h4v12h-4ZM96 0h4v12h-4ZM104 0h16v12h-16ZM136 0h8v12h-8ZM148 0h4v12h-4ZM156 0h8v12h-8ZM168 0h12v12h-12ZM204 0h12v12h-12ZM220 0h20v12h-20ZM244 0h12v12h-12ZM260 0h4v12h-4ZM272 0h4v12h-4ZM296 0h4v12h-4ZM316 0h4v12h-4ZM332 0h4v12h-4ZM340 0h8v12h-8ZM356 0h4v12h-4ZM368 0h4v12h-4ZM380 0h8v12h-8ZM408 0h8v12h-8ZM432 0h4v12h-4ZM440 0h8v12h-8ZM460 0h12v12h-12ZM476 0h16v12h-16ZM496 0h4v12h-4ZM504 0h4v24h-4ZM516 0h16v12h-16ZM544 0h28v48h-28ZM576 0h4v48h-4ZM592 0h4v48h-4ZM600 0h4v48h-4ZM612 0h4v48h-4ZM68 12h20v12h-20ZM92 12h4v24h-4ZM100 12h4v12h-4ZM116 12h8v12h-8ZM136 12h4v24h-4ZM144 12h4v12h-4ZM160 12h20v12h-20ZM188 12h8v12h-8ZM204 12h24v12h-24ZM232 12h12v12h-12ZM248 12h4v12h-4ZM264 12h4v12h-4ZM272 12h8v12h-8ZM288 12h8v12h-8ZM300 12h16v12h-16ZM328 12h4v12h-4ZM340 12h4v36h-4ZM348 12h4v24h-4ZM360 12h24v12h-24ZM388 12h12v12h-12ZM408 12h12v12h-12ZM424 12h4v12h-4ZM432 12h16v12h-16ZM456 12h12v12h-12ZM476 12h24v12h-24ZM512 12h4v12h-4ZM520 12h12v12h-12ZM68 24h12v12h-12ZM84 24h4v12h-4ZM104 24h24v12h-24ZM148 24h4v12h-4ZM156 24h8v12h-8ZM172 24h20v12h-20ZM204 24h4v12h-4ZM216 24h4v12h-4ZM224 24h4v12h-4ZM236 24h16v12h-16ZM272 24h4v12h-4ZM280 24h20v12h-20ZM304 24h12v12h-12ZM320 24h8v12h-8ZM356 24h4v12h-4ZM380 24h16v12h-16ZM408 24h20v12h-20ZM432 24h4v12h-4ZM440 24h16v12h-16ZM464 24h8v12h-8ZM476 24h8v12h-8ZM488 24h4v12h-4ZM496 24h4v12h-4ZM512 24h20v12h-20ZM68 36h4v12h-4ZM76 36h4v12h-4ZM84 36h16v12h-16ZM108 36h16v12h-16ZM136 36h12v12h-12ZM160 36h12v12h-12ZM184 36h4v12h-4ZM192 36h4v12h-4ZM204 36h12v12h-12ZM220 36h8v12h-8ZM232 36h4v12h-4ZM252 36h8v12h-8ZM272 36h8v12h-8ZM284 36h12v12h-12ZM304 36h8v12h-8ZM316 36h4v12h-4ZM352 36h8v12h-8ZM368 36h16v12h-16ZM388 36h12v12h-12ZM408 36h8v12h-8ZM428 36h8v16h-8ZM444 36h4v12h-4ZM464 36h4v12h-4ZM476 36h20v12h-20ZM500 36h4v12h-4ZM508 36h24v12h-24ZM536 36h4v16h-4ZM44 48h8v4h-8ZM64 48h8v4h-8ZM88 48h4v4h-4ZM96 48h4v4h-4ZM112 48h4v4h-4ZM124 48h8v4h-8ZM140 48h4v4h-4ZM152 48h8v4h-8ZM164 48h8v4h-8ZM176 48h8v4h-8ZM192 48h12v4h-12ZM212 48h4v4h-4ZM224 48h12v4h-12ZM244 48h4v4h-4ZM260 48h4v4h-4ZM272 48h4v4h-4ZM288 48h4v4h-4ZM296 48h4v4h-4ZM312 48h4v4h-4ZM324 48h12v4h-12ZM340 48h16v4h-16ZM360 48h4v4h-4ZM372 48h8v4h-8ZM388 48h4v4h-4ZM400 48h4v4h-4ZM420 48h4v4h-4ZM440 48h8v4h-8ZM456 48h12v4h-12ZM472 48h4v4h-4ZM492 48h4v4h-4ZM508 48h4v4h-4ZM520 48h4v4h-4ZM544 48h12v4h-12ZM564 48h12v4h-12ZM588 48h4v4h-4ZM596 48h4v4h-4ZM28 52h8v256.57h-8ZM40 52h4v256.57h-4ZM52 52h12v256.57h-12ZM72 52h16v256.57h-16ZM92 52h4v256.57h-4ZM100 52h12v256.57h-12ZM116 52h8v256.57h-8ZM132 52h8v256.57h-8ZM144 52h8v256.57h-8ZM160 52h4v256.57h-4ZM172 52h4v256.57h-4ZM184 52h8v256.57h-8ZM204 52h8v256.57h-8ZM216 52h8v256.57h-8ZM236 52h8v256.57h-8ZM248 52h12v256.57h-12ZM264 52h8v256.57h-8ZM276 52h12v256.57h-12ZM292 52h4v256.57h-4ZM300 52h12v256.57h-12ZM316 52h8v256.57h-8ZM336 52h4v256.57h-4ZM356 52h4v256.57h-4ZM364 52h8v256.57h-8ZM380 52h8v256.57h-8ZM392 52h8v256.57h-8ZM404 52h16v256.57h-16ZM424 52h4v256.57h-4ZM436 52h4v256.57h-4ZM448 52h8v256.57h-8ZM468 52h4v256.57h-4ZM476 52h16v256.57h-16ZM496 52h12v256.57h-12ZM512 52h8v256.57h-8ZM524 52h12v256.57h-12ZM540 52h4v256.57h-4ZM556 52h8v256.57h-8ZM576 52h12v256.57h-12ZM592 52h4v256.57h-4ZM600 52h8v256.57h-8Z"/>
<text x="318" y="336.57" text-anchor="middle" font-family="Helvetica, sans-serif" font-size="28">
(01)03312345678903
</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before After
Before After