Search in sources :

Example 1 with CreateQrCodeDocumentImage

use of boofcv.app.qrcode.CreateQrCodeDocumentImage in project BoofCV by lessthanoptimal.

the class CreateQrCodeDocument method run.

public void run() throws IOException {
    if (messages == null || messages.size() == 0) {
        throw new RuntimeException("Need to specify a message");
    }
    getFileTypeFromFileName();
    if (fileType.equals("pdf")) {
        System.out.println("   Document     : PDF");
        System.out.println("   paper        : " + paperSize);
        System.out.println("   info         : " + (!disablePrintInfo));
        System.out.println("   units        : " + unit);
        System.out.println("   marker width : " + markerWidth + " (" + unit.abbreviation + ")");
    } else {
        System.out.println("   Document  : Image");
    }
    System.out.println();
    List<QrCode> markers = new ArrayList<>();
    for (String message : messages) {
        QrCodeEncoder encoder = new QrCodeEncoder();
        if (mask != null)
            encoder.setMask(mask);
        encoder.setError(error != null ? error : QrCode.ErrorLevel.M);
        if (version > 0)
            encoder.setVersion(version);
        if (encoding != null) {
            switch(encoding) {
                case NUMERIC:
                    encoder.addNumeric(message);
                    break;
                case ALPHANUMERIC:
                    encoder.addAlphanumeric(message);
                    break;
                case BYTE:
                    encoder.addBytes(message);
                    break;
                case KANJI:
                    encoder.addKanji(message);
                    break;
                default:
                    throw new RuntimeException("Unknown mode");
            }
        } else {
            encoder.addAutomatic(message);
        }
        QrCode qr = encoder.fixate();
        markers.add(qr);
        System.out.println("   Message");
        System.out.println("     length    : " + qr.message.length());
        System.out.println("     version   : " + qr.version);
        System.out.println("     encoding  : " + qr.mode);
        System.out.println("     error     : " + qr.error);
    }
    switch(fileType) {
        case "pdf":
            {
                CreateQrCodeDocumentPDF renderer = new CreateQrCodeDocumentPDF(fileName, paperSize, unit);
                renderer.markerWidth = markerWidth;
                renderer.spaceBetween = spaceBetween;
                renderer.gridFill = gridFill;
                renderer.showInfo = !hideInfo;
                renderer.render(markers);
                if (sendToPrinter) {
                    try {
                        renderer.sendToPrinter();
                    } catch (PrinterException e) {
                        throw new RuntimeException(e);
                    }
                } else
                    renderer.saveToDisk();
            }
            break;
        default:
            {
                CreateQrCodeDocumentImage renderer = new CreateQrCodeDocumentImage(fileName, 20);
                renderer.render(markers);
            }
            break;
    }
}
Also used : QrCode(boofcv.alg.fiducial.qrcode.QrCode) QrCodeEncoder(boofcv.alg.fiducial.qrcode.QrCodeEncoder) ArrayList(java.util.ArrayList) PrinterException(java.awt.print.PrinterException) CreateQrCodeDocumentImage(boofcv.app.qrcode.CreateQrCodeDocumentImage) CreateQrCodeDocumentPDF(boofcv.app.qrcode.CreateQrCodeDocumentPDF)

Aggregations

QrCode (boofcv.alg.fiducial.qrcode.QrCode)1 QrCodeEncoder (boofcv.alg.fiducial.qrcode.QrCodeEncoder)1 CreateQrCodeDocumentImage (boofcv.app.qrcode.CreateQrCodeDocumentImage)1 CreateQrCodeDocumentPDF (boofcv.app.qrcode.CreateQrCodeDocumentPDF)1 PrinterException (java.awt.print.PrinterException)1 ArrayList (java.util.ArrayList)1