Add UI options for rMQR

And update manual to include rMQR
This commit is contained in:
Robin Stuart 2019-11-27 16:54:03 +00:00
parent ac00e381a6
commit 05784fb9cf
4 changed files with 1183 additions and 742 deletions

View File

@ -325,6 +325,7 @@ Numeric Value | Barcode Name
141 | Code One 141 | Code One
142 | Grid Matrix 142 | Grid Matrix
143 | UPNQR (Univerzalnega Plačilnega Naloga QR) 143 | UPNQR (Univerzalnega Plačilnega Naloga QR)
145 | Rectangular Micro QR Code (rMQR)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
4.4 Adjusting height 4.4 Adjusting height
@ -1034,6 +1035,7 @@ Value |
141 | BARCODE_CODEONE | Code One 141 | BARCODE_CODEONE | Code One
142 | BARCODE_GRIDMATRIX | Grid Matrix 142 | BARCODE_GRIDMATRIX | Grid Matrix
143 | BARCODE_UPNQR | UPNQR (Univerzalnega Plačilnega Naloga QR) 143 | BARCODE_UPNQR | UPNQR (Univerzalnega Plačilnega Naloga QR)
145 | BARCODE_RMQR | Rectangular Micro QR Code (rMQR)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
5.8 Adjusting other output options 5.8 Adjusting other output options
@ -1963,7 +1965,71 @@ Input | Version | Symbol Size
4 | M4 | 17 x 17 4 | M4 | 17 x 17
--------------------------------- ---------------------------------
6.6.4 UPNQR (Univerzalnega Plačilnega Naloga QR) 6.6.4 Rectangular Micro QR Code (rMQR)
--------------------------------------
A rectangular version of QR Code. Like QR code rMQR supports encoding of
GS-1 data, Latin-1 and Kanji characters in the Shift-JIS encoding scheme.
It does not support other ISO 8859 character sets or Unicode. As with other
symbologies data should be entered as UTF-8 with the conversion to Shift-JIS
being handled by Zint. The amount of ECC codewords can be adjusted using
--secure=, however only ECC levels M and H are valid for this type of symbol.
-------------------------------------------------------------------------
Input | ECC Level | Error Correction Capacity | Recovery Capacity
-------------------------------------------------------------------------
2 | M (default) | Approx 37% of symbol | Approx 15%
4 | H | Approx 65% of symbol | Approx 30%
-------------------------------------------------------------------------
The preferred symbol sizes can be selected using the --vers= option as shown
in the table below. Input values between 33 and 38 fix the height of the
symbol while allowing Zint to determine the minimum symbol width.
---------------------------------
Input | Version | Symbol Size
---------------------------------
1 | R7x43 | 7 x 73
2 | R7x59 | 7 x 59
3 | R7x77 | 7 x 77
4 | R7x99 | 7 x 99
5 | R7x139 | 7 x 139
6 | R9x43 | 9 x 43
7 | R9x59 | 9 x 59
8 | R9x77 | 9 x 77
9 | R9x99 | 9 x 99
10 | R9x139 | 9 x 139
11 | R11x27 | 11 x 27
12 | R11x43 | 11 x 43
13 | R11x59 | 11 x 59
14 | R11x77 | 11 x 77
15 | R11x99 | 11 x 99
16 | R11x139 | 11 x 139
17 | R13x27 | 13 x 27
18 | R13x43 | 13 x 43
19 | R13x59 | 13 x 59
20 | R13x77 | 13 x 77
21 | R13x99 | 13 x 99
22 | R13x139 | 13 x 139
23 | R15x43 | 15 x 43
24 | R15x59 | 15 x 59
25 | R15x77 | 15 x 77
26 | R15x99 | 15 x 99
27 | R15x139 | 15 x 139
28 | R17x43 | 17 x 43
29 | R17x59 | 17 x 59
30 | R17x77 | 17 x 77
31 | R17x99 | 17 x 99
32 | R17x139 | 17 x 139
---------------------------------
33 | Fixed height 7
34 | Fixed height 9
35 | Fixed height 11
36 | Fixed height 13
37 | Fixed height 15
38 | Fixed height 17
---------------------------------
6.6.5 UPNQR (Univerzalnega Plačilnega Naloga QR)
------------------------------------------------ ------------------------------------------------
A variation of QR Code used by Združenje Bank Slovenije (Bank Association of A variation of QR Code used by Združenje Bank Slovenije (Bank Association of
Slovenia). The size, error correction level and ECI are set by Zint and do not Slovenia). The size, error correction level and ECI are set by Zint and do not
@ -1976,7 +2042,7 @@ The following example creates a symbol from data saved as an ISO-8859-2 file:
zint -o upnqr.png -b 143 --border=5 --scale=3 --binary -i ./upn.txt zint -o upnqr.png -b 143 --border=5 --scale=3 --binary -i ./upn.txt
6.6.5 Maxicode (ISO 16023) 6.6.6 Maxicode (ISO 16023)
-------------------------- --------------------------
Developed by UPS the Maxicode symbology employs a grid of hexagons surrounding Developed by UPS the Maxicode symbology employs a grid of hexagons surrounding
a 'bulls-eye' finder pattern. This symbology is designed for the identification a 'bulls-eye' finder pattern. This symbology is designed for the identification
@ -2034,7 +2100,7 @@ Mode | Maximum Data Lenth | Maximum Data Length | Number of Error
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
* - secondary only * - secondary only
6.6.6 Aztec Code (ISO 24778) 6.6.7 Aztec Code (ISO 24778)
---------------------------- ----------------------------
Invented by Andrew Longacre at Welch Allyn Inc in 1995 the Aztec Code symbol is Invented by Andrew Longacre at Welch Allyn Inc in 1995 the Aztec Code symbol is
a matrix symbol with a distinctive bulls-eye finder pattern. Zint can generate a matrix symbol with a distinctive bulls-eye finder pattern. Zint can generate
@ -2116,13 +2182,13 @@ A separate symbology ID can be used to encode Health Industry Barcode (HIBC)
data which adds a leading '+' character and a modulo-49 check digit to the data which adds a leading '+' character and a modulo-49 check digit to the
encoded data. encoded data.
6.6.7 Aztec Runes 6.6.8 Aztec Runes
----------------- -----------------
A truncated version of compact Aztec Code for encoding whole integers between 0 A truncated version of compact Aztec Code for encoding whole integers between 0
and 255. Includes Reed-Solomon error correction. As defined in ISO/IEC 24778 and 255. Includes Reed-Solomon error correction. As defined in ISO/IEC 24778
Annex A. Annex A.
6.6.8 Code One 6.6.9 Code One
-------------- --------------
A matrix symbology developed by Ted Williams in 1992 which encodes data in a A matrix symbology developed by Ted Williams in 1992 which encodes data in a
way similar to Data Matrix ECC200. Code One is able to encode the Latin-1 way similar to Data Matrix ECC200. Code One is able to encode the Latin-1
@ -2150,7 +2216,7 @@ Input | Version | Size | Numeric | Alphanumeric
Version S symbols can only encode numeric data. The width of version S and Version S symbols can only encode numeric data. The width of version S and
version T symbols is determined by the length of the input data. version T symbols is determined by the length of the input data.
6.6.9 Grid Matrix 6.6.10 Grid Matrix
----------------- -----------------
By default Grid Matrix supports encoding in Latin-1 and Chinese characters By default Grid Matrix supports encoding in Latin-1 and Chinese characters
within the GB 2312 standard set to be encoded in a checkerboard pattern. Input within the GB 2312 standard set to be encoded in a checkerboard pattern. Input
@ -2191,7 +2257,7 @@ Mode | Error Correction Capacity
5 | Approximately 50% 5 | Approximately 50%
---------------------------------- ----------------------------------
6.6.10 DotCode 6.6.11 DotCode
------------- -------------
DotCode uses a grid of dots in a rectangular formation to encode characters up DotCode uses a grid of dots in a rectangular formation to encode characters up
to a maximum of approximately 450 characters (or 900 numeric digits). The to a maximum of approximately 450 characters (or 900 numeric digits). The
@ -2203,7 +2269,7 @@ the image to a larger value than the default (e.g. approx 10) for the dots to
be plotted correctly. Approximately 33% of the resulting symbol is comprised of be plotted correctly. Approximately 33% of the resulting symbol is comprised of
error correction codewords. error correction codewords.
6.6.11 Han Xin Code 6.6.12 Han Xin Code
------------------- -------------------
Also known as Chinese Sensible Code, Han Xin is a symbology which is still Also known as Chinese Sensible Code, Han Xin is a symbology which is still
under under

344
frontend_qt/grpRMQR.ui Normal file
View File

@ -0,0 +1,344 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>grpRMQR</class>
<widget class="QWidget" name="grpRMQR">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>441</width>
<height>238</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="grpRMQROptions">
<item row="0" column="0">
<widget class="QRadioButton" name="radRMQRAuto">
<property name="text">
<string>A&amp;utomatic Resizing</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QRadioButton" name="radRMQRSize">
<property name="text">
<string>Adjust Si&amp;ze To:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cmbRMQRSize">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>R7x43</string>
</property>
</item>
<item>
<property name="text">
<string>R7x59</string>
</property>
</item>
<item>
<property name="text">
<string>R7x77</string>
</property>
</item>
<item>
<property name="text">
<string>R7x99</string>
</property>
</item>
<item>
<property name="text">
<string>R7x139</string>
</property>
</item>
<item>
<property name="text">
<string>R9x43</string>
</property>
</item>
<item>
<property name="text">
<string>R9x59</string>
</property>
</item>
<item>
<property name="text">
<string>R9x77</string>
</property>
</item>
<item>
<property name="text">
<string>R9x99</string>
</property>
</item>
<item>
<property name="text">
<string>R9x139</string>
</property>
</item>
<item>
<property name="text">
<string>R11x27</string>
</property>
</item>
<item>
<property name="text">
<string>R11x43</string>
</property>
</item>
<item>
<property name="text">
<string>R11x59</string>
</property>
</item>
<item>
<property name="text">
<string>R11x77</string>
</property>
</item>
<item>
<property name="text">
<string>R11x99</string>
</property>
</item>
<item>
<property name="text">
<string>R11x139</string>
</property>
</item>
<item>
<property name="text">
<string>R13x27</string>
</property>
</item>
<item>
<property name="text">
<string>R13x43</string>
</property>
</item>
<item>
<property name="text">
<string>R13x59</string>
</property>
</item>
<item>
<property name="text">
<string>R13x77</string>
</property>
</item>
<item>
<property name="text">
<string>R13x99</string>
</property>
</item>
<item>
<property name="text">
<string>R13x139</string>
</property>
</item>
<item>
<property name="text">
<string>R15x43</string>
</property>
</item>
<item>
<property name="text">
<string>R15x59</string>
</property>
</item>
<item>
<property name="text">
<string>R15x77</string>
</property>
</item>
<item>
<property name="text">
<string>R15x99</string>
</property>
</item>
<item>
<property name="text">
<string>R15x139</string>
</property>
</item>
<item>
<property name="text">
<string>R17x43</string>
</property>
</item>
<item>
<property name="text">
<string>R17x59</string>
</property>
</item>
<item>
<property name="text">
<string>R17x77</string>
</property>
</item>
<item>
<property name="text">
<string>R17x99</string>
</property>
</item>
<item>
<property name="text">
<string>R17x139</string>
</property>
</item>
<item>
<property name="text">
<string>R7x Automatic Width</string>
</property>
</item>
<item>
<property name="text">
<string>R9x Automatic Width</string>
</property>
</item>
<item>
<property name="text">
<string>R11x Automatic Width</string>
</property>
</item>
<item>
<property name="text">
<string>R13x Automatic Width</string>
</property>
</item>
<item>
<property name="text">
<string>R15 x Automatic Width</string>
</property>
</item>
<item>
<property name="text">
<string>R17 x Automatic Width</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="radRMQRECC">
<property name="text">
<string>Add &amp;Error Correction:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="cmbRMQRECC">
<property name="enabled">
<bool>false</bool>
</property>
<item>
<property name="text">
<string>~37% (Level M)</string>
</property>
</item>
<item>
<property name="text">
<string>~65% (Level H)</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QGroupBox" name="grpRMQRMode">
<property name="minimumSize">
<size>
<width>0</width>
<height>70</height>
</size>
</property>
<property name="title">
<string>Data Encoding</string>
</property>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>411</width>
<height>80</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QRadioButton" name="radRMQRStand">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>S&amp;tandard Mode</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QRadioButton" name="radRMQRGS1">
<property name="text">
<string>&amp;GS-1 Data Mode</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>radRMQRSize</sender>
<signal>toggled(bool)</signal>
<receiver>cmbRMQRSize</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>89</x>
<y>39</y>
</hint>
<hint type="destinationlabel">
<x>255</x>
<y>46</y>
</hint>
</hints>
</connection>
<connection>
<sender>radRMQRECC</sender>
<signal>toggled(bool)</signal>
<receiver>cmbRMQRECC</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>95</x>
<y>79</y>
</hint>
<hint type="destinationlabel">
<x>308</x>
<y>79</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -101,7 +101,7 @@ MainWindow::MainWindow(QWidget* parent, Qt::WindowFlags fl)
"PLANET", "PLANET",
"Postnet", "Postnet",
"QR Code (ISO 18004)", "QR Code (ISO 18004)",
"Reduced Micro QR (rMQR)", "Rectangular Micro QR (rMQR)",
"Royal Mail 4-state Barcode", "Royal Mail 4-state Barcode",
"Royal Mail 4-state Mailmark", "Royal Mail 4-state Mailmark",
"Telepen", "Telepen",
@ -567,6 +567,23 @@ void MainWindow::change_options()
connect(m_optionWidget->findChild<QObject*>("radQRHIBC"), SIGNAL(clicked( bool )), SLOT(update_preview())); connect(m_optionWidget->findChild<QObject*>("radQRHIBC"), SIGNAL(clicked( bool )), SLOT(update_preview()));
} }
if(metaObject()->enumerator(0).value(bstyle->currentIndex()) == BARCODE_RMQR)
{
QFile file(":/grpRMQR.ui");
if (!file.open(QIODevice::ReadOnly))
return;
m_optionWidget=uiload.load(&file);
file.close();
tabMain->insertTab(1,m_optionWidget,tr("rMQR Code"));
connect(m_optionWidget->findChild<QObject*>("radRMQRAuto"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("radRMQRSize"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("radRMQRECC"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("cmbRMQRSize"), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("cmbRMQRECC"), SIGNAL(currentIndexChanged( int )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("radRMQRStand"), SIGNAL(clicked( bool )), SLOT(update_preview()));
connect(m_optionWidget->findChild<QObject*>("radRMQRGS1"), SIGNAL(clicked( bool )), SLOT(update_preview()));
}
if(metaObject()->enumerator(0).value(bstyle->currentIndex()) == BARCODE_HANXIN) if(metaObject()->enumerator(0).value(bstyle->currentIndex()) == BARCODE_HANXIN)
{ {
QFile file (":/grpHX.ui"); QFile file (":/grpHX.ui");
@ -979,6 +996,19 @@ void MainWindow::update_preview()
m_bc.bc.setSecurityLevel(m_optionWidget->findChild<QComboBox*>("cmbMQRECC")->currentIndex() + 1); m_bc.bc.setSecurityLevel(m_optionWidget->findChild<QComboBox*>("cmbMQRECC")->currentIndex() + 1);
break; break;
case BARCODE_RMQR:
m_bc.bc.setSymbol(BARCODE_RMQR);
if(m_optionWidget->findChild<QRadioButton*>("radRMQRGS1")->isChecked())
m_bc.bc.setInputMode(GS1_MODE);
if(m_optionWidget->findChild<QRadioButton*>("radRMQRSize")->isChecked())
m_bc.bc.setWidth(m_optionWidget->findChild<QComboBox*>("cmbRMQRSize")->currentIndex() + 1);
if(m_optionWidget->findChild<QRadioButton*>("radRMQRECC")->isChecked())
m_bc.bc.setSecurityLevel(m_optionWidget->findChild<QComboBox*>("cmbRMQRECC")->currentIndex() * 2 + 2);
break;
case BARCODE_GRIDMATRIX: case BARCODE_GRIDMATRIX:
m_bc.bc.setSymbol(BARCODE_GRIDMATRIX); m_bc.bc.setSymbol(BARCODE_GRIDMATRIX);
if(m_optionWidget->findChild<QRadioButton*>("radGridSize")->isChecked()) if(m_optionWidget->findChild<QRadioButton*>("radGridSize")->isChecked())

View File

@ -24,5 +24,6 @@
<file>grpHX.ui</file> <file>grpHX.ui</file>
<file>grpDotCode.ui</file> <file>grpDotCode.ui</file>
<file>grpCodablockF.ui</file> <file>grpCodablockF.ui</file>
<file>grpRMQR.ui</file>
</qresource> </qresource>
</RCC> </RCC>