Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/zint/extras/stroke.c @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/zint/extras/stroke.c Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,89 @@ +/* + * stroke.c + * + * This code uses Zint to encode data in QR Code and then output in + * the correct format to use StrokeScribe 2D font. This can be adapted + * to encode any matrix symbology using this font. + * + * The same code can also be used to resolve PDF417 symbols with the + * StrokeScribe 417 font and linear symbols with the StrokeScribe 1D + * font, all of which are available from the same souce. + * + * This code can be compiled with: + * + * gcc -o stroke stroke.c -lzint + * + * The fonts are available from: + * + * https://strokescribe.com/en/free-version-barcode-truetype-fonts.html + * + */ + +#include <stdio.h> +#include <zint.h> +#include <string.h> +int main(int argc, char **argv) +{ + struct zint_symbol *my_symbol; + int error = 0; + int x, y, glyph, sub; + + my_symbol = ZBarcode_Create(); + + my_symbol->symbology = BARCODE_QRCODE; // Change symbology here + my_symbol->output_options = OUT_BUFFER_INTERMEDIATE; + + error = ZBarcode_Encode(my_symbol, argv[1], strlen(argv[1])); + if (error != 0) + { + printf("%s\n", my_symbol->errtxt); + } + if (error >= ZINT_ERROR_TOO_LONG) + { + ZBarcode_Delete(my_symbol); + return 1; + } + + sub = 0; + glyph = 0; + for (y = 0; y < my_symbol->rows; y++) { + for (x = 0; x < my_symbol->width; x++) { + glyph *= 2; + if ((my_symbol->encoded_data[y][x / 8] >> (x % 8)) & 1) { + glyph += 1; + } + sub++; + if (sub == 5) { + if (glyph <= 25) { + printf("%c", glyph + 'A'); + } else { + printf("%c", (glyph - 26) + 'a'); + } + sub = 0; + glyph = 0; + } + } + if (sub == 4) { + printf("%c", glyph + 'g'); + } + if (sub == 3) { + if (glyph <= 3) { + printf("%c", glyph + 'w'); + } else { + printf("%c", (glyph - 4) + '0'); + } + } + if (sub == 2) { + printf("%c", glyph + '4'); + } + if (sub == 1) { + printf("%c", glyph + '8'); + } + printf("\n"); + sub = 0; + glyph = 0; + } + + ZBarcode_Delete(my_symbol); + return 0; +}
