Patent Publication Number: US-9846792-B2

Title: Printing device and control method of a printing device

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of, and claims priority under 35 U.S.C. §120 on, application Ser. No. 14/336,320, filed Jul. 21, 2014, which claims priority under 35 U.S.C. §119 on Japanese patent application no. 2013-154270, filed Jul. 25, 2013. The content of each such related application is incorporated by reference herein in its entirety. 
    
    
     BACKGROUND 
     1. Technical Field 
     The present disclosure relates to a printing device and a control method of a printing device. 
     2. Related Art 
     Printing devices (printers) for printing barcodes are known from the literature. A barcode has a number of color bars separated by spaces, and conforms to one of various standards such as JAN code, EAN, UPC code, ITF code, CODE39, CODE128, and NW-7. JAN code, EAN, UPC code, ITF code, CODE39, CODE128, and NW-7. The widths of the bars and spaces is determined by the barcode standard, and devices that read the barcodes recognize bars and spaces of the widths defined by the particular standard. 
     When a barcode is printed with an inkjet printer, however, bar width can vary as a result of ink bleeding and deviation in where the ink droplets land on the printed surface. The barcode may be unreadable if the bar width deviates more than allowed by the standard. Addressing this problem, JP-A-2005-47169 and JP-A-2009-193428 disclose ways to change how a barcode is printed depending on the print medium used for printing. The device of JP-A-2005-47169 changes the dot configuration of the bars and spaces in the barcode according to the type of print medium based on a previously stored correction table. The printing system of JP-A-2009-193428 adjusts the widths of the bars in the barcode according to the type of paper. 
     There are, however, many different types of print media, and the characteristics of the print medium used by the user can easily differ from the print medium anticipated by the manufacturer of the printer. As a result, even if the printer changes the barcode printing method or bar widths, those changes may not match the print medium, and the printed barcodes may deviate from the barcode standard. 
     The possibility that the printed barcode will deviate from the standard therefore increases because the barcode printing method and other corrections made by the printer do not match the type of print medium. If the user must specifically control all changes and corrections made to barcode printing, the barcodes can be printed desirably according to the print medium selected by the user. However, this complicates operation for the user, and complicates printing barcodes. 
     SUMMARY 
     At least one embodiment of the present invention is directed to the foregoing problem, and provides a printing device that can print barcodes appropriately to the print medium by means of a simple, easy operation, and to a control method of the printing device. 
     One aspect of at least one embodiment of the present invention is a printing device including: a print unit that prints a barcode on a print medium; a storage unit that stores a preset constant value corresponding to the type of the print medium to adjust how a barcode is printed; a print control unit that prints a barcode with the print unit according to the constant stored in the storage unit; an acquisition unit that acquires an added correction value input for a specific type of print medium; and a correction value storage unit that stores the added correction value acquired by the acquisition unit relationally to the specified type of print medium. If an added correction value has been stored for a given selected print medium, then the print control unit prints the barcode with the print unit according to the constant value stored in the storage unit and the added correction value stored in the correction value storage unit. 
     In a printing device according to another aspect of at least one embodiment of the present invention, the storage unit preferably relationally stores constant values in a one-to-one relation to plural predetermined types of print media. When a type of print medium to use is selected from among the plural predetermined types of print media, the print control unit prints the barcode by adjusting the constant value relationally stored in the storage unit and corresponding to the selected type of print medium based on the added correction value stored in the correction value storage unit and corresponding to the selected type of print medium. 
     A printing device according to another aspect of at least one embodiment of the present invention preferably also has an interface that connects to a host computer. When information specifying the type of print medium to be used is input through the interface, the print control unit prints a barcode by adjusting the constant value relationally stored and corresponding to the specified type of print medium based on the added correction value stored in the correction value storage unit and corresponding to the specified type of print medium. 
     In a printing device according to another aspect of at least one embodiment of the present invention, the constant value is a first value specifying a change in the width of the barcode printed by the print unit. 
     In a printing device according to another aspect of at least one embodiment of the present, the added correction value is a second value specifying a change in the width of the barcode printed by the print unit. 
     In a printing device according to another aspect of at least one embodiment of the present, the print control unit calculates a combined correction value from the constant value and the added correction value, and prints the barcode according to the combined correction value using the print unit. 
     Another aspect of at least one embodiment of the present invention is a control method of a printing device that prints a barcode on a print medium, the control method including: storing a preset constant value corresponding to the type of the print medium to adjust how a barcode is printed; acquiring and relationally storing an input added correction value to correspond to the print medium type when an added correction value is input for a particular type of print medium; and printing a barcode based on both the constant value and the added correction value. 
     The foregoing problem is also addressed in a printing device having: an inkjet head configured to eject ink; an interface configured to connect to a host computer; a controller configured to receive a print data including a barcode through the interface and a command specifying an added correction value, and control the inkjet head to print the print data; and a storage configured to store a preset constant correction value corresponding to a type of print media and the added correction value to correspond to the type of print media; wherein: when the type of print media is specified, the controller defines a corrected barcode by correcting the barcode included in the print data based on the preset constant correction value corresponding to the type of print media specified and the added correction value corresponding to the type of print media specified. 
     Preferably in this case, the controller receives a command specifying the type of print media. 
     The printing device may further include a buffer memory, wherein: 
     the controller writes image data to the buffer memory based on the print data, including the corrected barcode. 
     Preferably in defining the corrected barcode, the controller corrects a width of a bar of the barcode included in the print data. 
     Additionally, the controller may convert the image data to an amount of the ink. 
     Preferably, the added correction value is a an added barcode correction value to add a first correction to an attribute of the barcode included in the received print data; and the preset constant correction value is a preset constant barcode correction value to add a second correction to the attribute of the barcode included in the received print data. 
     In this case, it is preferred that the added barcode correction value be user-provided. 
     The foregoing problems are also addressed in a control method of a printing device including an inkjet head configured to eject ink, an interface configured to connect to a host computer, and a memory store configured to store a preset constant correction value corresponding to a type of print media, including: receiving a command specifying an added correction value; storing in the memory store the received added correction value to correspond to the type of print media; receiving print data including a barcode; controlling the inkjet head to print based on the print data; and when the type of the print media is specified, defining a corrected barcode by correcting the barcode included the print data based on the preset constant correction value corresponding to the type of print media specified and the added correction value corresponding to the type of print media specified. 
     Preferably the method further includes receiving a command specifying the type of print media. 
     Additionally, the method may further include writing image data to a buffer memory based on the print data, including the corrected barcode. 
     Preferably, defining the corrected barcode includes correcting a width of a bar of the barcode included in the print data. 
     The method may further include converting the image data to an amount of the ink. 
     Additionally, the added correction value may be a an added barcode correction value to add a first correction to an attribute of the barcode included in the received print data; and the preset constant correction value may be a preset constant barcode correction value to add a second correction to the attribute of the barcode included in the received print data. 
     In this case, the added barcode correction value is preferably user-provided. 
     The foregoing problems are also addressed in a recording medium storing a program executable by a hardware controller that controls a printing device including an inkjet head configured to eject ink, an interface configured to connect to a host computer, and a memory store configured to store a preset constant correction value corresponding to a type of print media, execution of the program causing the hardware controller to execute processing steps, including: receiving a command specifying an added correction value; storing in the memory store the received added correction value to correspond to the type of print media; receiving print data including a barcode; controlling the inkjet head to print based on the print data; and when the type of the print media is specified, defining a corrected barcode by correcting the barcode included the print data based on the preset constant correction value corresponding to the type of print media specified and the added correction value corresponding to the type of print media specified. 
     Preferably the processing steps further include receiving a command specifying the type of print media. 
     The processing steps may further include writing image data to a buffer memory based on the print data, including the corrected barcode. 
     In this case, defining the corrected barcode may include correcting a width of a bar of the barcode included in the print data. 
     Additionally, the processing steps may include converting the image data to an amount of the ink. 
     Preferably, the added correction value is a an added barcode correction value to add a first correction to an attribute of the barcode included in the received print data; and the preset constant correction value is a preset constant barcode correction value to add a second correction to the attribute of the barcode included in the received print data. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a function block diagram of a printing system according to some embodiments of the invention. 
         FIG. 2A  shows an exemplary table of constants stored in the printer storage unit. 
         FIG. 2B  shows an exemplary table of user correction values stored in the printer storage unit. 
         FIG. 3  is a flow chart showing the operation of the printing system when setting user correction values. 
         FIG. 4  is a flow chart showing the operation of the printing system when printing. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     Some embodiments of the present invention are described below with reference to the accompanying figures. 
       FIG. 1  is a function block diagram of a printing system  8  according to some embodiments of the invention. 
     As shown in  FIG. 1 , the printing system  8  includes a printer  5  (printing device), and a host computer  1  that controls the printer  5 . 
     The printing system  8  is a printing system in which the host computer  1  outputs print commands and print data to the printer  5  in response to user operations, and the printer  5  prints on print media based on the print commands and print data. 
     The host computer  1  has a host control unit  45  that controls other parts of the host computer  1 . The host control unit  45  has an application execution unit  45   a  and a printer driver execution unit  45   b.    
     The application execution unit  45   a  executes application programs such as a text editing program, image editing program, or POS application. When printing is commanded by a user operation, the application execution unit  45   a  generates and outputs print data for printing the created document or image. 
     The printer driver execution unit  45   b  executes a device driver program for controlling the printer  5 . The printer driver execution unit  45   b  generates commands to control the printer  5  and data related to those commands, outputs to the printer  5 , and controls printer  5  operation. For example, the printer driver execution unit  45   b  generates and outputs print data and print commands instructing the printer  5  to print based on the print data output by the application execution unit  45   a . Note that the device driver program run by the printer driver execution unit  45   b  is not limited to a program optimized for the printer  5 , and could be a generic device driver program. The program could also be a device driver program for other printer models. In this event, the printer  5  could be configured to process commands and data output by the printer driver execution unit  45   b  for a different model of printer. 
     The host computer  1  also has a host display unit  46  for displaying information, a host input unit  47  for detecting operation of the connected input devices, a host storage unit  48  for storing data, and a communication interface  49  for communicating with the printer  5 . The host display unit  46  and host input unit  47  are provided for operation by the user. The host storage unit  48  stores (preferably in a non-volatile manner) programs such as the control program, application program, or device driver program run by the host control unit  45 , and data related to these programs. 
     In some embodiments of the invention, the host computer  1  is described generating print commands and print data for printing labels containing a barcode. When the application execution unit  45   a  instructs printing an image including a barcode, the printer driver execution unit  45   b  generates print data including the barcode and print commands for printing. The barcode data generated by the application execution unit  45   a  could, for example, conform to a known standard such as JAN code, EAN, UPC code, ITF code, CODE39, CODE128, or NW-7, or a proprietary code. These barcodes are printed using a barcode font. The printer driver execution unit  45   b  therefore outputs barcode print data including data specifying the barcode font and the character codes to be printed. 
     One example of the printer  5  according to this embodiment is an inkjet printer. In this embodiment the printer  5  has an inkjet line head  12  (printhead) with nozzles that eject ink. The inkjet line head  12  is a line head with rows of nozzles across the entire print area in the direction perpendicular to the media conveyance direction. The inkjet line head  12  in this embodiment has a separate nozzle row for each of four colors, cyan (C), magenta (M), yellow (Y), and black (K), and is capable of full-color printing on the print medium. The inkjet line head  12  could obviously be configured to use more colors of ink, or be configured to print with two colors or one color for monochrome printing. 
     The print media used by the printer  5  could be cut-sheet media that is precut to a specific size, or continuous sheet media, and the sheet media could be paper or plastic media, with or without a coated surface. The continuous sheet media could be roll paper or fanfold paper, for example. 
     The print medium in the printer  5  according to this embodiment is roll paper or label paper having labels of a specific size with an adhesive coating on the back affixed to a removable liner (backing). 
     Plural types of roll paper or label paper are used in the printer  5 . Examples of print media used in this embodiment include plain paper, fanfold paper, plain paper labels, fine paper labels, plastic label paper, and glossy label paper. The printing surface of plain paper and plain paper labels is plain paper. Fine paper and fine paper labels are typically fanfold paper with ink absorbency and fastness characteristics suited to inkjet printing. Plastic label paper is label paper made with a plastic sheet. Glossy label paper is label paper made with glossy paper that offers excellent ink absorbency, fastness, and chromogenicity, and retains its glossy finish after absorbing ink. 
     The printer  5  has a printer control unit  27  (print control unit, acquisition unit) that controls other parts of the printer  5 . The printer control unit  27  includes a CPU as an operating unit, ROM and RAM. Firmware that can be executed by the CPU and nonvolatile data related to the firmware is in the ROM of the printer control unit  27 . Data related to the firmware run by the CPU is also temporarily stored in RAM. The printer control unit  27  may also have other peripheral circuits. 
     In addition to the inkjet line head  12  described above, a paper feed motor  36 , printer display unit  39 , printer input unit  40 , communication interface  41 , black mark sensor  42 , and printer storage unit  50  are also connected to the printer control unit  27 . 
     The printer display unit  39  has multiple LEDs or an LCD panel, and displays the operating status of the printer  5  as controlled by the printer control unit  27 . The printer input unit  40  includes various switches, and outputs signals corresponding to the operation of the switches to the printer control unit  27 . The communication interface  41  is connected to the host computer  1 . A black mark sensor  42  is an optical sensor disposed to the conveyance path through which the print medium (label paper or roll paper) is conveyed inside the printer  5 , and optically reads the black marks (not shown in the figure) formed on the print medium for positioning. The communication interface  41  (interface) communicates with the host computer  1  according to a specific protocol as controlled by the printer control unit  27 . 
     The paper feed motor  36  turns the conveyance rollers (not shown in the figure) as controlled by the printer control unit  27  to convey the label paper  14 . The paper feed motor  36  is preferably a stepper motor, and the amount and direction of rotation of the paper feed motor  36  can be controlled by the printer control unit  27 . The black mark sensor  42  detects the black marks while the label paper  14  is being conveyed, and outputs the sensor values to the printer control unit  27 . 
     Function blocks of the printer control unit  27  include a print control unit  27   a , image processing unit  27   b , and buffer memory  27   c . The print control unit  27   a  and image processing unit  27   b  are achieved by the CPU running firmware. The buffer memory  27   c  is a storage area reserved in RAM (not shown in the figure) of the printer control unit  27 . Alternatively, the buffer memory  27   c  could be reserved in the printer storage unit  50 , or the buffer memory  27   c  could be reserved in RAM externally connected to the printer control unit  27 . 
     The printer storage unit  50  (storage unit, correction value storage unit) includes a nonvolatile, rewritable storage medium such as EEPROM, flash memory, or other type of semiconductor memory, or a hard disk drive, and stores data in a nonvolatile and rewriteable manner. The printer storage unit  50  stores programs that are executed by the printer control unit  27 , and data including font data that is processed by the printer control unit  27 . 
     The print control unit  27   a  prints based on the print data and print commands input from the host computer  1  through the interface  41 . The print control unit  27   a  controls the paper feed motor  36  to convey the label paper  14  while driving the inkjet line head  12  to eject ink. 
     The print control unit  27   a  calls the image processing unit  27   b  to process the print data input from the host computer  1 . The image processing unit  27   b  writes the print data to the buffer memory  27   c  as rasterized image data. The buffer memory  27   c  is a storage area created according to the print resolution of the inkjet line head  12  and the size of the printable area of the printer  5 . 
     Print data including data specifying the barcode font and character codes is output from the host computer  1  in this embodiment. The image processing unit  27   b  reads the font data stored in the printer storage unit  50 , and writes barcode image data to the buffer memory  27   c.    
     The print control unit  27   a  prints the image written to the buffer memory  27   c  using the inkjet line head  12 . The image data written to the buffer memory  27   c  is rasterized image data setting print color data for each pixel in a specific number of pixels covering the printable area of the printer  5 . Based on a predefined lookup table (LUT), the print control unit  27   a  converts the color information for each pixel in the image data buffered to the buffer memory  27   c  to the amount of each color of ink to be ejected by the inkjet line head  12  for each pixel. The print control unit  27   a  then determines the position and size of each color of ink dot formed by the inkjet line head  12  ejecting ink droplets based on the converted ink volume data, and prints. 
     The host computer  25  also has a function for correcting the barcode image data written to the buffer memory  27   c.    
     As described above, the print medium used by the printer  5  could be plain paper, fine paper, plain paper labels, fine paper labels, plastic labels, or glossy labels, for example. The surface characteristics of the printing surfaces of these media differ, particularly in the likelihood of ink bleeding. For example, fine paper has excellent ink absorbency and is therefore resistant to bleeding, but plain paper and plastic labels do not have good ink absorption and ink bleeds easily. Excessive bleeding can therefore occur depending on the type of print medium when image data for a barcode written to the buffer memory  27   c  is printed. This bleeding can increase the width of the black parts (bars) of the barcode, and the printed barcode will be a barcode that does not conform to the barcode standard if the bar width exceeds the standard width, or the space between bars narrows as a result of the bar width increasing. Such barcodes may not be read normally by the barcode reader. 
     The image processing unit  27   b  of the printer  5  therefore adjusts the barcode image in buffer memory  27   c  appropriately to the type of print medium. More specifically, when printing on a print medium that is susceptible to bleeding, the bar width is reduced to compensate for the increase in the bar width due to bleeding. More specifically, the width of the bars in the image data written to the buffer memory  27   c  is reduced by a number of dots. The process of adjusting the barcode according to the type of print medium is performed by the image processing unit  27   b  according to constants and user correction values (added correction value) stored in the printer storage unit  50 . 
       FIG. 2A  and  FIG. 2B  show exemplary tables of constants and user correction values stored in the printer storage unit  50 , respectively.  FIG. 2A  shows a constants table  50   a , and  FIG. 2B  shows a user correction values table  50   b.    
     The constants table  50   a  is a table of preset constants corresponding to different types of print media used by the printer  5 . The constants table  50   a  is stored in the printer storage unit  50  when firmware is written when the printer  5  is shipped from the factory or when the firmware is updated. 
     The types of media for which constants are set in the constants table  50   a  correspond to the types of print media that can be used in the printer  5 . A subset of constants corresponding to some of the most typical print media could also be stored instead of storing constants for all print media that can be used. 
     The host computer  1  can set the types of print media using a device driver program run by the printer driver execution unit  45   b . The print media type settings in the printer driver execution unit  45   b , and the media types for which constants are set in the constants table  50   a , preferably match. Four types of print media (plain paper and plain paper labels, fine paper and fine paper labels, plastic labels, and glossy labels) are set in this embodiment, and constants are stored for each of these print media types. 
     Similarly to the constants, a user correction values table  50   b  of correction values set by the user for specific media types is also stored in the printer storage unit  50 . The printer driver execution unit  45   b  displays a configuration window on the host computer  1 , and the user correction values of the user correction values table  50   b  are the values input through this configuration window. More specifically, a print media type is selected (specified) using a function of the printer driver execution unit  45   b  running on the host computer  1 , and user correction values for the selected print media type are input through the host input unit  47 . The printer driver execution unit  45   b  then outputs data indicating the input print media type and the user correction values to the printer  5 . The printer control unit  27  of the printer  5  then stores the user correction values table  50   b  in the printer storage unit  50  according to the data input from the host computer  1 . The user can thereby set correction values for a desired type of print media. 
     A constant set in the constants table  50   a  is a value that increases or decreases the width of bars in the barcode in dot units. The constants in the constants table  50   a  denote the number of dots a bar width is changed; positive values indicate the number of dots by which the width of a bar is increased, and negative values indicating the number of dots by which the width of a bar is decreased. For example, if the constant is −2 for a media type of plain paper, the media type is set to plain paper by the printer driver execution unit  45   b , and printing a barcode is commanded, the printer  5  narrows the bars based on the constants table  50   a . More specifically, the image processing unit  27   b  changes the width of bars in the barcode image data written to the buffer memory  27   c  based on the change specified by the constant. 
     The user correction values set in the user correction values table  50   b  are values that change the width of barcode bars in addition to the constants set in the constants table  50   a . Like the constants described above, these correction values indicate the increase or decrease in dots. A positive correction value indicates how many dots the width of the bar increases, and a negative value indicates the number of dots the width decreases. The user correction values in the user correction values table  50   b  are used in conjunction with the constants in the constants table  50   a.    
     For example, a constant of −1 is set for the media type “fine paper” in the constants table  50   a  in the table shown in  FIG. 2A . A user correction value of 2 is set for the same “fine paper” media type in the user correction values table  50   b  shown in  FIG. 2B . As a result, the image processing unit  27   b  calculates the sum of the constant plus the user correction value to get the correction value to use. The correction value for fine paper in this example is therefore (−1)+2=1, and the change in the bar width of the barcode is one dot. 
     The image processing unit  27   b  thus adds the user correction value from the user correction values table  50   b  to the constant from the constants table  50   a  to change the width of bars in a barcode. 
     The constants table  50   a  stores values defined by the manufacturer of the printer  5  to enable good quality printing with each type of print media that is used in the printer  5 . For example, for each type of media used in the printer  5 , a typical or recommended print medium is selected and a constant is set so that a desirable barcode can be printed using that print medium. 
     However, the user does not necessarily use the print medium recommended by the manufacturer, and the print condition of barcodes printed based on the set constant is not necessarily the best even when the type of print medium is appropriately selected. In this event, the user can set a user correction value that further corrects the constant. A user correction value can be set for each type of print medium, and the corresponding user correction value is automatically applied when the printer driver execution unit  45   b  selects the type of print medium for printing. In other words, there is no need to manually set the user correction value in every print job. 
       FIG. 3  is a flow chart showing the operation of the printing system  8  when setting a user correction value, column (A) showing the operation of the host computer  1 , and (B) the operation of the printer  5 . 
     In response to operation of an input device connected to the host input unit  47 , the host computer  1  first displays a window for inputting a user correction value by a function of the printer driver execution unit  45   b  (step SA 1 ). Next, the type of print medium is selected, and the user correction value corresponding to the selected print medium type is input, through the displayed window (step SA 2 ). The printer driver execution unit  45   b  then relationally outputs the selected print medium type and input user correction value to the printer  5  (step SA 3 ). 
     The printer control unit  27  of the printer  5  then acquires the print medium type and user correction value output by the host computer  1  (step SB 1 ). Next, the printer control unit  27  sets the acquired print medium type and user correction value in the user correction values table  50   b  (step SB 2 ). The printer control unit  27  stores the user correction values table  50   b  in which setting the user correction value was completed in the printer storage unit  50 , or updates the user correction values table  50   b  stored in the printer storage unit  50  accordingly (step SB 3 ). 
     This operation enables easily inputting and setting a user correction value corresponding to a particular type of print medium based on operations performed on the host computer  1 . A user correction value can also be changed by the same simple operation. Because the user correction value input and set in this operation is used later when printing, barcodes can be printed easily and desirably by previously setting the user correction values. 
       FIG. 4  is a flow chart showing the operation of the printing system  8  when setting a user correction value, column (A) showing the operation of the host computer  1  (SA 11  to SA 13 ), and (B) showing the operation of the printer  5  (step SB 11  to SB 15 ). Note that the operation shown in  FIG. 4  can obviously be executed continuously to the operation shown in  FIG. 3 . 
     The application execution unit  45   a  of the host computer  1  generates information related to an image containing a barcode, and outputs to the printer driver execution unit  45   b  (step SA 11 ). Based on the information input from the application execution unit  45   a , the printer driver execution unit  45   b  generates print data and commands instructing printing the image (step SA 12 ), and sends the print data and commands to the printer  5  (step SA 13 ). In addition to a command instructing printing, the printer driver execution unit  45   b  generates a command specifying the print medium type set by operation of the application execution unit  45   a  or operation of the printer driver execution unit  45   b . The type of print medium may also be set by default. In this event, the printer driver execution unit  45   b  generates a command specifying the default print medium type if the type of print medium is not specifically set otherwise. 
     The printer control unit  27  of the printer  5  receives the commands and print data sent by the host computer  1  (step SB 11 ). The image processing unit  27   b  then acquires the barcode font and writes image data including the barcode to the buffer memory  27   c  based on the received commands and print data (step SB 12 ). 
     The image processing unit  27   b  references the constants table  50   a  and user correction values table  50   b , and acquires the constant and the user correction value corresponding to the specific type of print medium (step SB 13 ). The image processing unit  27   b  then applies correction based on the constant and user correction value to the barcode image written to buffer memory  27   c  (step SB 14 ). 
     The print control unit  27   a  converts the image data in the buffer memory  27   c  to ink volume information for the inkjet line head  12  based on the lookup table, and drives the inkjet line head  12  and paper feed motor  36  to print (step SB 15 ). 
     As described above, the printer  5  according to this embodiment has an inkjet line head  12  that prints barcodes on print media. The printer  5  also has a printer storage unit  50  and a printer control unit  27 . The printer storage unit  50  stores a constants table  50   a  of constants preset for particular types of recording media for adjusting how barcodes are printed. The printer control unit  27  then prints barcodes with the inkjet line head  12  based on the constants stored in the printer storage unit  50 . The printer control unit  27  also gets the user correction value input for a specific type of print medium, and stores the user correction value relationally to the specified print medium type in the printer storage unit  50 . The printer control unit  27  then prints barcodes with the inkjet line head  12  based on the user correction value stored in the printer storage unit  50  in conjunction with the constant stored in the printer storage unit  50 . As a result, barcode printing is adjusted according to a constant previously stored for a particular type of print medium, and correction based on the constant can be complemented by further correcting barcode printing based on the user correction value. As a result, barcodes can be desirably printed by a simple operation when barcodes can be printed appropriately to the print medium by adjusting printing based on the constant. When barcodes cannot be printed appropriately to the print medium using correction based only on the constant, and printing barcodes more desirably is preferred, further correction is possible based on the user correction value. As a result, barcodes can be printed appropriately to the print medium by means of a simple, easy operation. 
     The constant is a value that specifies the change in the width of the bars of a barcode printed by the inkjet line head  12 . The printer  5  can therefore adjust the width of the bars of the barcode based on a constant previously stored for each type of print medium, and barcodes conforming to a barcode standard can be printed using an inkjet printer  5 . 
     The user correction value is also a value specifying change in the width of the bars of a barcode printed by an inkjet line head  12 . How the width of the bars of the barcode is adjusted can therefore be easily changed by specifying a user correction value, and barcodes can be printed appropriately to the print medium. Furthermore, because the printer control unit  27  calculates the actual correction value from the constant and the user correction value to print barcodes with the inkjet line head  12 , correction reflecting both the constant and user correction value can be easily applied, and barcodes can be printed desirably. 
     The printer storage unit  50  stores constants relationally to plural predetermined types of print media. When the type of print medium to use is selected from the plural preset print media types, the printer control unit  27  prints barcodes based on both the constant and the user correction value relationally stored for the type of selected print medium. Printing reflecting correction based on the constant and correction based on the user correction value is therefore possible. As a result, identifying the type of print medium by the user can therefore be simplified, and the appropriate constant can be easily selected. 
     The printer  5  also has an interface  41  connected to the host computer  1 . When information specifying the type of print medium is input through the interface  41 , the printer control unit  27  prints the barcodes based on the combined constant and user correction value relationally stored for the input type of print medium. Therefore, when the type of print medium is specified by the host computer  1 , barcodes can be printed appropriately to the specified print medium type. 
     Some embodiments of the invention are described above with reference to a preferred embodiment thereof, but some embodiments of the invention are not limited thereto and can be modified and adapted in many ways without departing from the scope of the accompanying claims. 
     For example, the foregoing embodiment describes using a constant and a user correction value that change the width of bars in the barcode in dot units. Some embodiments of the invention are not so limited, however, and these could be values that change how much ink is used, the ink droplet landing position, the size of the ink droplets, or other parameter used to print the bars of a barcode. The foregoing embodiment also describes setting a constant and user correction value corresponding to the same type of media in the constants table  50   a  and user correction values table  50   b . Some embodiments of the invention is not so limited, however, and the number of media types in the user correction values table  50   b  could be fewer than the media types in the constants table  50   a.    
     The foregoing embodiment also uses printing linear barcodes composed of bars and spaces based on a known standard such as JAN code, EAN, UPC code, ITF code, CODE39, CODE128, or NW-7, but some embodiments of the invention are not so limited. For example, some embodiments of the invention can also be used for printing QR™ codes and other two-dimensional symbol codes. In this event, when colored printed parts and spaces that are white or colorless are formed by printing, a constant and user correction value that correct the printed size of the colored printed parts can be used to accommodate ink bleeding. 
     The foregoing embodiment describes an inkjet printer that uses four colors of ink, cyan, magenta, yellow, and black, but some embodiments of the invention can obviously also be applied to printers that use only black ink or printers that use two colors of ink such as red and black, for example. 
     The function blocks shown in  FIG. 1  can be achieved by the cooperation of hardware and software, and do not suggest a specific hardware configuration. Functions of the host computer  1  and printer  5  could also be rendered by other devices externally connected thereto. The host computer  1  and printer  5  can also operate as described above by running programs stored on an externally connected storage medium. 
     The disclosure being thus described, it will be apparent that it may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the disclosure, and all such modifications as would be apparent to one skilled in the art are intended to be included within the scope of the following claims.