Barcode PNG Generation Script

Oracle Application Express is a rapid development tool for Web applications on the Oracle database.
Post Reply
admin
Posts: 2112
Joined: Fri Mar 31, 2006 12:59 am
Location: Pakistan
Contact:

Barcode PNG Generation Script

Post by admin »

Code: Select all

DECLARE
    l_data    VARCHAR2(4000);
    l_qr_blob BLOB;
    l_ean8   VARCHAR2(8);
BEGIN
    FOR r IN (
        SELECT empno,
               NVL(ename, '') ename,
               NVL(job, '') job
          FROM emp
    )
    LOOP
        IF :P27_BARCODE_TYPE = 'QRCODE' THEN
            -- QR Code: can use full data
            l_data := TO_CHAR(r.empno) || ',' || r.ename || ',' || r.job;
            l_qr_blob := apex_barcode.get_qrcode_png(
                              p_value   => l_data,
                              p_scale   => :P27_BARCODE_SCALE,
                              p_quiet   => 5,
                              p_eclevel => 'H'
                          );

        ELSIF :P27_BARCODE_TYPE = 'CODE128' THEN
            -- CODE128: reduced data, limit length
            l_data := TO_CHAR(r.empno) || ',' || r.ename || ',' || r.job;
            IF LENGTH(l_data) > 50 THEN
                l_data := SUBSTR(l_data, 1, 50);
            END IF;

            l_qr_blob := apex_barcode.get_code128_png(
                              p_value => l_data,
                              p_scale => :P27_BARCODE_SCALE
                          );

        ELSIF :P27_BARCODE_TYPE = 'EAN8' THEN
            -- EAN8: only 8-digit numeric using empno
            l_ean8 := LPAD(REGEXP_REPLACE(TO_CHAR(r.empno), '[^0-9]', ''), 8, '0');
            l_qr_blob := apex_barcode.get_ean8_png(
                              p_value => l_ean8,
                              p_scale => :P27_BARCODE_SCALE
                          );

        ELSE
            RAISE_APPLICATION_ERROR(-20001, 'Invalid barcode type: ' || :P27_BARCODE_TYPE);
        END IF;

        UPDATE emp
           SET qr_code_blob = l_qr_blob
         WHERE empno = r.empno;
    END LOOP;
END;
Malik Sikandar Hayat
Oracle ACE Pro
info@erpstuff.com
Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests