Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/zint/extras/ida_2d.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/ida_2d.c Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,64 @@ +/* + * ida_2d.c + * + * This code uses Zint to encode data into a QR Code and then outputs + * the symbol as text suitable for use with the IDAutomation2D font + * + * This code can be adapted to use any matrix symbology by changing the + * line indicated. + * + * This code can be compiled with: + * + * gcc -o ida_2d ida_2d.c -lzint + * + * Fonts can be downloaded from https://www.idautomation.com/ + * + */ + +#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, sub, glyph; + + 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; + } + + for (y = 0; y < my_symbol->rows; y += 4) { + for (x = 0; x < my_symbol->width; x++) { + glyph = 0; + for (sub = 0; sub < 4; sub++) { + glyph *= 2; + if ((y + sub) < my_symbol->rows) { + if (((my_symbol->encoded_data[y + sub][x / 8] >> (x % 8)) & 1) == 0) { + glyph += 1; + } + } else { + glyph += 1; + } + } + glyph += 'A'; + printf("%c", glyph); + } + printf("\n"); + } + + ZBarcode_Delete(my_symbol); + return 0; +}
