printer
The printer system facilitates easy expansion of printing functions by allowing applications to be installed and executed in multiple programming environments, addressing the need for reinstallation in existing standalone label printers.
Patent Information
- Application Number
- JP2024085081
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-24
- Publication Date
- 2025-12-05
AI Technical Summary
Existing label printers with standalone printing capabilities require reinstallation of application software to modify template data, limiting the ease of function expansion.
A printer system incorporating an API, first and second wrapper APIs, and an application management unit that allows installation and execution of applications in multiple programming languages, enabling easy editing and expansion of printing functions without firmware modification.
Enables easy modification of template and reference data for standalone printing by installing applications in different programming environments, enhancing functionality without reinstallation or firmware updates.
Smart Images

Figure 2025177919000001_ABST
Abstract
Description
[Technical Field]
[0001] FIELD OF THE INVENTION The present invention relates to a printer. [Background technology]
[0002] Label printers create labels by printing images such as text and barcodes onto label sheets. The image data to be printed is created and edited on a personal computer (PC) and sent to the label printer. Label printers have the standard printing function of receiving signals from a PC and executing print jobs.
[0003] Label printers can be equipped with additional standalone printing capabilities by expanding their printing functions. Label printers with standalone printing capabilities can acquire information from external input devices such as barcode readers, combine it with label template data within the printer, and print it. To expand the printing capabilities, an application software package that executes the standalone printing function must be installed on the label printer in addition to the label printer's firmware. Hereinafter, application software may be simply referred to as an "app."
[0004] However, the standalone printing function so far has been limited to using fixed label print data (template data) predefined in the app package. If you want to modify the template data, you have to reinstall the app that packaged the modified template data. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-226869 [Patent Document 2] Japanese Patent Application Laid-Open No. 2004-54791 [Patent Document 3] Japanese Patent Application Publication No. 2017-220023 [Patent Document 4] Special Publication No. 2014-505277 Summary of the Invention [Problem to be solved by the invention]
[0006] The problem to be solved by the embodiments of the present invention is to provide a printer that can easily have its functions expanded. [Means for solving the problem]
[0007] A printer according to an embodiment of the present invention includes an API (Application Programming Interface), a first wrapper API, a second wrapper API, an installation unit, and an execution unit. The API interfaces with various printer functions, including print control for forming label or tag images. The first wrapper API converts the programming language of the API and makes one or more of the functions available in a first programming language execution environment. The second wrapper API converts the programming language of the API and makes one or more of the functions available in a second programming language execution environment. The installation unit installs an application created using a first programming language and a second programming language, making one or more of the functions available in the first programming language execution environment and the second programming language execution environment, and including a function for editing data used when using one or more of the functions in the first programming language execution environment and executing it in the second programming language execution environment. The execution unit includes a unit for executing the application in the first programming language execution environment and a unit for executing the application in the second programming language execution environment. [Brief explanation of the drawings]
[0008] [Figure 1]1 is a diagram illustrating a system configuration including a printer according to an embodiment. [Figure 2] FIG. 2 is a block diagram showing a hardware configuration of the printer. [Figure 3] FIG. 2 is a block diagram showing a functional configuration of the printer. [Figure 4] FIG. 2 is an explanatory diagram of a stand-alone printing function executed by the printer. [Figure 5] This is a template for labels to be printed by standalone printing. [Figure 6] This is label data to be printed by standalone printing. [Figure 7] This is a database of reference data that is used for standalone printing. [Figure 8] 10 is a flowchart illustrating a process of installing a standalone printing app and executing printing. [Figure 9] This is the Web Utility screen for installing the app. [Figure 10] 10 is a panel display screen when standalone printing is performed. [Figure 11] This is a Web Utility screen for changing reference data. [Figure 12] This is the Web Utility screen for editing template data. DETAILED DESCRIPTION OF THE INVENTION
[0009] A printer according to an embodiment will now be described in detail with reference to the accompanying drawings, taking a label printer as an example. In the drawings, the same components are designated by the same reference numerals.
[0010] FIG. 1 shows an example of a system configuration using a label printer 1 according to an embodiment. The label printer 1 and a personal computer (PC) 10 are connected to a network such as a LAN (Local Area Network) 11. A wireless LAN router 12 is further connected to the LAN 11. A smart device 13 is wirelessly connected to the LAN 11 via the wireless LAN router 12, for example, using WiFi (registered trademark). The personal computer 10 and the smart device 13 can each use a web browser 14. An external input device 15 is connected to the label printer 1 by wire or wirelessly. The LAN (Local Area Network) 11 may be further connected to the Internet via a firewall or the like. Drivers and apps used by the label printer 1 may be made available for download via the Internet from a manufacturer's website.
[0011] The label printer 1 forms labels by printing an image on a label sheet. The images to be printed can be various, such as characters, borders, barcodes, and logos. The printing method is preferably a thermal transfer method or a thermal method. Other printing methods such as electrophotography and inkjet printing are also possible. The label sheet is a print medium for forming labels. Label sheets come in a variety of forms, including a roll-shaped sheet with multiple adhesive sheets arranged on a release sheet, and a sheet with embedded RFID (radio frequency identification) tags. The form of the label sheet is not limited. In the case of a tag printer, which is another example of a printer according to an embodiment, a tag is formed by printing an image on a tag sheet such as a price tag or RF tag. In other words, the label printer 1 and tag printer are examples of printers that include a printing function for forming images of labels or tags.
[0012] The label printer 1 can expand its printing function to enable standalone printing. The method for installing an app that expands the printing function will be described later. For example, a label printer 1 with standalone printing function creates label data by combining "variable data" based on information obtained from an external input device 15 with "fixed data" stored in the printer, and prints the data on a label sheet. An example of fixed data is label template data. An example of variable data is individual information such as a product ID or price. Specific examples of label data will be described later.
[0013] FIG. 2 is a block diagram showing an example of the hardware configuration of the label printer 1. As shown in FIG. 2, the label printer 1 includes an MPU (Micro Processor Unit) 20, a ROM (Read Only Memory) 21, a RAM (Random Access Memory) 22, an external device interface (I / F) 23, a panel 24, a communication interface (I / F) 25, a label database 26, and a printer device 27. These components are connected via buses and interfaces. The MPU 20 loads the BIOS, OS, and various applications read from the ROM 21 into the RAM 22 and executes them. The external device I / F 23 is a connection terminal used to connect an external input device 15 such as a barcode reader or keyboard. The panel 24 is a display screen that displays the printer status, printing progress, etc., and is also used as an operation screen by the user. The panel 24 is a touch-panel LCD (Liquid Crystal Display), for example. The communication I / F 25 is used for communication with the personal computer 10 and the smart device 13.
[0014] The label database 26 stores data on labels that can be printed by the label printer 1. The data includes label template data and reference data that is referenced based on information from the external input device 15. The reference data is, for example, a database of prices associated with product IDs.
[0015] In the case of a thermal transfer or thermal printer device 27, it includes a print head with an array of heating elements corresponding to print dots, a drive circuit that supplies current to the heating elements at a predetermined timing, a platen roller that transports printing media such as label sheets, a platen motor that drives the platen roller, and various sensors.
[0016] Next, the functional configuration of the label printer 1 will be described. Figure 3 is a block diagram showing an example of the functional configuration of the label printer 1. These functions are realized by the MPU 20 executing various applications and controlling the hardware shown in Figure 2. The external input device control unit 30 controls the external input devices 15, such as a barcode reader or USB keyboard. The panel control unit 31 controls the display screen and operation screen of the panel 24. The print control unit 32 controls the operation of the printer device 27 and executes print jobs that comply with normal printing and standalone printing. The network control unit 33 controls communication with the personal computer 10 and smart device 13 via the LAN 11.
[0017] As described above, the label printer 1 has the following functions: an external input device control function, a panel control function, a print control function, and a network control function. These are examples of the basic functions that the label printer 1 has.
[0018] The API 34 is an API (Application Programming Interface) that represents each of the above control functions. That is, the API 34 interfaces the functions of the external input device control unit 30, panel control unit 31, print control unit 32, and network control unit 33.
[0019] The panel application API 35 is a wrapper that converts the programming language of the API 34 and operates the external input device control unit 30, the panel control unit 31, and the print control unit 32 in a first script language (e.g., qml: Qt Modeling Language). In other words, it is an example of a "first wrapper API" that wraps the API 34 with an API. The panel application API 35 makes one or more of the printer's functions available in a first script language execution environment. The web application API 36 is a wrapper that converts the programming language of the API 34 and operates the network control unit 33 in a second script language (e.g., Python (registered trademark) / HTML (registered trademark) / CSS (registered trademark) / Javascript (registered trademark)). In other words, it is an example of a "second wrapper API" that wraps the API 34 with an API. The web application API 36 makes one or more of the printer's functions available in a second script language execution environment.
[0020] The application 4 includes an application program (panel application) 40, an application program (Web application) 41, label template data 42, and reference data 43. The panel application 40 is a program written in a first script language (e.g., QML: Qt Modeling Language). The first script language is an example of a first programming language. The panel application 40 executes an external input device control function, a panel control function, and a print control function among the above-mentioned printer functions. The Web application 41 is a Web application program written in a second script language (e.g., Python) and HTML / CSS / Javascript. The second script language is an example of a second programming language. The Web application 41 executes a network control function among the above-mentioned printer functions.
[0021] The application management unit 44 manages the installation, uninstallation, launch, and termination of applications. The application management unit 44 is an example of a means for installing an application. The application management unit 44 is also an example of a means for executing an application in a first script language execution environment, and is also an example of a means for executing an application in a second script language execution environment.
[0022] The Web Utility is comprised of a Web Utility program 45. The Web server 46 runs the Web Utility program 45 to enable browsing of a Web Utility screen, which will be described later.
[0023] Figure 4 is an explanatory diagram showing an overview of the standalone printing function. The standalone printing function is a function in which the label printer 1 itself controls the external input device 15 to obtain information, and creates and prints label data based on the obtained information. This has the advantage that printing can be done without the need for special infrastructure to create and send label data, as is the case with normal printing.
[0024] A label for standalone printing consists of a fixed area and a variable area. The fixed area is stored in the printer as fixed data such as template data 42. The variable area displays individual information such as product ID and price. The individual information is direct information obtained from the external input device 15, or information retrieved from reference data 43 based on information obtained from the external input device 15. The label printer 1 embeds the information obtained using the external input device 15 as variable data into the template data 42 and uses this as label data to print.
[0025] Examples of external input devices 15 include a barcode reader, a USB keyboard, a scanner, a scale, a thermometer, a multifunction printer, a server, etc. Information from these external input devices 15 includes information obtained by reading a barcode with a barcode reader, input from a USB keyboard, information about an object read with a scanner, the mass of an object measured with a scale, the temperature of an object measured with a thermometer, and information about an object read with the scanner function of a multifunction printer.
[0026] FIG. 5 is an example of a label template before variable data is combined. FIG. 5(a) shows label data (PDL: Printer Description Language, print command). FIG. 5(b) shows a print image corresponding to the label data (print command). The label data (PDL data) predefines the area 5 (indicated by the dashed line in the figure) where the character string of variable data will be entered. It also predefines which external input device 15, such as a barcode reader or USB keyboard, will acquire information from. The label data shown in FIG. 5(a) is a specific example of the template data 42 in FIG. 3. The print image shown in FIG. 5(b) shows that no input has been made in the variable data area 5, so the corresponding area is blank.
[0027] FIG. 6(a) shows the label data (PDL data) after the variable data has been combined. FIG. 6(b) shows a print image corresponding to the label data (print command). Variable data character strings are embedded in the label data (PDL data). In this example, Product ID = "12345670" and Price = "10" are variable data. The label printer 1 executes a print job based on the label data (PDL data) with the variable data embedded. In the print image shown in FIG. 6(b), the product ID, price, and barcode are printed based on the variable data.
[0028] Of the variable data described above, the product ID is information acquired from an external input device 15 such as a barcode reader. The price is information obtained by retrieving the price corresponding to the acquired product ID from reference data 43. Figure 7 shows an example of reference data 43. The reference data 43 stores the relationship between product IDs and prices in a database. The database may be in JSON or CSV format, for example. In the example shown in Figure 6 above, the product ID (12345670) is read using a barcode reader, and the price (10) corresponding to the product ID is retrieved from reference data 43.
[0029] The above-mentioned series of processes, i.e., obtaining information from the external input device 15, retrieving information from the reference data 43 as necessary, and embedding this information as variable data in the fixed data of the label, are performed by the MPU 20 executing the panel application 40.
[0030] Next, an example of the procedure for a user to install an application for executing a standalone printing function into the label printer 1 and then execute standalone printing will be described with reference to the flowchart in FIG.
[0031] The user starts the web browser 14 on the personal computer 10 or smart device 13, accesses the web server 46 of the label printer 1 via the LAN 11, and views the Web Utility screen 50 (Fig. 8, Act 10). Fig. 9 shows an example of the Web Utility screen 50. The Web Utility screen 50 is made public by the web server 46 running the Web Utility program 45. The user can view and operate the Web Utility screen 50 through the web browser 14.
[0032] The Web Utility screen 50 has a selectable menu structure on the left side of the screen. The user selects "Application List" and presses the [Install] button 51 on the Application List screen. When the [Install] button 51 is pressed, the application management unit 44 of the label printer 1 installs the application (Act 11 in Figure 8).
[0033] The application to be installed packages an application for standalone printing, label template data 42, and reference data 43. The application for standalone printing includes a panel application 40 and a web application 41 programmed for standalone printing. The panel application 40, which controls the external input device, panel control, and printing, is written in the first scripting language described above. The web application 41 is written in the second scripting language described above. As will be described in detail below, the web application 41 is programmed to edit the label template data 42 and reference data 43. In other words, the standalone printing application is an example of an application created using a first programming language and a second programming language, which enables printer functions to be used in the first programming language execution environment and the second programming language execution environment, and which includes a function to edit data used when using each printer function in the first programming language execution environment, in the second programming language execution environment. The application package may be downloadable via the LAN 11 or may be pre-stored in the label printer 1, for example, with a passcode.
[0034] Once the app installation is complete, information about the installed app (such as the application name) is displayed on the Web Utility screen 50, as shown in Figure 9. In this way, all that is required to expand the printing functionality is to install the app. Therefore, there is no need to modify the firmware of the label printer 1, i.e., the external input device control unit 30, panel control unit 31, print control unit 32, or network control unit 33.
[0035] FIG. 10 shows an example of the screen transition of the panel 24 when a standalone print application is executed. The basic "Menu" screen 6 displays the applications installed on the printer (FIG. 8, Act 20). The user selects the standalone print application (Stand Alone Print) and presses a hard key (the key that activates [OK]) to transition to the next screen. When the hard key is pressed, the application management unit 44 launches the standalone print application (FIG. 8, Act 21) and displays a "Data Reading" screen 61 on the panel. The "Data Reading" screen 61 prompts the user to scan the barcode with a barcode reader. In the case of the label illustrated in FIGS. 5 to 7, the barcode of the target product is scanned with the barcode reader to obtain the product ID (FIG. 8, Act 22). The application then retrieves the price corresponding to the product ID from the reference data 43 and transitions to a "Data Reading Result" screen 62 (FIG. 8, Act 23).
[0036] The "Data Reading Result" screen 62 displays the product ID and price. After checking this display, the user presses the hard key (the key that activates the [Next] key) to move to the next screen. When the hard key is pressed, the app displays the "Specify Number of Copies to Print" screen 63.
[0037] The user specifies the number of copies to print on the "Specify number of copies to print" screen 63 (Fig. 8, Act 24) and presses the hard key (the key that functions as [Next]) to move to the next screen. The user presses the UP key (▲) to increase the number of copies and the DOWN key (▼) to decrease the number of copies. When the hard key to move to the next screen is pressed, the application starts printing and displays the "Printing" screen 64 (Fig. 8, Act 25). When printing of the specified number of copies is complete, the application redisplays the "Data reading" screen 61. The "Data reading," "Data reading results," "Specify number of copies to print," and "Printing" screens 61 to 64 are programmed into the panel application 40 in Fig. 2. These screen control and screen transition processes are also handled by the panel application 40.
[0038] FIG. 11 shows an example of a Web Utility screen 52 for editing the reference data 43. This screen is also made available by the Web server 46 running the Web Utility program 45. After installing the standalone printing app, the user can view and operate this screen 52 through the Web browser 14 of the personal computer 10 or smart device 13 (FIG. 8, Act 12). The Web Utility screen 52 in FIG. 11 displays the database values of the reference data 43 shown in FIG. 7 as initial values. The user can change each value on the Web browser 14, for example, by operating the keyboard or mouse, and then press the [Save] button 53 after finishing. When the [Save] button 53 is pressed, the app overwrites and saves the reference data 43 in FIG. 3 (FIG. 8, Act 13).
[0039] FIG. 12 shows an example of a Web Utility screen 54 for editing label template data 42. This screen is also made available by the Web server 46 running the Web Utility program 45. After installing the standalone printing app, the user can view and operate this screen 54 through the Web browser 14 of the personal computer 10 or smart device 13 (FIG. 8, Act 14). The Web Utility screen 54 in FIG. 12 displays the PDL data of the template data 42 shown in FIG. 5 as the initial value. The user can edit the template data 42 on the Web browser 14, for example, by operating the keyboard or mouse, and then press the [Save] button 55 after editing. Pressing the [Save] button 55 causes the app to update and display a label preview 56. The user checks the template data 42 and preview 56, and if no additional edits are required, press the [Submit] button 57. Pressing the [Submit] button 57 causes the app to overwrite and save the template data 42 in FIG. 3 (FIG. 8, Act 15).
[0040] 12 for editing template data 42 is an example, and a screen on which parts (lines, text rectangles, barcode image areas) can be placed on a canvas by GUI operations (drag and drop) like drawing software, instead of PDL data (script text data) may be used. In this case, the area where variable data is embedded may be linked to an external input device 15 such as a barcode scanner.
[0041] By adopting this configuration, after an application that executes the standalone printing function is installed in the label printer 1, the template data 42 and reference data 43 for standalone printing can be edited and saved from the web browser 14 or the like. This makes it possible to easily modify the updated template data 42 and reference data 43. In other words, there is no need to repackage them into a standalone printing application, and there is no need to overwrite install the repackaged application package.
[0042] According to the above-described embodiment, it is possible to provide a printer that allows easy expansion of functions.
[0043] The embodiments of the present invention are presented as examples and are not intended to limit the scope of the invention. These novel embodiments may be embodied in various other forms, and various omissions, substitutions, and modifications may be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the inventions and their equivalents as defined in the claims. [Explanation of symbols]
[0044] 1 label printer 34 API 35 Panel app API (first wrapper API) 35 Web application API (second wrapper API) 40 Panel App 41 Web Apps 42 Template Data 43 Reference Data 44 Application Management Department 46 Web Server
Claims
1. an API (Application Programming Interface) that interfaces with each function of the printer, including print control for forming an image of a label or tag; a first wrapper API that converts the programming language of the API and makes one or more of the functions available in a first programming language execution environment; a second wrapper API that converts the programming language of the API and makes one or more of the functions available in a second programming language execution environment; a means for installing an application created using a first programming language and a second programming language, which makes one or more of the functions available in the first programming language execution environment and the second programming language execution environment, and which includes a function for editing data used when using one or more of the functions in the first programming language execution environment, in the second programming language execution environment; means for executing the application in the first programming language execution environment; means for executing the application in the second programming language execution environment.
2. In claim 1, the first programming language is qml (Qt Modeling Language); The printer is characterized in that the second programming language includes any one of Python, HTML, CSS, and Javascript.
3. In claim 1, the first programming language execution environment is Qt; The printer is characterized in that the second programming language execution environment is a web application execution environment that uses a Python server.
4. In claim 1, A printer characterized in that a standalone printing function utilizing input device control, panel control, and print control among the functions of the printer is programmed using the first programming language and the first wrapper API wrapper.
5. In claim 1, A printer characterized in that a label template editing function utilizing network control among the functions of the printer is programmed using the second programming language and the second wrapper API wrapper.
Citation Information
Patent Citations
Image forming apparatus, application installation method, and customized program generating method
JP2004054791A
Printer, control system, control method for printer, and program
JP2014226869A
Virtual input / output device for printers
JP2014505277A
Image forming apparatus, program providing device, program providing method, and computer program
JP2017220023A