lunes, 13 de febrero de 2017

Documentación ofical y completa sobre el comando de impresión de códigos de barras Gs K mediante códigos de escape epson

GS k


[Models]
  • TM-J2000
  • TM-J2100
  • TM-L90
  • TM-P20
  • TM-P60
  • TM-P60II
  • TM-P80
  • TM-T20
  • TM-T20II
  • TM-T70
  • TM-T70II
  • TM-T82II
  • TM-T88IV
  • TM-T88V
  • TM-T88VI
  • TM-T90
  • TM-U220
  • TM-U230
[Name]Print barcode
[Format]
(A)   ASCII   GS  k  m  d1 ... dk  NUL
Hex1D6Bmd1 ... dkNUL
Decimal29107md1 ... dkNUL
(B)   ASCII   GS  k  m  n  d1 ... dn
Hex1D6Bmnd1 ... dn
Decimal29107mnd1 ... dn
[Range]m: different depending on the printers dk of (A), and dn of (B): different depending on the barcode format. Refer to the tables in the following [Description].
[Default]None
[Description] Prints the barcode using the barcode system specified by m.
<Function A>
mBarcode systemBarcode data ("SP" in the table indicates space.)
Number of bytesThe range of kCharacters (ASCII)Data ( d )
0UPC-AFixedk = 11, 120 – 9d = 48 – 57
1UPC-EFixedk = 6 – 8, 11, 120 – 9d = 48 – 57
(However, d1 = 48 when k = 7, 8, 11, 12)
2JAN13 (EAN13)Fixedk = 12, 130 – 9d = 48 – 57
3JAN8 (EAN8)Fixedk = 7, 80 – 9d = 48 – 57
4CODE39Can be changed1 ≤ k0 – 9, A – Z, SP, $, %, *, +, -, ., /d = 48 – 57, 65 – 90, 32, 36, 37, 42, 43, 45, 46, 47
5ITF (Interleaved 2 of 5)Can be changed2 ≤ k
(even number)
0 – 9d = 48 – 57
6CODABAR (NW-7)Can be changed2 ≤ k0 – 9, A – D, a – d, $, +, −, ., /, :d = 48 – 57, 65 – 68, 97 – 100, 36, 43, 45, 46, 47, 58
(However, d1 = 65 – 68, dk = 65 – 68, d1 = 97 – 100, dk = 97 – 100)
  • k indicates the number of bytes of barcode data. k is an explanation parameter; therefore it does not need to be transmitted.
  • d specifies the character code data of the barcode data to be printed.
<Function B>
mBarcode systemBarcode data ("SP" in the table indicates space.)
Number of bytesThe range of nCharacters (ASCII)Data ( d )
65UPC-AFixedn = 11, 120 – 9d = 48 – 57
66UPC-EFixedn = 6 – 8, 11, 120 – 9d = 48 – 57
(However, d1 = 48 when n = 7, 8, 11, 12)
67JAN13 (EAN13)Fixedn = 12, 130 – 9d = 48 – 57
68JAN8 (EAN8)Fixedn = 7, 80 – 9d = 48 – 57
69CODE39Can be changedn = 1 – 2550 – 9, A – Z, SP, $, %, *, +, -, ., /d = 48 – 57, 65 – 90, 32, 36, 37, 42, 43, 45, 46, 47
70ITF (Interleaved 2 of 5)Can be changedn = 2 – 254
(even number)
0 – 9d = 48 – 57
71CODABAR (NW-7)Can be changedn = 2 – 2550 – 9, A – D, a – d, $, +, −, ., /, :d = 48 – 57, 65 – 68, 97 – 100, 36, 43, 45, 46, 47, 58
(However, d1 = 65 – 68, dn = 65 – 68, d1 = 97 – 100, dn = 97 – 100)
72CODE93Can be changedn = 1 – 25500h – 7Fhd = 0 – 127
73CODE128Can be changedn = 2 – 25500h – 7Fhd = 0 – 127
(However d1 = 123, d2 = 65 – 67)
74GS1-128Can be changedn = 2 – 255NUL – SP(7Fh)d = 0 – 127
75GS1 DataBar OmnidirectionalCan be changedn = 130 – 9d = 48 – 57
76GS1 DataBar TruncatedCan be changedn = 130 – 9d = 48 – 57
77GS1 DataBar LimitedCan be changedn = 130 – 9d = 48 – 57
(However d1 = 48, 49)
78GS1 DataBar ExpandedCan be changedn = 2 – 2550 – 9, A – D, a – d, SP, !, ", %, $, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, _, {d = 32 – 34, 37 – 63, 65 – 90, 95, 97 – 122, 123
(However d1 = 40, d2 = 48 – 57, d3 = 48 – 57 or d1 = 48 – 57, d2 = 48 – 57)
  • n specifies the number of bytes of barcode data.
  • d specifies the character code data of the barcode data to be printed.
[Notes]
  • When Standard mode is selected, this command is enabled only when the print position is at the head of a line or when no data exists in the print buffer.
  • when Page mode is selected, this command develops the barcode data in the print buffer but the printer does not print the barcode data.
  • The barcode width that exceeds the print area cannot be specified.
  • This command feeds as much paper as is required to print the barcode, regardless of the line spacing specified by line space setting commands.
  • The barcode is not affected by print mode (emphasized, underline, or 90° clockwise-rotated), except for upside-down print mode.
  • After barcode printing, the print postion is moved to left side of the printable area. Also, the printer is in the status "beginning of the line".
  • The values of m from 0 – 6 in (A) and from 65 – 78 in (B) select the same barcode system, respectively. The printing results are the same.
  • This command specifies m = 0 – 6 and ends with a NUL code.
  • When an odd number of data is processed for ITF barcode system ( m = 5), the printer ignores the last received data.
  • The printer processes n bytes from the next data as barcode data by this command specifying m = 65 – 78.
  • Print area does not include quiet zone (left/right margin) of barcode. Make sure to secure the quiet zone, using this command.
  • Ladder barcode (barcode rotated by 90 degrees in Page mode) is printed with appropriate printing speed regardless of the printer's maximum printing speed or the setting of GS ( K <Function 48>.
[Notes for UPC-A (m = 0, 65) process]
  • Modular check character (1 character) is processed as follows:
    • Automatically added when processing data is 11 byte.
    • The 12th byte data is processed as a modular check character when processing data is 12 byte. In this case, modular check character is not checked.
  • Left guard bar/center bar/right guard bar are added automatically.
[Notes for UPC-E (m = 1, 66) process]
  • Some models do not support settings of 6, 7, or 8 bytes for the amounts of data to process.
  • If the amount of data to process is 6 bytes, the number system character (NSC) 0 is added automatically.
  • If the amount of data to process is any of (7, 8, 11, 12 bytes), the first data (d1) is processed as number system character (NSC) so 0 must be specified.
  • Modular check character (1 character) is processed as follows:
    • If the amount of data to process is any of (6, 7, 11 bytes), it is added automatically.
    • If the amount of data to process is 8 bytes, the 8th byte data is processed as a modular check character. However, the modular check character is not checked.
    • The 12th byte data is processed as a modular check character when processing data is 12 byte. In this case, modular check character is not checked.
    • Modular check characters are data to decide the bar pattern; they are not printing data.
  • Prints a 6-column short code that except NSC and modular check characters.
  • If the amount of data to process is 6, 7, or 8 bytes, the shortened 6-digit code specified by (d1 ... dk) is printed.
  • If the amount of data to process is either of (11, 12 bytes), a shortened 6-digit code generated from the (d2 ... d11) data in accordance with the table below is printed.
    Data of transmitted by host PCPrinting data
    d2d3d4d5d6d7d8d9d10d11D1D2D3D4D5D6
    0 – 90 – 90000 – 90 – 90 – 9d2d3d9d10d110
    0 – 90 – 91000 – 90 – 90 – 9d2d3d9d10d111
    0 – 90 – 92000 – 90 – 90 – 9d2d3d9d10d112
    0 – 90 – 93 – 9000 – 90 – 9d2d3d4d10d113
    0 – 90 – 90 – 91 – 900 – 9d2d3d4d5d114
    0 – 90 – 90 – 90 – 91 – 95 – 9d2d3d4d5d6d11
    Specify 0 at indicated data by "−" in the table.
    When d6 = 1 – 9, be sure to specify (d11 = 5 – 9).
  • Left guard bar/right guard bar are added automatically.
[Notes for JAN13/EAN13 (m = 2, 67) process]
  • Modular check character (1 character) is processed as follows:
    • Automatically added when processing data is 12 byte.
    • The 13th byte data is processed as a modular check character when processing data is 13 byte. In this case, modular check character is not checked.
  • Left guard bar/center bar/right guard bar are added automatically.
[Notes for JAN8/EAN8 (m = 3, 68) process]
  • Modular check character (1 character) is processed as follows:
    • Automatically added when processing data is 7 byte.
    • The 8th byte data is processed as a modular check character when processing data is 8 byte. In this case, modular check character is not checked.
  • Left guard bar/center bar/right guard bar are added automatically.
[Notes for CODE39 (m = 4, 69) process]
  • The printer processes the start character (ASCII = */Hex = 2Ah/Decimal = 42) as follows:
    • When the first barcode (d1) is "*", the printer processes the data as a first character.
    • If the first barcode (d1) is not "*", the printer adds a start character (*) automatically.
  • The printer processes the stop character (ASCII = */Hex = 2Ah/Decimal = 42) as follows:
    • When the last barcode (dk or dn) is "*", the printer processes the data as a last character.
    • If the last barcode (dk or dn) is not "*", the printer adds a last character (*) automatically.
    • When "*" is processed during barcode data processing, the printer processes "*" as a stop character. The printer prints data preceding "*" and finishes command processing. Therefore, data following "*" are processed as normal data.
  • Check digits are not calculated and added.
[Notes for ITF (Interleaved 2 of 5) (m = 5, 70) process]
  • Start code and stop code are added automatically.
  • Check digits are not calculated and added.
[Notes for CODABAR (NW-7) (m = 6, 71) process]
  • Start character and stop character are not added automatically. Transmit data including the codes.
    • Specify the start character (ASCII = "A"–"D", "a"–"d" / Hex = 41h–44h, 61h–64h / Decimal = 65–68, 97–100) at beginning of the data (d1).
    • Specify the stop character (ASCII = "A"–"D", "a"–"d" / Hex = 41h–44h, 61h–64h / Decimal = 65–68, 97–100) at end of the data (dk or dn).
    • Start character or stop character (ASCII = "A"–"D", "a"–"d" / Hex = 41h–44h, 61h–64h / Decimal = 65–68, 97–100) cannot be specified in barcode data.
    • The character (ASCII = "a"–"d" / Hex = 61h–64h / Decimal = 97–100) is supported by some printer models.
  • Check digits are not calculated and added.
[Notes for CODE93 (m = 72) process]
  • Start character and stop character are added automatically.
  • Check digits (2 character) are calculated and added automatically.
  • When HRI characters are designated to be added, special character HRI characters are processed as follows.
    • The printer prints an HRI character "□" as start and stop character.
    • The printer prints HRI characters "■ + an alphabetic character" as control characters (not printable characters).
[Notes for CODE128 (m = 73) process]
  • The first two-byte (d1d2) start character must be code set selection character (any of CODE A, CODE B, or CODE C) which selects the first code set.
  • Check digit (1 character) is calculated and added automatically.
  • Special character HRI is processed as follows:
    • The printer does not print HRI characters that correspond to the shift character or code set selection character (CODE A, CODE B, or CODE C).
    • HRI characters of the function characters (FNC1, FNC2, FNC3, or FNC4) and control characters (in Hexadecimal: 00h – 1Fh, 7Fh / in Decimal 0 – 31, 127) are printed as spaces.
  • The range of data (d) that can be processed in each code set (CODE A, CODE B, CODE C) is shown in the table below. Data where the character field is blank cannot be used. Transmit the 2-byte data shown in the following table ([Hex = 7Bh / Decimal = 123] + character code) from the host for the special characters and barcode data "{".
    dCharacter
    HexDecimalCODE ACODE BCODE C
    000NUL00
    011SOH01
    022STX02
    033ETX03
    044EOT04
    055ENQ05
    066ACK06
    077BEL07
    088BS08
    099HT09
    0A10LF10
    0B11VT11
    0C12FF12
    0D13CR13
    0E14SO14
    0F15SI15
    1016DLE16
    1117DC117
    1218DC218
    1319DC319
    1420DC420
    1521NAK21
    1622SYN22
    1723ETB23
    1824CAN24
    1925EM25
    1A26SUB26
    1B27ESC27
    1C28FS28
    1D29GS29
    1E30RS30
    1F31US31
    2032SPSP32
    2133!!33
    2234""34
    2335##35
    2436$$36
    2537%%37
    2638&&38
    2739''39
    2840((40
    2941))41
    2A42**42
    2B43++43
    2C44,,44
    2D45--45
    2E46..46
    2F47//47
    30480048
    31491149
    32502250
    33513351
    34524452
    35535553
    36546654
    37557755
    38568856
    39579957
    3A58::58
    3B59;;59
    3C60<<60
    3D61==61
    3E62>>62
    3F63??63
    4064@@64
    4165AA65
    4266BB66
    4367CC67
    4468DD68
       
    dCharacter
    HexDecimalCODE ACODE BCODE C
    4569EE69
    4670FF70
    4771GG71
    4872HH72
    4973II73
    4A74JJ74
    4B75KK75
    4C76LL76
    4D77MM77
    4E78NN78
    4F79OO79
    5080PP80
    5181QQ81
    5282RR82
    5383SS83
    5484TT84
    5585UU85
    5686VV86
    5787WW87
    5888XX88
    5989YY89
    5A90ZZ90
    5B91[[91
    5C92\\92
    5D93]]93
    5E94^^94
    5F95__95
    6096`96
    6197a97
    6298b98
    6399c99
    64100d
    65101e
    66102f
    67103g
    68104h
    69105i
    6A106j
    6B107k
    6C108l
    6D109m
    6E110n
    6F111o
    70112p
    71113q
    72114r
    73115s
    74116t
    75117u
    76118v
    77119w
    78120x
    79121y
    7A122z
    7B, 7B123, 123{
    7C124|
    7D125}
    7E126~
    7F127DEL
    dSpecial Character
    HexDecimalCODE ACODE BCODE C
    7B, 31123, 49FNC1FNC1FNC1
    7B, 32123, 50FNC2FNC2
    7B, 33123, 51FNC3FNC3
    7B, 34123, 52FNC4FNC4
    7B, 41123, 65CODE ACODE A
    7B, 42123, 66CODE BCODE B
    7B, 43123, 67CODE CCODE C
    7B, 53123, 83SHIFTSHIFT
[Description: Applied to GS1-128 (m = 74)]
  • GS1-128 processes the following structures.
    (a) Basic structure
    Start characterFNC1AIData partCheck digit ACheck digit BStop character
    Automatically addedd1 ... dn )Automatically added

    (b) Concatenated code structure
    Start characterFNC1AIData partCheck digit AFNC1AIData partCheck digit ACheck digit BStop character
    Automatically addedd1 ... dn )Automatically added
  • Transmit the data relevant to check digit A along with the application identifier (AI), from the host.
  • The start character number system character (CODE A, CODE B, CODE C), FNC1, check digit B (1 character), and stop character are added automatically.
  • The 4 special characters (SP, "(", ")", "*") are processed as shown in the table below.
    Special characters
    CharacterHexDecimalProcessing
    SP2032After d1, the first SP is processed as AI and the data part delimiter, and a space is inserted for the HRI characters. Spaces are inserted for the HRI characters for subsequent SP.
    In any case, SP does not constitute encoded data.
    (2840"(" is inserted for the HRI character. It can be used when you want the HRI characters that indicate AI to look nice when used with the pair of ")".
    "(" does not constitute encoded data.
    )2941After d1, the first ")" is processed as AI and the data part delimiter, and ")" is inserted for the HRI characters. ")" are inserted for the HRI characters for subsequent ")".
    In any case, ")" does not constitute encoded data.
    *2A42Check digit A (1 character), calculated with modulus 10, is added as the data part at the position of "*". "*" is not an HRI character, but check digits are inserted for HRI characters.
  • Examples of barcode data using special characters (SP, "(", ")", "*") are shown below.
    Example:When [AI = 01/data = 9501234567890/Specify to add check digit A/enclose AI in ()] GS k 74 18 "(01)9501234567890*"
    When HRI characters are designated to be added, the HRI characters are [(01)95012345678903].
    Example:When [AI = 01/data = 9501234567890/Specify to add check digit A/enclose AI in (), and insert a space between the data] GS k 74 18 "(01)9501234567890*"
    When HRI characters are designated to be added, the HRI characters are [(01)95012345678903].
    Example:When linking [AI = 01/data = 9501234567890/Specify to add check digit A/enclose AI in ()] and [AI = 3102/data = 000400/enclose AI in ()], and separating the HRI characters between the link with a space
    GS k 74 33 "(01)9501234567890* {1(3102)000400"
    When HRI characters are designated to be added, the HRI characters are [(01)95012345678903 (3102)000400].
  • When HRI characters are designated to be added, (d1 ... dn) is printed as HRI characters. Automatically added data is not treated as HRI characters. The HRI characters of special characters are processed as follows. ("SP" indicates a space)
    • The HRI character of the start character (CODE A, CODE B, CODE C) is not printed.
    • The HRI characters of the function characters (FNC1, FNC3) and the control characters (Hex = 00h–1Fh, 7Fh / Decimal = 0–31, 127) are printed as spaces.
    • The HRI characters of special characters (SP, "(", ")") are printed as the respective characters (SP, "(", ")").
    • The HRI character of special character ("*") prints a check digit.
    • The HRI characters of barcode data ["{"+("(", ")", "*", "{")] are printed as the respective characters ("(", ")", "*", "{")
  • The range of data (d) that can be processed in each code set (CODE A, CODE B, CODE C) is shown in the table below. Data where the character field is blank cannot be used. Transmit the 2-byte data shown in the following table ([Hex = 7Bh / Decimal = 123] + character code) from the host for the special characters (FNC1, FNC3) and barcode data "(", ")", "*", and "{",.
    dCharacter
    HexDecimalCODE ACODE BCODE C
    000NUL00
    011SOH01
    022STX02
    033ETX03
    044EOT04
    055ENQ05
    066ACK06
    077BEL07
    088BS08
    099HT09
    0A10LF10
    0B11VT11
    0C12FF12
    0D13CR13
    0E14SO14
    0F15SI15
    1016DLE16
    1117DC117
    1218DC218
    1319DC319
    1420DC420
    1521NAK21
    1622SYN22
    1723ETB23
    1824CAN24
    1925EM25
    1A26SUB26
    1B27ESC27
    1C28FS28
    1D29GS29
    1E30RS30
    1F31US31
    2032
    2133!!33
    2234""34
    2335##35
    2436$$36
    2537%%37
    2638&&38
    2739''39
    7B, 28123, 40((40
    7B, 29123, 41))41
    7B, 2A123, 42**42
    2B43++43
    2C44,,44
    2D45--45
    2E46..46
    2F47//47
    30480048
    31491149
    32502250
    33513351
    34524452
    35535553
    36546654
    37557755
    38568856
    39579957
    3A58::58
    3B59;;59
    3C60<<60
    3D61==61
    3E62>>62
    3F63??63
    4064@@64
    4165AA65
    4266BB66
    4367CC67
    4468DD68
       
    dCharacter
    HexDecimalCODE ACODE BCODE C
    4569EE69
    4670FF70
    4771GG71
    4872HH72
    4973II73
    4A74JJ74
    4B75KK75
    4C76LL76
    4D77MM77
    4E78NN78
    4F79OO79
    5080PP80
    5181QQ81
    5282RR82
    5383SS83
    5484TT84
    5585UU85
    5686VV86
    5787WW87
    5888XX88
    5989YY89
    5A90ZZ90
    5B91[[91
    5C92\\92
    5D93]]93
    5E94^^94
    5F95__95
    6096`96
    6197a97
    6298b98
    6399c99
    64100d
    65101e
    66102f
    67103g
    68104h
    69105i
    6A106j
    6B107k
    6C108l
    6D109m
    6E110n
    6F111o
    70112p
    71113q
    72114r
    73115s
    74116t
    75117u
    76118v
    77119w
    78120x
    79121y
    7A122z
    7B, 7B123, 123{
    7C124|
    7D125}
    7E126~
    7F127DEL
    dSpecial Character
    HexDecimalCODE ACODE BCODE C
    7B, 31123, 49FNC1FNC1FNC1
    7B, 33123, 51FNC3FNC3
    2032SPSPSP
    2840(((
    2941)))
    2A42***
[Description: Applied to GS1 DataBar Omnidirectional (m = 75)]
  • Transmit the 13-digit product identification number, excluding the application identifier (AI) and check digit, from the host.
  • Adds the application identifier (AI) automatically. The AI is "01".
  • Adds the check digit (1 character) automatically.
  • Adds the guard pattern and finder pattern automatically.
  • Prints the 18 characters of ["(01)", (d1...d13), check digit] as HRI characters when HRI characters are designated to be added.
  • An example of barcode data is shown below.
    When printing a barcode with the product identification number [2001234567890].
    GS k 75 13 "2001234567890"
    When HRI characters are designated to be added, the HRI characters are [(01)20012345678909].
  • When the barcode height set with GS h is smaller than [33 times the module width], a barcode with a height (excluding the HRI characters) of [module width × 33] is printed, without reference to the GS h setting.
[Description: Applied to GS1 DataBar Omnidirectional (m = 76)]
  • Transmit the 13-digit product identification number, excluding the application identifier (AI) and check digit, from the host.
  • Adds the application identifier (AI) automatically. The AI is "01".
  • Adds the check digit (1 character) automatically.
  • Adds the guard pattern and finder pattern automatically.
  • Prints the 18 characters of ["(01)", (d1...d13), check digit] as HRI characters when HRI characters are designated to be added.
  • An example of barcode data is shown below.
    When printing a barcode with the product identification number [0001234567890].
    GS k 76 13 "0001234567890"
    When HRI characters are designated to be added, the HRI characters are [(01)00012345678909].
  • When the barcode height set with GS h is smaller than [13 times the module width], a barcode with a height (excluding the HRI characters) of [module width × 13] is printed, without reference to the GS h setting.
[Description: Applied to GS1 DataBar Limited (m = 77)]
  • Transmit the 13-digit product identification number, excluding the application identifier (AI) and check digit, from the host.
  • Adds the application identifier (AI) automatically. The AI is "01".
  • Adds the check digit (1 character) automatically.
  • Adds the guard pattern and finder pattern automatically.
  • Prints the 18 characters of ["(01)", (d1...d13), check digit] as HRI characters when HRI characters are designated to be added.
  • An example of barcode data is shown below.
    When printing a barcode with the product identification number [1501234567890].
    GS k 77 13 "1501234567890"
    When HRI characters are designated to be added, the HRI characters are [(01)15012345678907].
  • When the barcode height set with GS h is smaller than [10 times the module width], a barcode with a height (excluding the HRI characters) of [module width × 10] is printed, without reference to the GS h setting.
[Description: Applied to GS1 DataBar Expanded (m = 78)]
  • Transmit the 2-byte data shown in the following table ([Hex = 7Bh / Decimal = 123] + character code) from the host for the special character (FNC1) and symbol data "(", ")". ("+" in the table is not included in the transmission data)
    Transmit data from the host
    DataASCIIDecimalHex
    FNC1{ + 17B + 31123 + 49
    ({ + (7B + 28123 + 40
    ){ + )7B + 29123 + 41
  • The special characters ("(", ")") are processed as shown in the table below.
    Special characters
    CharacterHexDecimalProcessing
    (2840"(" is inserted for the HRI character. It can be used when you want the HRI characters that indicate AI to look nice when used with the pair of ")".
    "(" does not constitute encoded data.
    )2941")" is inserted for the HRI character. It can be used when you want the HRI characters that indicate AI to look nice when used with the pair of "(".
    ")" does not constitute encode data.
  • Adds the guard pattern and finder pattern automatically.
  • When HRI characters are designated to be added, special character HRI characters are processed as follows.
    • The HRI character of function character (FNC1) is not printed.
    • The HRI characters of special characters ("(", ")") are printed as the respective characters ("(", ")").
    • The HRI characters of barcode data ["{" + ("(", ")")] are printed as the respective characters ("(", ")").
  • When the barcode height set with GS h is smaller than [34 times the module width], a barcode with a height (excluding the HRI characters) of [module width × 34] is printed, without reference to the GS h setting.)

ESC/POS® includes patented or patent pending commands. The contents must not be disclosed to third parties

Fuente: https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=128

No hay comentarios:

Publicar un comentario

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...