@ -1,4 +1,12 @@ 
			
		
	
		
		
			
				
					
					import  ' dart:typed_data ' ;  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					import  ' package:flutter/material.dart ' ; import  ' package:flutter/material.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:flutter_markdown/flutter_markdown.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:flutter_zxing/flutter_zxing.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:font_awesome_flutter/font_awesome_flutter.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:image/image.dart '  as  imglib ;  
			
		
	
		
		
			
				
					
					import  ' package:zxscanner/configs/constants.dart ' ;  
			
		
	
		
		
			
				
					
					import  ' package:zxscanner/widgets/common_widgets.dart ' ;  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					class  HelpPage  extends  StatelessWidget  { class  HelpPage  extends  StatelessWidget  {  
			
		
	
		
		
			
				
					
					  const  HelpPage ( { Key ?  key } )  :  super ( key:  key ) ;    const  HelpPage ( { Key ?  key } )  :  super ( key:  key ) ;   
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -9,7 +17,225 @@ class HelpPage extends StatelessWidget { 
			
		
	
		
		
			
				
					
					      appBar:  AppBar (        appBar:  AppBar (   
			
		
	
		
		
			
				
					
					        title:  const  Text ( ' Help ' ) ,          title:  const  Text ( ' Help ' ) ,   
			
		
	
		
		
			
				
					
					      ) ,        ) ,   
			
		
	
		
		
			
				
					
					      body:  Container ( ) ,        body:  ContainerX (   
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					        child:  ListView (   
			
		
	
		
		
			
				
					
					          padding:  const  EdgeInsets . only ( bottom:  spaceLarge2 ) ,   
			
		
	
		
		
			
				
					
					          children:  createSlides ( context ) ,   
			
		
	
		
		
			
				
					
					        ) ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					    ) ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  Widget  createSlide (   
			
		
	
		
		
			
				
					
					    BuildContext  context ,  {   
			
		
	
		
		
			
				
					
					    String ?  title ,   
			
		
	
		
		
			
				
					
					    String ?  body ,   
			
		
	
		
		
			
				
					
					    int  format  =  Format . QRCode ,   
			
		
	
		
		
			
				
					
					    String ?  qrText ,   
			
		
	
		
		
			
				
					
					    int  width  =  100 ,   
			
		
	
		
		
			
				
					
					    int  height  =  100 ,   
			
		
	
		
		
			
				
					
					  } )  {   
			
		
	
		
		
			
				
					
					    Uint8List ?  bytes ;   
			
		
	
		
		
			
				
					
					    if  ( qrText  ! =  null )  {   
			
		
	
		
		
			
				
					
					      final  result  =   
			
		
	
		
		
			
				
					
					          FlutterZxing . encodeBarcode ( qrText ,  width ,  height ,  format ,  5 ,  0 ) ;   
			
		
	
		
		
			
				
					
					      if  ( result . isValidBool )  {   
			
		
	
		
		
			
				
					
					        final  img  =  imglib . Image . fromBytes ( width ,  height ,  result . bytes ) ;   
			
		
	
		
		
			
				
					
					        bytes  =  Uint8List . fromList ( imglib . encodeJpg ( img ) ) ;   
			
		
	
		
		
			
				
					
					      }  else  {   
			
		
	
		
		
			
				
					
					        debugPrint ( ' Error:  ${ result . errorMessage } ' ) ;   
			
		
	
		
		
			
				
					
					      }   
			
		
	
		
		
			
				
					
					    }   
			
		
	
		
		
			
				
					
					    return  Card (   
			
		
	
		
		
			
				
					
					      margin:  const  EdgeInsets . all ( 8.0 ) ,   
			
		
	
		
		
			
				
					
					      child:  Padding (   
			
		
	
		
		
			
				
					
					        padding:  const  EdgeInsets . all ( 8.0 ) ,   
			
		
	
		
		
			
				
					
					        child:  Theme (   
			
		
	
		
		
			
				
					
					          data:  Theme . of ( context ) . copyWith (   
			
		
	
		
		
			
				
					
					            dividerColor:  Colors . transparent ,   
			
		
	
		
		
			
				
					
					          ) ,   
			
		
	
		
		
			
				
					
					          child:  ExpansionTile (   
			
		
	
		
		
			
				
					
					            leading:  bytes  ! =  null   
			
		
	
		
		
			
				
					
					                ?  Image . memory ( bytes ,  width:  100 )   
			
		
	
		
		
			
				
					
					                :  const  SizedBox (   
			
		
	
		
		
			
				
					
					                    width:  100 ,   
			
		
	
		
		
			
				
					
					                    child:  Icon ( FontAwesomeIcons . barcode ,  size:  50 ) ,   
			
		
	
		
		
			
				
					
					                  ) ,   
			
		
	
		
		
			
				
					
					            title:  Text ( title  ? ?  ' ' ) ,   
			
		
	
		
		
			
				
					
					            children:  [   
			
		
	
		
		
			
				
					
					              Padding (   
			
		
	
		
		
			
				
					
					                padding:  const  EdgeInsets . all ( spaceDefault ) ,   
			
		
	
		
		
			
				
					
					                child:  MarkdownBody ( data:  body  ? ?  ' ' ) ,   
			
		
	
		
		
			
				
					
					              ) ,   
			
		
	
		
		
			
				
					
					            ] ,   
			
		
	
		
		
			
				
					
					          ) ,   
			
		
	
		
		
			
				
					
					        ) ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					    ) ;      ) ;   
			
		
	
		
		
			
				
					
					  }    }   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					  createSlides ( BuildContext  context )  {   
			
		
	
		
		
			
				
					
					    return  [   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' QR Code ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					QR  codes  are  highly  versatile  and  cover  a  range  of  applications  because  they  store  a  large  amount  of  information  in  a  relatively  small  area .  They  are  particularly  popular  in  advertising ,  such  as  on  flyers  or  shop  windows ,  in  public  transport  and  airline  ticketing ,  and  in  parcel  delivery .  
			
		
	
		
		
			
				
					
					*  Defined  in  the  ISO / IEC  18004 : 2006  and  JIS  X0510  standards .  
			
		
	
		
		
			
				
					
					*  2 D  barcode  that  stores  a  maximum  of  7089  digits  or  4296  alphanumeric  characters .  
			
		
	
		
		
			
				
					
					*  Can  be  used  free  of  charge  –  specifications  are  available  from  the  Swiss - based  International  Organization  for  Standardization .  
			
		
	
		
		
			
				
					
					*  Automatic  error  correction  recovers  damage  to  up  to  30 % ,  depending  on  the  correction  level  chosen .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . QRCode ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' DataMatrix ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					Due  to  its  small  size  and  large  storage  capacity ,  the  Data  Matrix  code  is  most  frequently  used  in  the  aerospace ,  automotive ,  and  electronics  sectors .  Applied  through  permanent  marking ,  the  code  can  identify  spare  parts  over  their  whole  lifespan .  It  also  has  applications  in  healthcare  and  postal  services .  
			
		
	
		
		
			
				
					
					*  2 D  barcode  with  L - shaped  border  and  pixel  matrix .  
			
		
	
		
		
			
				
					
					*  Defined  in  the  ISO / IEC  16022  standard .  
			
		
	
		
		
			
				
					
					*  Stores  up  to  3116  numeric  or  2335  alphanumeric  characters .  
			
		
	
		
		
			
				
					
					*  Smallest  size:  2.5  mm  x  2.5  mm ,  thus  ideal  for  small  units .  
			
		
	
		
		
			
				
					
					*  Often  engraved  on  items  via  Direct  Part  Marking  ( DPM ) .  
			
		
	
		
		
			
				
					
					*  Readable  even  with  low  contrast .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . DataMatrix ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' Aztec ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					The  transportation  sector  accounts  for  most  Aztec  Code  use  cases .  Lufthansa  airline  tickets  contain  this  code ,  as  do  Deutsche  Bahn  tickets .  The  International  Union  of  Railways  ( UIC )  has  chosen  the  Aztec  Code  as  its  standard  for  ticketing .  Additionally ,  Aztec  Codes  are  used  in  the  healthcare  sector ,  notably  on  patient  identification  bracelets .  
			
		
	
		
		
			
				
					
					*  Two - dimensional  barcode ,  standardized  in  ISO / IEC  24778.  
			
		
	
		
		
			
				
					
					*  Freely  available  under  US  patent  number  5591956.  
			
		
	
		
		
			
				
					
					*  Can  store  over  3 , 000  characters  in  up  to  32  layers .  
			
		
	
		
		
			
				
					
					*  Less  widely  used  than  QR  and  Data  Matrix  Codes .  
			
		
	
		
		
			
				
					
					*  Enables  both  high  data  density  and  up  to  95 %  error  tolerance .  
			
		
	
		
		
			
				
					
					*  Pattern  resembles  a  top - down  view  of  an  Aztec  pyramid  
			
		
	
		
		
			
				
					
					            """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . Aztec ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' PDF417 ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					Ticketing ,  travel ,  and  logistics  are  some  of  the  most  common  areas  of  application  for  PDF417  codes .  They  also  find  use  in  healthcare ,  warehousing ,  administration ,  and  ID  documents ,  in  particular  the  US  driver ' s license. Due to its high data density and customizable size, the PDF417 is one of the most versatile and widely used barcode types.  
			
		
	
		
		
			
				
					
					*  A  two - dimensional  barcode  that  stores  around  2725  numbers  or  1850  alphanumeric  characters .  
			
		
	
		
		
			
				
					
					*  “ PDF ”  is  short  for  “ Portable  data  file ” .  
			
		
	
		
		
			
				
					
					*  Defined  in  the  ISO / IEC  15438  standard .  
			
		
	
		
		
			
				
					
					*  High  data  density ,  yet  with  adjustable  length  and  width .  
			
		
	
		
		
			
				
					
					*  Striking  redundancy:  Up  to  40 %  damage  can  be  compensated .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . PDF417 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' UPCA, UPCE ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					The  Universal  Product  Code  ( UPC )  is  perfect  for  retail ,  warehousing ,  and  distribution .  Stores  or  warehouses  use  it  in  combination  with  their  databases  to  assign  individual  prices  or  quantities  to  the  coded  products .  Since  the  price  is  explicitly  not  part of  the  barcode ,  retail  stores  can  set  prices  independently  using  their  checkout  system .  
			
		
	
		
		
			
				
					
					*  Exclusively  used  within  North  America .  
			
		
	
		
		
			
				
					
					*  One - dimensional  barcode  that  stores  exactly  12  numeric  characters ,  which  form  the  Global  Trade  Item  Number  ( GTIN ) .  
			
		
	
		
		
			
				
					
					*  The  low  data  density  makes  it  inadequate  for  encoding  complex  data .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . UPCA ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' EAN8, EAN13 ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					The  most  important  areas  of  application  for  EAN  codes  are  retail ,  distribution ,  and  warehousing .  The  EAN  –  short  for  European  Article  Number  –  is  used  to  identify  individual  products ,  which  can  then  be  linked  to  quantities  or  prices  in  the  store ’ s  database .  Since  they  can  only  store  a  limited  amount  of  data ,  EAN  codes  are  not  suitable  for  the  kind  of  complex  information  seen  in  ticketing  or  parcel  shipping .  
			
		
	
		
		
			
				
					
					*  Used  worldwide  despite  the  name ,  except  for  North  America ,  which  uses  the  UPC  standard .  
			
		
	
		
		
			
				
					
					*  Stores  either  13  or  8  digits  ( EAN - 13  vs .  EAN - 8 ) ,  which  encode  a  GTIN  ( Global  Trade  Identification  Number ) .  
			
		
	
		
		
			
				
					
					*  The  last  digit  is  a  mod10  checksum .  
			
		
	
		
		
			
				
					
					*  EAN  codes  are  defined  as  GS1  standards .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . EAN13 ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' Code39 ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					Unlike  other  common  barcodes ,  Code  39  can  also  encode  letters ,  which  makes  it  indispensable  in  the  industrial  sector .  A  frequent  use  case  is  in  factory  automation  in  the  automotive  and  electronics  industries .  In  the  US ,  it  was  standardized  and  adopted  by  the  AIAG  ( Automotive  Industry  Action  Group ) .  
			
		
	
		
		
			
				
					
					*  One - dimensional  barcode  that  encodes  43  characters:  uppercase  letters ,  numeric  digits ,  and  a  number  of  special  characters .  
			
		
	
		
		
			
				
					
					*  Self - checking .  However ,  a  modulo  43  check  digit  is  sometimes  included .  
			
		
	
		
		
			
				
					
					*  The  low  data  density  makes  it  unsuitable  for  tiny  items .  
			
		
	
		
		
			
				
					
					*  Standardized  as  ANSI  MH  10.8  M - 1983  and  ANSI / AIM  BC1 / 1995.  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . Code39 ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' Code93 ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					This  barcode  symbology  can  store  alphanumeric  characters .  Its  main  user ,  Canada  Post ,  encodes  supplementary  delivery  information  with  it .  
			
		
	
		
		
			
				
					
					*  One - dimensional  barcode  encoding  43  alphanumeric  characters  and  5  special  characters .  
			
		
	
		
		
			
				
					
					*  In  Code  93  Extended ,  combinations  of  those  characters  can  represent  all  128  ASCII  characters .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . Code93 ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' Code128 ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					The  Code  128  barcode  is  most  frequently  used  in  transporting  goods ,  especially  to  mark  containers  for  distribution ,  and  warehousing .  With  it ,  various  kinds  of  information  about  the  respective  goods  can  be  flexibly  encoded  and  read  with  a  wide  range  of  conventional  scanners  or  smartphones .  Its  focus  is  clearly  on  non - POS  areas .  Check  out  our  Barcode  Scanner  for  logistics  to  learn  more  about  possible  application  among  the  transportation  area .  
			
		
	
		
		
			
				
					
					*  A  one - dimensional  barcode  defined  in  the  ISO / IEC  15417  standard .  
			
		
	
		
		
			
				
					
					*  Can  encode  all  ASCII  characters ,  including  special  characters .  
			
		
	
		
		
			
				
					
					*  High  data  density  compared  to  other  1 D  barcode  formats .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . Code128 ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' CodaBar ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					The  Codabar  barcode  is  only  used  in  blood  banks ,  libraries ,  and  in  laboratories .  
			
		
	
		
		
			
				
					
					*  1 D  ( linear )  barcode  type .  
			
		
	
		
		
			
				
					
					*  Self - checking ,  with  no  need  for  a  check  digit .  
			
		
	
		
		
			
				
					
					*  Encodes  alphanumeric  characters ,  as  well  as  six  special  characters .  
			
		
	
		
		
			
				
					
					*  Stores  up  to  16  characters .  
			
		
	
		
		
			
				
					
					*  Newer  barcode  types  can  store  more  data  in  less  space .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . Codabar ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					      createSlide (   
			
		
	
		
		
			
				
					
					        context ,   
			
		
	
		
		
			
				
					
					        title:  ' ITF ' ,   
			
		
	
		
		
			
				
					
					        body:  """   
			
		
	
		
		
			
				
					
					ITF  barcodes  are  often  described  as  Standard  Distribution  Codes .  They  are  frequently  found  on  cardboard  boxes  and  other  kinds  of  outer  packaging .  
			
		
	
		
		
			
				
					
					*  One - dimensional  barcodes  that  encode  two  numerical  characters  for  every  five  bars .  
			
		
	
		
		
			
				
					
					*  High  data  density ,  as  data  is  stored  in  both  the  bars  and  the  gaps .    
			
		
	
		
		
			
				
					
					*  Compared  to  other  linear  barcodes ,  more  data  can  be  accommodated  using  the  same  label  size .  
			
		
	
		
		
			
				
					
					        """ ,   
			
		
	
		
		
			
				
					
					        format:  Format . ITF ,   
			
		
	
		
		
			
				
					
					        qrText:  ' 123456789012 ' ,   
			
		
	
		
		
			
				
					
					        width:  200 ,   
			
		
	
		
		
			
				
					
					      ) ,   
			
		
	
		
		
			
				
					
					    ] ;   
			
		
	
		
		
			
				
					
					  }   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					/ *  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					DataBar  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					DataBarExpanded  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					MaxiCode  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					* /