Help Selecting ISO

Jan 25, 2012 at 5:49 PM

Hi, can some one help me,

i need to specify the ISO/IEC version: 18004:2000



Jan 25, 2012 at 10:45 PM

Currently project change to use 18004:2006, instead of old version. Difference between two version mainly at two point. 

One: default 8-bit-byte encode. 2000 use shift-jis as default where 2006 use Europe char set as default. Default encode won't include ECI heading.

Two: Penalty calculation for penalty rule 3. That won't effect decoder read it's QrCode. You won't feel a different between 2000 and 2006, it's just a way to select most efficient mask. 


Could you tell me why you want to create 18004:2000 QrCode? So I may able to help you.



Jan 25, 2012 at 11:03 PM

im developing a ERP in Mexico and for legal print of electronic invoice I need to put a QRcode on it, but specific the ISO/IEC 18004:2000 otherwise the invoice isn't legal, and i can find a dll for qrcode with such characteristics for

Jan 26, 2012 at 12:07 AM

Hi, At current stage, you might have to edit some of source code. I will list below. 

First one. 


change => public const string DefaultEncoding = "iso-8859-1";  

To => public const string DefaultEncoding = "shift_jis"; 

Second one:

Under folder masking and scoring, you will find Penalty3.cs

Under method  private int PatternCheck(BitMatrix matrix, int i, int j, bool isHorizontal)

You will find two small for loop. Which is following:

if((j - 5) >=0)


For loop here. 


If((j+9) < matrix.Width)





Return 0;


Which is between line 85, 112.

Remove all code that I have list above and simply place "return 40;" at where you removed previews code. 

Now encoder should be function as specified inside ISO/IEC 18004:2000

Let me know if you have any other issues. 


Also for detail reason behind those changes. First one which is what I said in previews post. Second penalty calculation rule 3, ISO/IEC 18004:2006 have to check one more condition before return penalty score value. So we just remove that check and return the score. 

Jan 26, 2012 at 12:58 AM

Tank you very much for the quick response and for all the help,



I one u one.

Sergio Inzunza