US20120293823A1 - System and method for printer emulation - Google Patents
System and method for printer emulation Download PDFInfo
- Publication number
- US20120293823A1 US20120293823A1 US13/576,210 US201013576210A US2012293823A1 US 20120293823 A1 US20120293823 A1 US 20120293823A1 US 201013576210 A US201013576210 A US 201013576210A US 2012293823 A1 US2012293823 A1 US 2012293823A1
- Authority
- US
- United States
- Prior art keywords
- printer
- computing device
- programming code
- label
- firmware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000007639 printing Methods 0.000 claims abstract description 40
- 238000011161 development Methods 0.000 claims description 32
- 230000006870 function Effects 0.000 claims description 20
- 230000000694 effects Effects 0.000 claims description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 10
- 235000013305 food Nutrition 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 235000013549 apple pie Nutrition 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 235000015241 bacon Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000013410 fast food Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1209—Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1205—Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1206—Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1225—Software update, e.g. print driver, modules, plug-ins, fonts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1242—Image or content composition onto a page
- G06F3/1243—Variable data printing, e.g. document forms, templates, labels, coupons, advertisements, logos, watermarks, transactional printing, fixed content versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1253—Configuration of print job parameters, e.g. using UI at the client
- G06F3/1256—User feedback, e.g. print preview, test print, proofing, pre-flight checks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
- G06F3/1287—Remote printer device, e.g. being remote from client or server via internet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1297—Printer code translation, conversion, emulation, compression; Configuration of printer parameters
- G06F3/1298—Printer language recognition, e.g. programme control language, page description language
Definitions
- the present invention relates generally to printers and, more particularly, to providing accurate print emulation and preview functionality.
- Print preview functionality Another need for print preview functionality exists for software developers and programmers who write applications that use printers or that generate other printed output.
- Print preview functionality often cannot represent an actual printing result accurately. This is often because the computing device can not correctly or accurately emulate an actual printer environment. For example, a user creates a particular and previously unknown typeface font on a computing device and uses the font in a document prepared on the user's word processing software. The printing device connected to the computing device does not have any record of the font. Accordingly, when the user selects a print preview option, the computing device displays the font on the display device. When the user outputs a print job that uses the font to the printer, however, the printer is unable to generate the font. Thus, the print preview option provided by the computing device is inaccurate. In order to accurately preview printed output in the prior art, the user has to physically print the file or other output, or needs to be coupled to a printer. This wastes paper or other valuable printed media, consumes time, and/or limits the development environment for the user.
- a need for accurate previewing of printed output is particularly high for printed labels.
- Printed labels continue to be used in many applications, including for shipping and mailing, medical specimen vials, grocery and product inventories, or the like.
- previous solutions such as described in H06-110626, require a user to connect a printing device to a computing device.
- the connected printing device requires special firmware that expands the printing image in the printer's image buffer, which is sent back to the computing device for display. This results in wasted printer memory resource.
- a system and method are provided for accurately emulating a printer on a computing device that is not connected to the printer.
- the computing device is provided with firmware and programming code that interfaces with the firmware for a customized printing operation.
- the firmware is provided with the printer and the computing device, and is operable on each of the computing device and the printer as a function of at least one respective application programming interface.
- One application programming interface may be provided with the printer and another application programming interface may be provided with the computing device, or both the computing device and the printer may be provided with the same application programming interface.
- the programming code is provided with the computing device, and the computing device runs the programming code.
- the programming code interfaces with the firmware provided with the computing device and causes the computing device to emulate the printer, when the printer runs the programming code. Moreover, the computing device and the printer are not connected.
- FIG. 1 illustrates an example hardware arrangement in accordance with an embodiment, for developing and emulating a printing environment over a communication network.
- FIG. 2 illustrates the functional elements of an example information processor and/or user workstation shown in FIG. 1 .
- FIG. 3 is a block diagram that illustrates software components that are provided with an information processor, and that is useable for developing and/or using printer application.
- FIG. 4 is a block diagram that illustrates software components that are provided with a printer, and that is useable for developing and/or using printer application.
- FIG. 5 illustrates an example display screen that is displayed on information processor and that represents an example embodiment of an application developer.
- FIG. 6 illustrates an example display screen that is usable for uploading or otherwise integrating a customer's data source for integration in a printing application in accordance with an embodiment.
- FIG. 7 illustrates an example data label layout that integrates the data to be incorporated in a label.
- FIG. 8 illustrates an example display screen that represents a use of an application developer and operable on information processor.
- FIG. 9 illustrates an example display screen that represents a use of an application developer and operable on an information processor.
- FIG. 10 illustrates the similarity between a physical label and tag printer and a virtual printer emulator.
- FIG. 11 illustrates an example display of a virtual printer emulator and corresponding previewed label output provided in accordance with preferred embodiments.
- FIG. 12 illustrates an example display of a virtual printer emulator and corresponding previewed label output provided in accordance with preferred embodiments.
- FIG. 13 illustrates an example display of a virtual printer emulator and corresponding previewed label output provided in accordance with preferred embodiments.
- FIG. 14 is a block diagram illustrating example components that may be included in an example embodiment and usable for providing shared firmware.
- FIG. 15 illustrates an additional example hardware arrangement, in accordance with embodiments.
- FIG. 16 illustrates an additional example hardware arrangement, in accordance with embodiments.
- FIG. 17 is a flow chart that shows steps representing a process associated with receiving an order for a customized label application from a customer and fulfilling the order.
- a printer is emulated as a function of a shared printer firmware operable via one or more application programming interfaces (“APIs”) and that enable custom and extended functionality.
- APIs application programming interfaces
- an interpreted scripting language, LUA is used to generate the firmware and to provide custom printing applications via an integrated development environment.
- LUA interpreted scripting language
- at least one of a printer's firmware, one or more printer's API's and/or printer software applications that are developed and operate on a printer are provided in an integrated development environment that is operable on a computing device.
- the integrated environment includes a graphical user interface that emulates, at least in appearance, a control panel that is provided with the printer.
- one or more software programs that operate on a printer are loaded on the computing device and operate in an integrated environment.
- the integration of the printer software with the graphical user interface provides users with accurate print preview representations of printed output because the same software (e.g., firmware, API's and/or application(s)) that operate on the printer operate on the computing device, as well.
- one or more printer API's are designed such that the application and shared firmware execute on both the printer itself, and on the computing device (e.g., a personal computer operating the MICROSOFT WINDOWS operating system), thereby enabling a true emulation of the printer.
- the teachings herein provide a new and non-obvious printer emulation, at least because injected code functions to access any part of a developed printer software application and/or the shared firmware via one or more API's.
- the teachings herein include software that operates effectively on a computing device in the same way as if it was provided with an actual, physical printer. Users, particularly developers of software for the respective printers, view an accurate representation of the printer's functionality as well as an accurate preview of printed output on the user's display device, even though the display device is provided separately from the physical printer. In this way, the development environment does not suffer from the shortcomings described above with regard to prior art print preview functionality.
- a printer application is written in LUA, which is platform independent language and developed in the C programming language.
- Computer and printer interaction with LUA is done through an interface, such as the C API.
- LUA based operations perform the same way on various platforms, including a printer platform and a computing (e.g., MICROSOFT WINDOWS) platform.
- the C API should function similarly or the same way on both platforms.
- a file system is provided by the operating system.
- a file system API is provided for a printing device.
- a file system API is used on both platforms (e.g., a computing device and a printing device) to ensure identical behavior as a software application executes on the respective platforms.
- platforms e.g., a computing device and a printing device
- both a computing device and printing device are provided with a LUA virtual machine (as known in the art) and a C API, such that when a software application is loaded on either platform, such as via memory card, USB connected device, transferred over a network, or the like, the application is recognized by the C API and it runs consistently. Accordingly, the application runs the same way on the computing device as it does on the printing device, thereby eliminating a need to physically connect the printing device to the computing device to observe the application as it runs.
- the teachings herein also eliminate the prior art burden of having to physically print labels or other output to observe how printed output will appear.
- a proprietor of a chain of fast food restaurants needs to create respectively formatted labels for each of a plurality of restaurants in the chain.
- the proprietor uses the integrated development platform in accordance with the teachings herein to design and preview the labels.
- the proprietor thereafter, distributes the label design to each of the restaurants in the chain for generating labels.
- the labels that are output at each restaurant are accurately previewed by the proprietor. Even though the proprietor does not physically access to the printers used at the restaurants, the preview is accurate.
- the label production workflow is significantly more efficient than that of the prior art.
- the integrated environment operating on a computing device does not require a printer connected to the computing device that transmits image data back to computing device. Accordingly, the memory resource of printers is conserved.
- an integrated development environment includes a graphical user interface that is operable for designing and/or developing output, such as labels.
- an integrated development environment for example, for designing data labels for a label and tag printer is provided in combination with a graphical user interface that provides virtual representation of the printer, such as the printer's control panel.
- the integrated development environment and/or the graphical user interface that represents the printer preferably include the printer's firmware and one or more applications that are executed by the printer.
- application development tools are provided that operate on a computing device, such as a personal computer, and that include scripts and/or code libraries that facilitate application development of programs that execute on or by a printing device.
- This provides improved connectivity capabilities, such as for decentralized and “local” application development by a plurality of parties.
- many programmers can work remotely from a centralized office and do not have to be located in close proximity to end-users and customers in order to produce applications that are customized and/or tailored for specific customer needs.
- This results in shorter lead-time which represents the time when a request from a client is made to the time when a program is deployed and used by the customer.
- the systems and methods herein further strengthen relationships with customers and developers.
- developers of formatted output use the teachings herein to develop applications for formatted output.
- the developers are provided with an accurate virtual or displayed representation of printed output, as well as a virtual representation of the respective output device, such as the printer, that will produce the output.
- a graphical user interface is provided for developers that includes a representation of the printer control panel (e.g., the LCD and keyboard/keypad) that is provided with the printer for end-users to print labels.
- the printer control panel e.g., the LCD and keyboard/keypad
- developers can test how a particular printer or other output device will respond for an end-user.
- the developer can preview how the printer will behave in response to one or keys that are selected by an end-user.
- the developer is provided with an accurate representation of the liquid crystal display (“LCD”) or other display provided with the printing device, in response to one or more key selections made by an end-user.
- the developer is provided with an accurate representation of the physical output that the printer will provide.
- the teachings herein simulate and accurately represent output results from a printing device, as well as printer key operation and LCD or other display results on the developer's computing device. This is enabled at least in part by providing firmware that is in the printing device with the developer's computing device.
- the physical output (i.e., printing) environment is accurately represented without a need to physically couple an output device or printer to the developer's computing device.
- Another advantage for developers is that when developing applications (or injected) functions, debugging is done on a computer, thereby eliminating or reducing time-consuming downloads and test prints.
- a plurality of printing solutions are provided by including a printer's firmware source code with a developer's computing device to accurately represent the result of, for example, software developed for proprietary printer control and operations.
- FIG. 1 illustrates an example hardware arrangement in accordance with an embodiment for developing and emulating a printing environment over a communication network, and referred herein, generally, as system 100 .
- System 100 preferably comprises at least one information processor 102 , which may be configured to operate as an Internet web server and database file server and that is programmed and configured to access communication network 106 and communicate with user workstation(s) 104 .
- User workstations 104 and information processor(s) 102 may communicate via the known communications protocol, Transmission Control Protocol/Internet Protocol “TCP/IP.”
- TCP/IP Transmission Control Protocol/Internet Protocol
- information processor 102 is provided with an integrated development programming environment (“IDE”), such as to develop applications in the LUA programming language, as known to those skilled in the art.
- IDE integrated development programming environment
- Information processor 102 is provided with or has access to all databases necessary to support the teachings herein.
- Information processor 102 is also preferably provided with printer firmware that is installed on printer 108 .
- information processor 102 and/or user workstation 104 can access any required database via communication network 106 or any other communication network to which information processor 102 may be coupled.
- Communication network 106 is preferably a global public communication network such as the Internet, but can also be a wide area network (WAN), local area network (LAN), an intranet or other network that enables computing devices and peripheral devices to communicate.
- information processor 102 and user workstations 104 are any computer readable medium devices that are capable of sending and receiving data across communication network 106 , e.g., mainframe computers, mini computers, personal computers, laptop computers, a personal digital assistants (PDA), cellular telephones and Internet access devices such as Web TV.
- information processor 102 is preferably equipped with web browser software, such as MICROSOFT INTERNET EXPLORER, MOZILLA FIREFOX, or the like.
- Information processor 102 is coupled to communication network 106 using any known data communication networking technology.
- printer 108 that is preferably a label and tag printer and operable to print labels and tags of data received from information processor 102 .
- Printer 108 may be provided with keyboard and display to enable input and output functionality with printer 108 in addition to or in the absence of or in conjunction with information processor 102 .
- a keyboard 110 is preferably provided that is operable to receive and interpret (i.e., read) signals from a user using printer 108 .
- the keyboard may be an external keyboard or other input device not directly coupled to printer 108 .
- a display 112 is preferably provided that operates to present a variety of textual and graphical content on printer 108 .
- the display be an external display (not shown) attached to printer 108 .
- the display 112 supports a wide selection of fonts and coding types, for example, for many different written languages.
- FIG. 2 illustrates the functional elements of an example information processor 102 and/or user workstation 104 , and includes one or more central processing units (CPU) 202 used to execute software code and control the operation of information processor 102 .
- Other elements include read-only memory (ROM) 204 , random access memory (RAM) 206 , one or more network interfaces 208 to transmit and receive data to and from other computing devices across a communication network, storage devices 210 such as a hard disk drive, floppy disk drive, tape drive, CD ROM or DVD for storing program code databases and application data, one or more input devices 212 such as a keyboard, mouse, track ball, microphone and the like, and a display 214 . Further, one or more of functional elements 202 - 214 may be suitably configured or provided with printer 108 , as well.
- information processor 102 and/or workstation 104 need not be physically contained within the same chassis or even located in a single location.
- storage device 210 may be located at a site which is remote from the remaining elements of information processor 102 , and may even be connected to CPU 202 across communication network 106 via network interface 208 .
- Information processor 102 and/or user workstation 104 preferably includes a memory equipped with sufficient storage to provide the necessary databases, forums, and other community services as well as acting as a web server for communicating hypertext markup language (HTML), Java applets, Active-X control programs.
- Information processor 102 and/or user workstations 104 are arranged with components, for example, those shown in FIG. 2 , suitable for the expected operating environment.
- the CPU(s) 202 , network interface(s) 208 and memory and storage devices are selected to ensure that capacities are arranged to accommodate expected demand.
- system 100 is not limited to such a configuration. It is contemplated that system 100 is arranged such that printer 108 communicates with and outputs data received from information processor 102 and/or user workstation 104 using any known communication method, for example, using a non-Internet browser WINDOWS viewer coupled with a local area network protocol such as the Internet Packet Exchange (IPX), dial-up, third-party, private network or a value added network (VAN).
- IPX Internet Packet Exchange
- VAN value added network
- any suitable operating system can be used on information processor 102 , for example, DOS, WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT, WINDOWS 2000, WINDOWS ME, WINDOWS CE, WINDOWS POCKET PC, WINDOWS XP, MAC OS, UNIX, LINUX, PALM OS, POCKET PC and any other suitable operating system.
- printer 108 applications are developed in the LUA programming language.
- a LUA interpreter is included that is operable to process LUA programming statements provided in the applications.
- LUA is a scripting language and not a basic programming language.
- the teachings herein implement printer APIs that are extensions to the LUA language that interface with the printer firmware and that are interpreted by the LUA interpreter. This enables more advanced and complex applications to be developed, such as via function calls.
- APIs that are extensions to the LUA programming language a portion of printer 108 functionality can be modified, as opposed to prior art label and tag printers that require a complete overwrite of their respective firmware applications in order to implement a single change.
- FIGS. 3 and 4 are block diagrams that illustrate software components that are provided with information processor 102 and printer 108 , respectively, and that are useable for developing and/or using printer applications.
- information processor 102 is represented in box 102 , and includes an operating system 302 (e.g., MICROSOFT WINDOWS).
- Application developer 304 includes, for example, an integrated development environment for developing new or modifying existing printer applications, such as developed in the LUA programming language and that are deployable to one or more printers 108 for printing formatted output, such as labels.
- Information processor 102 further includes a virtual printer emulator 306 that is operable to provide a virtual representation of a printer 108 that executes a printer application developed, for example, on information processor 102 via application developer 304 .
- the printer's 108 firmware is preferably provided with the information processor 102 that enables the emulator 306 to accurately represent printed output and the way that the printer 108 will function while the application is executing.
- information processor 102 includes an API and the printer application 310 .
- a printer 108 such as a label and tag printer is represented in box 108 , and includes firmware 312 that is particular to printing device, and not shared with information processor 102 . Also provided with printer 108 is shared firmware 308 that is particular to printer 108 , but operates on information processor 102 as well, and that enables printer emulator 306 to be accurate. As noted above, the printer's 108 firmware is preferably provided with information processor 102 that enables the emulator 306 to accurately represent printed output and the way that the printer 108 will function while the application is executing. Moreover, printer 108 includes the API and printer application 310 .
- information processor 102 is provided with application developer 304 and printer emulator 306 that enable, for example, a software developer to write a printing application for printer 108 .
- FIG. 5 illustrates an example display screen 400 that is displayed on information processor 102 and that represents an example embodiment of application developer 304 .
- the application developer 304 is provided as an integrated development environment (“IDE”), and used to develop a label application for outputting a plurality of labels on printer 108 .
- table section 402 provides a list of one or more data tables that store information to be printed on a label.
- Options section 404 includes additional application development selections, including for data field entry, label layout options, and data source. In the example shown in FIG. 5 , the option “Tables” 406 is selected.
- label format section 408 includes interactive graphical screen controls that provide options for designing a label to be output on, for example, printer 108 .
- a label is being designed for a retail company and the respective label is developed for a product, AGAM.
- Options are provided for, among other things, font type, lines, boxes, or the like.
- Data table section 410 includes a display of a respective table of information that is used for inclusion in the designed label.
- data tables or other formatted sources of information are provided to information processor 102 , such as via FTP, e-mail, physical disk or drive, or the like. In this way, a decentralized source of label data can be managed, without a need for a label application programmer to be physically located nearby to the location where the labels will be eventually printed and/or used.
- code generating section 412 is provided for a user of information processor 102 to write programming code that is included in a printing application.
- LUA programming statements are displayed, and used to provide color options to be included in a label. Integrating programming code development in a graphical label development platform enables convenient options for developers to accurately and quickly develop printing applications.
- properties section 414 include options for controlling the appearance and data to appear in printed output, such as a label. In the example shown in FIG.
- the word, “Agam” is selected and identified in properties section 414 to be in the font type, Sans Bold font, 12 point, at X:Y coordinates 153, 86, and the data for the label is provided from a table, such as displayed in table section 402 .
- an integrated development environment that represents application developer 304 is usable for developing an application for formatted printed output, such as a label.
- FIG. 6 illustrates an example display screen 500 that is usable for uploading or otherwise integrating a customer's data for a printing application.
- Data package section 502 illustrates example options available for application developers, and include options for formatting, data sources, images, profiles, fonts, other and system options. Other options may include translation tables for different languages, function key support (e.g., F1) providing quick access to selectable resources, pre defined settings and power fail storage, including a repository for accumulated values.
- F1 function key support
- Table section 504 illustrates an example data table that has been imported from an example client and includes data for product code, product name, manufacturer code, and color code. Once imported, the data are usable for a custom printing application, such as for data labels, and further is usable for the example customer.
- FIG. 7 illustrates an example data label layout 600 that prints the data provided, for example, in the table shown in table section 504 ( FIG. 6 ).
- a barcode is provided that incorporates a plurality of the data values, such as manufacture code, color code, and product code.
- the data label incorporates written words, such as to represent the same.
- a custom logo may be included in the label and that was imported from a client company.
- FIG. 8 illustrates an example display screen 700 that represents another use of application developer 304 and operable on information processor 102 .
- the application developer 304 is used to develop data labels for a food provider.
- the data shown are for foods, and include apple pie, bacon and other foods.
- Corresponding data are provided for the amount of time that each of the foods needs to thaw, how long a particular food's shelf life is, or the like.
- label format section 408 some of the data in the first row of data are illustrated for apple pie.
- the respective data fields that have been selected by the programmer for inclusion in the label are the name of the food, a “pull” date and time, a “thaw” date and time, and a “discard” date and time.
- the code generating section 412 is not displayed, which further illustrates the flexibility of application developer 304 .
- Sections 408 , 410 , 412 or the like of application developer 304 can be displayed or hidden from view, for example, simply by selecting one or more graphical screen controls (e.g., checkboxes, tabs, radio buttons or the like) by the user.
- FIG. 9 illustrates an example display screen 800 that represents another use of application developer 304 and operable on information processor 102 .
- the application developer 304 is used to develop data labels for a sports equipment retailer.
- the user is designing a data label that includes a plurality of components, including a product image, barcode, brand description, product description, original sales price and current sales price.
- the label is preferably formatted in graphically appealing ways, including with diagonal textual output, respective font types and point sizes, etc.
- the data table section 410 and the code generating section 412 are not displayed. By enabling the user to turn off the display of those sections, the user can focus his attention on the label's graphic development without the clutter of data and programming code consuming display screen 800 .
- FIG. 10 illustrates the similarity between a physical printer 108 and printer emulator 306 .
- Printer emulator 306 similarly, includes a virtual representation of the printer 108 , including sections 110 and 112 .
- all of the controls and displays in printer emulator 306 operate as they do on printer 108 , and do so accurately as a function of shared firmware 308 , which is provided on both printer 108 and emulator 306 .
- Also illustrated in FIG. 10 is an example application that is provided via application developer 304 , and that preferably includes prompts in display 112 that can be selected via keyboard 110 .
- FIGS. 11-13 illustrate example displays 1002 , 1006 and 1008 , respectively, of printer emulator 306 and corresponding previewed label output provided in accordance with preferred embodiments.
- printer emulator 306 is provided in the left portion of display screens 1002 , 1006 and 1008
- previewed label output 1004 is provided in the right portion.
- Each of the display screens 1002 , 1006 and 1008 represent a virtual representation of printer 108 outputting labels for different users.
- display screen 1002 represents labels generated for a sports equipment provider.
- Display screen 1006 represents labels generated for a food provider
- display screen 1008 represents labels generated for a retail establishment.
- Each of the example display screens 1002 , 1006 and 1008 illustrate output that can be provided in accordance with the teachings herein, including for a plurality of labels (as shown in display screen 1002 ), a plurality of label types (as shown in display screen 1006 ), and labels for a plurality of products (as shown in display screen 1008 ).
- the output displayed in section 1004 is an accurate representation of the actual output to be generated by printer 108 , at least as a result of the shared firmware that is provided both on information processor 102 and printer 108 .
- FIG. 14 is a block diagram 1100 illustrating example components that may be included in an example embodiment and usable for providing shared firmware 308 .
- a standard LUA API 1102 and a custom LUA Printer API 1104 are provided that interface with the LUA virtual machine (“VM”) 1106 .
- print engine section 1108 components relating to printer 108 are listed, including the motor control, sensor control and thermal printhead (“TPH”) control.
- I/F communication interface
- keyboard and display are listed.
- Render engine section 1112 includes a font scaler, fonts wrapper, code pages, images, barcode wrapper and lines.
- a barcode library section 114 may further include bitmap fonts and rendering for respective barcodes.
- File system section 116 preferably includes read only memory (“ROM”), random access memory (“RAM”), flash drive, and secure digital (“SD”) card wrapper.
- An SD card file system 1118 may further be provided.
- Software library (“C”) 120 is further included, and includes custom library components, such as “malloc” and “printf” which may be custom written functions.
- a real-time operating system and hardware are provided in section 1122 . Use of these components are provided as building blocks for firmware that is preferably provided to information processor 102 and usable for providing accurate print preview and printer emulation for programmers.
- FIGS. 15 and 16 illustrate additional example hardware arrangements, in accordance with embodiments, wherein a printer 108 is provided with an application developed, for example, by application developer 304 .
- an arrangement is shown that supports use of a desktop printer 108 .
- user workstation 104 user workstation 104 , communication network 106 , printer 108 , keyboard 110 and display 112 , scale 1204 is shown and useable for transmitting information representing the weight of foods or goods to be included in labels generated by printer 108 .
- scanner device 1206 is usable for obtaining information from an existing barcode and transmitting the information to printer 108 .
- Other data input devices include keyboard 1208 and handheld device 1210 , which may be a PDA.
- Data and software may be provided via information processor 102 , which may store an application 1212 developed via application developer 304 , and database 1214 , which may store data for a particular business customer.
- the application is operable and usable at a particular site, such as a grocery store, retailer or other business, and interfaces with devices typically located at a particular site.
- the printer 108 generates labels via, for example, a LUA application, which runs via a LUA interpreter, and which may further interface with a database.
- FIG. 16 illustrates a hardware arrangement 1216 that is usable in a print and apply (“P&A”) printing environment, such as to provide production line labeling.
- a production line 1218 is provided, which may include sensor 1220 for fast and accurate data transfer and/or recognition.
- FIG. 17 is a flow chart that shows steps S 100 that represent the process associated with receiving an order for a customized label application from a customer and fulfilling the order so that the application is placed into production.
- the process starts and the customer thereafter formally requests a particular label application (step S 104 ).
- the customer's request is formally defined, for example, by technical personnel capable of describing the customer's request technically for a programmer. The request is transmitted to a programmer who uses the application developer 304 to produce a customized application.
- the programmer uses the application developer 304 , for example, to design label formats, create program prompts, associate fields and prompts with data table columns, develop application and printer setup routines, and/or integrate user predefined functions, such as LUA scripts.
- the programmer may use the application developer 304 to develop a new application or, alternatively, to modify an existing application.
- the application is verified, for example, via printer emulator 306 (step S 110 ) or with a physical printer 108 (step S 112 ). Thereafter, at step S 114 , a determination is made whether changes to the application are required. If so, then the process branches back to step S 108 and the programmer modifies the application.
- step S 116 the application is submitted to the customer, such as a file transmitted over communication network 106 , provided in an SD card, a compact disc, or other media.
- the customer verifies the application, either via printer emulator 306 or on printer 108 (step S 118 ). Thereafter, a determination is made whether revisions are needed to the application (step S 120 ). If so, then the process branches back to step S 108 and the programmer modifies the application and the process continues from there. If not, then the process branches to step S 122 , wherein the customer approves the application, payment may be tendered and the process ends.
- the present application solves problems associated in the prior art, such as relating to printer emulation and program development.
- an accurate printer emulation is obtained, including to provide an accurate print output preview.
- the development cycle for printer software applications is significantly reduced, and engineers and programmers no longer have to be located physically near to end-users.
- a decentralized, advanced, fast and cost-effective solution is provided for custom tailored printing solutions that were previously unavailable in the prior art.
- This is provided, at least in part, due to use of a powerful programming and scripting language, such as LUA, that is capable of accessing and interfacing with file systems to provide powerful printer functions, connectivity functionality and improved font and code page handling.
- LUA a powerful programming and scripting language
- labels that may include, for example, various colors, logos, database information, barcodes, and operator sequences for an improved workflow.
- a programmer can use the teachings herein to design a label format that includes the customer's data and custom graphics, and that can be packaged in an application and transmitted to the customer quickly.
- the application can be verified for accuracy, via printer emulator 306 .
- customers receive printers that have virtually no predefined functionality, and are essentially “empty” machines.
- An end-user accesses and downloads a printer application over a communication network via the end-user's computing device. Thereafter, the printer executes programming instructions that provide custom functionality.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Stored Programmes (AREA)
Abstract
Description
- The present invention relates generally to printers and, more particularly, to providing accurate print emulation and preview functionality.
- The use of computing devices to prepare electronic files, such as labels, documents, data reports, or other formatted output remains prevalent. Prior to outputting an electronic file or other electronic information to an output device, such as a printer, users desire to preview how the document will appear as printed. Many prior art software programs offer a “print preview” feature that displays on a computing device's display screen a previewed representation of printed output. An example print preview solution is described in greater detail in Japanese patent publication H06-110626, entitled PRINTER AND PRINTING SYSTEM USING THE SAME, which is incorporated herein by reference in its entirety.
-
- PTL 1: Japanese patent publication H06-110626
- Another need for print preview functionality exists for software developers and programmers who write applications that use printers or that generate other printed output. Print preview functionality, however, often cannot represent an actual printing result accurately. This is often because the computing device can not correctly or accurately emulate an actual printer environment. For example, a user creates a particular and previously unknown typeface font on a computing device and uses the font in a document prepared on the user's word processing software. The printing device connected to the computing device does not have any record of the font. Accordingly, when the user selects a print preview option, the computing device displays the font on the display device. When the user outputs a print job that uses the font to the printer, however, the printer is unable to generate the font. Thus, the print preview option provided by the computing device is inaccurate. In order to accurately preview printed output in the prior art, the user has to physically print the file or other output, or needs to be coupled to a printer. This wastes paper or other valuable printed media, consumes time, and/or limits the development environment for the user.
- A need for accurate previewing of printed output is particularly high for printed labels. Printed labels continue to be used in many applications, including for shipping and mailing, medical specimen vials, grocery and product inventories, or the like. Unfortunately, previous solutions, such as described in H06-110626, require a user to connect a printing device to a computing device. Furthermore, the connected printing device requires special firmware that expands the printing image in the printer's image buffer, which is sent back to the computing device for display. This results in wasted printer memory resource.
- There remains a desire in the industry for users to preview an accurate representation of printed matter, without a need to connect a printing device
- Accordingly, a system and method are provided for accurately emulating a printer on a computing device that is not connected to the printer. The computing device is provided with firmware and programming code that interfaces with the firmware for a customized printing operation. Moreover, the firmware is provided with the printer and the computing device, and is operable on each of the computing device and the printer as a function of at least one respective application programming interface. One application programming interface may be provided with the printer and another application programming interface may be provided with the computing device, or both the computing device and the printer may be provided with the same application programming interface.
- The programming code is provided with the computing device, and the computing device runs the programming code. The programming code interfaces with the firmware provided with the computing device and causes the computing device to emulate the printer, when the printer runs the programming code. Moreover, the computing device and the printer are not connected.
- Other features and advantages of the present invention will become apparent from the following description of the invention that refers to the accompanying drawings.
- For the purpose of illustrating the invention, there is shown in the drawings a form which is presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown. The features and advantages of the present invention will become apparent from the following description of the invention that refers to the accompanying drawings, in which:
-
FIG. 1 illustrates an example hardware arrangement in accordance with an embodiment, for developing and emulating a printing environment over a communication network. -
FIG. 2 illustrates the functional elements of an example information processor and/or user workstation shown inFIG. 1 . -
FIG. 3 is a block diagram that illustrates software components that are provided with an information processor, and that is useable for developing and/or using printer application. -
FIG. 4 is a block diagram that illustrates software components that are provided with a printer, and that is useable for developing and/or using printer application. -
FIG. 5 illustrates an example display screen that is displayed on information processor and that represents an example embodiment of an application developer. -
FIG. 6 illustrates an example display screen that is usable for uploading or otherwise integrating a customer's data source for integration in a printing application in accordance with an embodiment. -
FIG. 7 illustrates an example data label layout that integrates the data to be incorporated in a label. -
FIG. 8 illustrates an example display screen that represents a use of an application developer and operable on information processor. -
FIG. 9 illustrates an example display screen that represents a use of an application developer and operable on an information processor. -
FIG. 10 illustrates the similarity between a physical label and tag printer and a virtual printer emulator. -
FIG. 11 illustrates an example display of a virtual printer emulator and corresponding previewed label output provided in accordance with preferred embodiments. -
FIG. 12 illustrates an example display of a virtual printer emulator and corresponding previewed label output provided in accordance with preferred embodiments. -
FIG. 13 illustrates an example display of a virtual printer emulator and corresponding previewed label output provided in accordance with preferred embodiments. -
FIG. 14 is a block diagram illustrating example components that may be included in an example embodiment and usable for providing shared firmware. -
FIG. 15 illustrates an additional example hardware arrangement, in accordance with embodiments. -
FIG. 16 illustrates an additional example hardware arrangement, in accordance with embodiments. -
FIG. 17 is a flow chart that shows steps representing a process associated with receiving an order for a customized label application from a customer and fulfilling the order. - In a preferred embodiment, a printer is emulated as a function of a shared printer firmware operable via one or more application programming interfaces (“APIs”) and that enable custom and extended functionality. In a preferred embodiment, an interpreted scripting language, LUA, is used to generate the firmware and to provide custom printing applications via an integrated development environment. In accordance with the present application, at least one of a printer's firmware, one or more printer's API's and/or printer software applications that are developed and operate on a printer are provided in an integrated development environment that is operable on a computing device. Preferably, the integrated environment includes a graphical user interface that emulates, at least in appearance, a control panel that is provided with the printer.
- Thus, one or more software programs that operate on a printer, such as the printer's firmware, a software application, and a printer API, are loaded on the computing device and operate in an integrated environment. The integration of the printer software with the graphical user interface provides users with accurate print preview representations of printed output because the same software (e.g., firmware, API's and/or application(s)) that operate on the printer operate on the computing device, as well. Preferably, one or more printer API's are designed such that the application and shared firmware execute on both the printer itself, and on the computing device (e.g., a personal computer operating the MICROSOFT WINDOWS operating system), thereby enabling a true emulation of the printer. The teachings herein provide a new and non-obvious printer emulation, at least because injected code functions to access any part of a developed printer software application and/or the shared firmware via one or more API's.
- Thus, the teachings herein include software that operates effectively on a computing device in the same way as if it was provided with an actual, physical printer. Users, particularly developers of software for the respective printers, view an accurate representation of the printer's functionality as well as an accurate preview of printed output on the user's display device, even though the display device is provided separately from the physical printer. In this way, the development environment does not suffer from the shortcomings described above with regard to prior art print preview functionality.
- In an embodiment, a printer application is written in LUA, which is platform independent language and developed in the C programming language. Computer and printer interaction with LUA is done through an interface, such as the C API. By using the C API, LUA based operations perform the same way on various platforms, including a printer platform and a computing (e.g., MICROSOFT WINDOWS) platform. In order to achieve an accurate printer emulation on a computing device, the C API should function similarly or the same way on both platforms. On a computing device, such as a personal computing running the MICROSOFT WINDOWS operating system, a file system is provided by the operating system. In accordance with the teachings herein, a file system API is provided for a printing device. Preferably, a file system API is used on both platforms (e.g., a computing device and a printing device) to ensure identical behavior as a software application executes on the respective platforms. Preferably, both a computing device and printing device are provided with a LUA virtual machine (as known in the art) and a C API, such that when a software application is loaded on either platform, such as via memory card, USB connected device, transferred over a network, or the like, the application is recognized by the C API and it runs consistently. Accordingly, the application runs the same way on the computing device as it does on the printing device, thereby eliminating a need to physically connect the printing device to the computing device to observe the application as it runs.
- The teachings herein also eliminate the prior art burden of having to physically print labels or other output to observe how printed output will appear. For example, a proprietor of a chain of fast food restaurants needs to create respectively formatted labels for each of a plurality of restaurants in the chain. The proprietor uses the integrated development platform in accordance with the teachings herein to design and preview the labels. The proprietor, thereafter, distributes the label design to each of the restaurants in the chain for generating labels. The labels that are output at each restaurant are accurately previewed by the proprietor. Even though the proprietor does not physically access to the printers used at the restaurants, the preview is accurate. Thus the label production workflow is significantly more efficient than that of the prior art. Moreover, the integrated environment operating on a computing device does not require a printer connected to the computing device that transmits image data back to computing device. Accordingly, the memory resource of printers is conserved.
- In a preferred embodiment, an integrated development environment includes a graphical user interface that is operable for designing and/or developing output, such as labels. Preferably, an integrated development environment, for example, for designing data labels for a label and tag printer is provided in combination with a graphical user interface that provides virtual representation of the printer, such as the printer's control panel. The integrated development environment and/or the graphical user interface that represents the printer preferably include the printer's firmware and one or more applications that are executed by the printer. Thus, application development tools are provided that operate on a computing device, such as a personal computer, and that include scripts and/or code libraries that facilitate application development of programs that execute on or by a printing device. This provides improved connectivity capabilities, such as for decentralized and “local” application development by a plurality of parties. In this way, many programmers can work remotely from a centralized office and do not have to be located in close proximity to end-users and customers in order to produce applications that are customized and/or tailored for specific customer needs. This results in shorter lead-time, which represents the time when a request from a client is made to the time when a program is deployed and used by the customer. The systems and methods herein further strengthen relationships with customers and developers.
- Preferably, developers of formatted output, such as printed labels, use the teachings herein to develop applications for formatted output. The developers are provided with an accurate virtual or displayed representation of printed output, as well as a virtual representation of the respective output device, such as the printer, that will produce the output. For example, a graphical user interface is provided for developers that includes a representation of the printer control panel (e.g., the LCD and keyboard/keypad) that is provided with the printer for end-users to print labels. In this way, developers can test how a particular printer or other output device will respond for an end-user. For example, the developer can preview how the printer will behave in response to one or keys that are selected by an end-user. Further, the developer is provided with an accurate representation of the liquid crystal display (“LCD”) or other display provided with the printing device, in response to one or more key selections made by an end-user. Moreover, the developer is provided with an accurate representation of the physical output that the printer will provide. In this way, the teachings herein simulate and accurately represent output results from a printing device, as well as printer key operation and LCD or other display results on the developer's computing device. This is enabled at least in part by providing firmware that is in the printing device with the developer's computing device. In this way, the physical output (i.e., printing) environment is accurately represented without a need to physically couple an output device or printer to the developer's computing device. Another advantage for developers is that when developing applications (or injected) functions, debugging is done on a computer, thereby eliminating or reducing time-consuming downloads and test prints.
- Thus, a plurality of printing solutions are provided by including a printer's firmware source code with a developer's computing device to accurately represent the result of, for example, software developed for proprietary printer control and operations.
- Referring now to the drawing figures, in which like reference numerals represent like elements,
FIG. 1 illustrates an example hardware arrangement in accordance with an embodiment for developing and emulating a printing environment over a communication network, and referred herein, generally, assystem 100.System 100 preferably comprises at least oneinformation processor 102, which may be configured to operate as an Internet web server and database file server and that is programmed and configured to accesscommunication network 106 and communicate with user workstation(s) 104.User workstations 104 and information processor(s) 102 may communicate via the known communications protocol, Transmission Control Protocol/Internet Protocol “TCP/IP.” In the example shown inFIG. 1 ,information processor 102 is provided with an integrated development programming environment (“IDE”), such as to develop applications in the LUA programming language, as known to those skilled in the art.Information processor 102 is provided with or has access to all databases necessary to support the teachings herein.Information processor 102 is also preferably provided with printer firmware that is installed onprinter 108. However, it is contemplated thatinformation processor 102 and/oruser workstation 104 can access any required database viacommunication network 106 or any other communication network to whichinformation processor 102 may be coupled.Communication network 106 is preferably a global public communication network such as the Internet, but can also be a wide area network (WAN), local area network (LAN), an intranet or other network that enables computing devices and peripheral devices to communicate. - In a preferred embodiment,
information processor 102 anduser workstations 104 are any computer readable medium devices that are capable of sending and receiving data acrosscommunication network 106, e.g., mainframe computers, mini computers, personal computers, laptop computers, a personal digital assistants (PDA), cellular telephones and Internet access devices such as Web TV. In addition,information processor 102 is preferably equipped with web browser software, such as MICROSOFT INTERNET EXPLORER, MOZILLA FIREFOX, or the like.Information processor 102 is coupled tocommunication network 106 using any known data communication networking technology. - Also shown in
FIG. 1 isprinter 108 that is preferably a label and tag printer and operable to print labels and tags of data received frominformation processor 102.Printer 108 may be provided with keyboard and display to enable input and output functionality withprinter 108 in addition to or in the absence of or in conjunction withinformation processor 102. Akeyboard 110 is preferably provided that is operable to receive and interpret (i.e., read) signals from auser using printer 108. The keyboard may be an external keyboard or other input device not directly coupled toprinter 108. Moreover, adisplay 112 is preferably provided that operates to present a variety of textual and graphical content onprinter 108. The display be an external display (not shown) attached toprinter 108. Preferably, thedisplay 112 supports a wide selection of fonts and coding types, for example, for many different written languages. -
FIG. 2 illustrates the functional elements of anexample information processor 102 and/oruser workstation 104, and includes one or more central processing units (CPU) 202 used to execute software code and control the operation ofinformation processor 102. Other elements include read-only memory (ROM) 204, random access memory (RAM) 206, one ormore network interfaces 208 to transmit and receive data to and from other computing devices across a communication network,storage devices 210 such as a hard disk drive, floppy disk drive, tape drive, CD ROM or DVD for storing program code databases and application data, one ormore input devices 212 such as a keyboard, mouse, track ball, microphone and the like, and adisplay 214. Further, one or more of functional elements 202-214 may be suitably configured or provided withprinter 108, as well. - The various components of
information processor 102 and/orworkstation 104 need not be physically contained within the same chassis or even located in a single location. For example,storage device 210 may be located at a site which is remote from the remaining elements ofinformation processor 102, and may even be connected toCPU 202 acrosscommunication network 106 vianetwork interface 208.Information processor 102 and/oruser workstation 104 preferably includes a memory equipped with sufficient storage to provide the necessary databases, forums, and other community services as well as acting as a web server for communicating hypertext markup language (HTML), Java applets, Active-X control programs.Information processor 102 and/oruser workstations 104 are arranged with components, for example, those shown inFIG. 2 , suitable for the expected operating environment. The CPU(s) 202, network interface(s) 208 and memory and storage devices are selected to ensure that capacities are arranged to accommodate expected demand. - The nature of the invention is such that one skilled in the art of writing computer executable code (i.e., software) can implement the functions described herein using one or more of a combination of popular computer programming languages, scripting languages and developing environments including, but not limited to, LUA, C, C++, C#, Visual Basic, JAVA, HTML, XML, ACTIVE SERVER PAGES, JAVA server pages, servlets, MYSQL and PHP.
- Although the present application is described by way of example herein and in terms of a web-based system using web browsers and a web site server (e.g., information processor 102),
system 100 is not limited to such a configuration. It is contemplated thatsystem 100 is arranged such thatprinter 108 communicates with and outputs data received frominformation processor 102 and/oruser workstation 104 using any known communication method, for example, using a non-Internet browser WINDOWS viewer coupled with a local area network protocol such as the Internet Packet Exchange (IPX), dial-up, third-party, private network or a value added network (VAN). - It is further contemplated that any suitable operating system can be used on
information processor 102, for example, DOS, WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT, WINDOWS 2000, WINDOWS ME, WINDOWS CE, WINDOWS POCKET PC, WINDOWS XP, MAC OS, UNIX, LINUX, PALM OS, POCKET PC and any other suitable operating system. - In a preferred embodiment,
printer 108 applications are developed in the LUA programming language. In accordance with a preferred embodiment, a LUA interpreter is included that is operable to process LUA programming statements provided in the applications. Unlike typical high-level programming languages, LUA is a scripting language and not a basic programming language. The teachings herein implement printer APIs that are extensions to the LUA language that interface with the printer firmware and that are interpreted by the LUA interpreter. This enables more advanced and complex applications to be developed, such as via function calls. Furthermore, by implementing APIs that are extensions to the LUA programming language, a portion ofprinter 108 functionality can be modified, as opposed to prior art label and tag printers that require a complete overwrite of their respective firmware applications in order to implement a single change. -
FIGS. 3 and 4 are block diagrams that illustrate software components that are provided withinformation processor 102 andprinter 108, respectively, and that are useable for developing and/or using printer applications. InFIG. 3 ,information processor 102 is represented inbox 102, and includes an operating system 302 (e.g., MICROSOFT WINDOWS).Application developer 304 includes, for example, an integrated development environment for developing new or modifying existing printer applications, such as developed in the LUA programming language and that are deployable to one ormore printers 108 for printing formatted output, such as labels.Information processor 102 further includes avirtual printer emulator 306 that is operable to provide a virtual representation of aprinter 108 that executes a printer application developed, for example, oninformation processor 102 viaapplication developer 304. As noted above, the printer's 108 firmware is preferably provided with theinformation processor 102 that enables theemulator 306 to accurately represent printed output and the way that theprinter 108 will function while the application is executing. Moreover,information processor 102 includes an API and theprinter application 310. - In
FIG. 4 , aprinter 108 such as a label and tag printer is represented inbox 108, and includesfirmware 312 that is particular to printing device, and not shared withinformation processor 102. Also provided withprinter 108 is sharedfirmware 308 that is particular toprinter 108, but operates oninformation processor 102 as well, and that enablesprinter emulator 306 to be accurate. As noted above, the printer's 108 firmware is preferably provided withinformation processor 102 that enables theemulator 306 to accurately represent printed output and the way that theprinter 108 will function while the application is executing. Moreover,printer 108 includes the API andprinter application 310. - In a preferred embodiment,
information processor 102 is provided withapplication developer 304 andprinter emulator 306 that enable, for example, a software developer to write a printing application forprinter 108.FIG. 5 illustrates anexample display screen 400 that is displayed oninformation processor 102 and that represents an example embodiment ofapplication developer 304. In the example shown inFIG. 5 , theapplication developer 304 is provided as an integrated development environment (“IDE”), and used to develop a label application for outputting a plurality of labels onprinter 108. As shown inFIG. 5 ,table section 402 provides a list of one or more data tables that store information to be printed on a label.Options section 404 includes additional application development selections, including for data field entry, label layout options, and data source. In the example shown inFIG. 5 , the option “Tables” 406 is selected. - Continuing with reference to
FIG. 5 ,label format section 408 includes interactive graphical screen controls that provide options for designing a label to be output on, for example,printer 108. In the example shown inFIG. 5 , a label is being designed for a retail company and the respective label is developed for a product, AGAM. Options are provided for, among other things, font type, lines, boxes, or the like.Data table section 410 includes a display of a respective table of information that is used for inclusion in the designed label. In a preferred embodiment, data tables or other formatted sources of information are provided toinformation processor 102, such as via FTP, e-mail, physical disk or drive, or the like. In this way, a decentralized source of label data can be managed, without a need for a label application programmer to be physically located nearby to the location where the labels will be eventually printed and/or used. - Continuing with reference to
FIG. 5 ,code generating section 412 is provided for a user ofinformation processor 102 to write programming code that is included in a printing application. In the example shown inFIG. 5 , LUA programming statements are displayed, and used to provide color options to be included in a label. Integrating programming code development in a graphical label development platform enables convenient options for developers to accurately and quickly develop printing applications. Further,properties section 414 include options for controlling the appearance and data to appear in printed output, such as a label. In the example shown inFIG. 5 , the word, “Agam” is selected and identified inproperties section 414 to be in the font type, Sans Bold font, 12 point, at X:Y coordinates 153, 86, and the data for the label is provided from a table, such as displayed intable section 402. - Thus, and as shown in
example display screen 400, an integrated development environment that representsapplication developer 304 is usable for developing an application for formatted printed output, such as a label. - As noted herein, programmed applications that are usable for printing, such as custom data labels, were developed in the prior art by parties who had to be situated physically close to each other. Developers needed access to the end-user's data, as well as to be physically connected to the end-user's
printing device 108 in order to test the output and revise the application as necessary. In accordance with the teachings herein, developers no longer have to be tied physically to an end-user'sprinter 108, and can instead develop printing applications remotely that are integrated with the end-user's data, and that can be tested and evaluated away from the end-user's site, as well. -
FIG. 6 illustrates anexample display screen 500 that is usable for uploading or otherwise integrating a customer's data for a printing application.Data package section 502 illustrates example options available for application developers, and include options for formatting, data sources, images, profiles, fonts, other and system options. Other options may include translation tables for different languages, function key support (e.g., F1) providing quick access to selectable resources, pre defined settings and power fail storage, including a repository for accumulated values. -
Table section 504 illustrates an example data table that has been imported from an example client and includes data for product code, product name, manufacturer code, and color code. Once imported, the data are usable for a custom printing application, such as for data labels, and further is usable for the example customer. -
FIG. 7 illustrates an exampledata label layout 600 that prints the data provided, for example, in the table shown in table section 504 (FIG. 6 ). As shown inFIG. 7 , a barcode is provided that incorporates a plurality of the data values, such as manufacture code, color code, and product code. Further, the data label incorporates written words, such as to represent the same. Further, a custom logo may be included in the label and that was imported from a client company. -
FIG. 8 illustrates anexample display screen 700 that represents another use ofapplication developer 304 and operable oninformation processor 102. In the example shown inFIG. 8 , theapplication developer 304 is used to develop data labels for a food provider. As shown intable section 410, the data shown are for foods, and include apple pie, bacon and other foods. Corresponding data are provided for the amount of time that each of the foods needs to thaw, how long a particular food's shelf life is, or the like. Inlabel format section 408, some of the data in the first row of data are illustrated for apple pie. The respective data fields that have been selected by the programmer for inclusion in the label are the name of the food, a “pull” date and time, a “thaw” date and time, and a “discard” date and time. As the data labels are printed by the customer, corresponding information from each of the respective rows of data fromdata table section 410 are output in the labels. In theexample display screen 700, thecode generating section 412 is not displayed, which further illustrates the flexibility ofapplication developer 304.Sections application developer 304 can be displayed or hidden from view, for example, simply by selecting one or more graphical screen controls (e.g., checkboxes, tabs, radio buttons or the like) by the user. -
FIG. 9 illustrates anexample display screen 800 that represents another use ofapplication developer 304 and operable oninformation processor 102. In the example shown inFIG. 9 , theapplication developer 304 is used to develop data labels for a sports equipment retailer. In theexample display screen 800, the user is designing a data label that includes a plurality of components, including a product image, barcode, brand description, product description, original sales price and current sales price. Moreover, the label is preferably formatted in graphically appealing ways, including with diagonal textual output, respective font types and point sizes, etc. In theexample display screen 800, thedata table section 410 and thecode generating section 412 are not displayed. By enabling the user to turn off the display of those sections, the user can focus his attention on the label's graphic development without the clutter of data and programming code consumingdisplay screen 800. - As noted above, in addition to
application developer 304, software is included that operates on information processor effectively in the same way as software provided with an actual,physical printer 108. This enables users to view an accurate representation of a printer, as well as an accurate preview of printed output on the user's display device, even though the display device is located separately from the physical printer. -
FIG. 10 illustrates the similarity between aphysical printer 108 andprinter emulator 306. On the left side ofFIG. 10 is an illustration ofprinter 108, and that includeskeyboard 110 anddisplay 112.Printer emulator 306, similarly, includes a virtual representation of theprinter 108, includingsections printer emulator 306 operate as they do onprinter 108, and do so accurately as a function of sharedfirmware 308, which is provided on bothprinter 108 andemulator 306. Also illustrated inFIG. 10 is an example application that is provided viaapplication developer 304, and that preferably includes prompts indisplay 112 that can be selected viakeyboard 110. -
FIGS. 11-13 illustrateexample displays printer emulator 306 and corresponding previewed label output provided in accordance with preferred embodiments. As shown inFIGS. 11-13 ,printer emulator 306 is provided in the left portion ofdisplay screens label output 1004 is provided in the right portion. Each of thedisplay screens printer 108 outputting labels for different users. For example,display screen 1002 represents labels generated for a sports equipment provider.Display screen 1006 represents labels generated for a food provider, anddisplay screen 1008 represents labels generated for a retail establishment. Each of theexample display screens section 1004 is an accurate representation of the actual output to be generated byprinter 108, at least as a result of the shared firmware that is provided both oninformation processor 102 andprinter 108. -
FIG. 14 is a block diagram 1100 illustrating example components that may be included in an example embodiment and usable for providing sharedfirmware 308. As shown inFIG. 14 , astandard LUA API 1102 and a customLUA Printer API 1104 are provided that interface with the LUA virtual machine (“VM”) 1106. Inprint engine section 1108, components relating toprinter 108 are listed, including the motor control, sensor control and thermal printhead (“TPH”) control. Indevices section 1110, communication interface (“I/F”), keyboard and display are listed. Renderengine section 1112 includes a font scaler, fonts wrapper, code pages, images, barcode wrapper and lines. A barcode library section 114 may further include bitmap fonts and rendering for respective barcodes. File system section 116 preferably includes read only memory (“ROM”), random access memory (“RAM”), flash drive, and secure digital (“SD”) card wrapper. An SDcard file system 1118 may further be provided. Software library (“C”) 120 is further included, and includes custom library components, such as “malloc” and “printf” which may be custom written functions. In addition, a real-time operating system and hardware are provided insection 1122. Use of these components are provided as building blocks for firmware that is preferably provided toinformation processor 102 and usable for providing accurate print preview and printer emulation for programmers. -
FIGS. 15 and 16 illustrate additional example hardware arrangements, in accordance with embodiments, wherein aprinter 108 is provided with an application developed, for example, byapplication developer 304. In the example shown inFIG. 15 , an arrangement is shown that supports use of adesktop printer 108. In addition toinformation processor 102,user workstation 104,communication network 106,printer 108,keyboard 110 anddisplay 112,scale 1204 is shown and useable for transmitting information representing the weight of foods or goods to be included in labels generated byprinter 108. Moreover,scanner device 1206 is usable for obtaining information from an existing barcode and transmitting the information toprinter 108. Other data input devices includekeyboard 1208 andhandheld device 1210, which may be a PDA. Data and software may be provided viainformation processor 102, which may store anapplication 1212 developed viaapplication developer 304, anddatabase 1214, which may store data for a particular business customer. In the example shown inFIG. 15 , the application is operable and usable at a particular site, such as a grocery store, retailer or other business, and interfaces with devices typically located at a particular site. Theprinter 108 generates labels via, for example, a LUA application, which runs via a LUA interpreter, and which may further interface with a database. -
FIG. 16 illustrates ahardware arrangement 1216 that is usable in a print and apply (“P&A”) printing environment, such as to provide production line labeling. Aproduction line 1218 is provided, which may includesensor 1220 for fast and accurate data transfer and/or recognition. -
FIG. 17 is a flow chart that shows steps S100 that represent the process associated with receiving an order for a customized label application from a customer and fulfilling the order so that the application is placed into production. At step S102, the process starts and the customer thereafter formally requests a particular label application (step S104). At step S106, the customer's request is formally defined, for example, by technical personnel capable of describing the customer's request technically for a programmer. The request is transmitted to a programmer who uses theapplication developer 304 to produce a customized application. At step S108, the programmer uses theapplication developer 304, for example, to design label formats, create program prompts, associate fields and prompts with data table columns, develop application and printer setup routines, and/or integrate user predefined functions, such as LUA scripts. The programmer may use theapplication developer 304 to develop a new application or, alternatively, to modify an existing application. Once the application is developed, then the application is verified, for example, via printer emulator 306 (step S110) or with a physical printer 108 (step S112). Thereafter, at step S114, a determination is made whether changes to the application are required. If so, then the process branches back to step S108 and the programmer modifies the application. If not, then the process branches to step S116 and the application is submitted to the customer, such as a file transmitted overcommunication network 106, provided in an SD card, a compact disc, or other media. The customer verifies the application, either viaprinter emulator 306 or on printer 108 (step S118). Thereafter, a determination is made whether revisions are needed to the application (step S120). If so, then the process branches back to step S108 and the programmer modifies the application and the process continues from there. If not, then the process branches to step S122, wherein the customer approves the application, payment may be tendered and the process ends. - Thus, as shown and described herein, the present application solves problems associated in the prior art, such as relating to printer emulation and program development. By sharing firmware with a printer and a computing device, an accurate printer emulation is obtained, including to provide an accurate print output preview. Moreover, the development cycle for printer software applications is significantly reduced, and engineers and programmers no longer have to be located physically near to end-users. A decentralized, advanced, fast and cost-effective solution is provided for custom tailored printing solutions that were previously unavailable in the prior art. This is provided, at least in part, due to use of a powerful programming and scripting language, such as LUA, that is capable of accessing and interfacing with file systems to provide powerful printer functions, connectivity functionality and improved font and code page handling. The result is a shorter total lead-time and more accurate application solutions provided initially to customers, which improves and solidifies customer relations.
- Moreover, very complex print configurations are now possible, particularly for labels, that may include, for example, various colors, logos, database information, barcodes, and operator sequences for an improved workflow. After customer databases are accessed or obtained, and customer requests or requirements are defined, a programmer can use the teachings herein to design a label format that includes the customer's data and custom graphics, and that can be packaged in an application and transmitted to the customer quickly. Moreover, the application can be verified for accuracy, via
printer emulator 306. - In one embodiment, customers receive printers that have virtually no predefined functionality, and are essentially “empty” machines. An end-user accesses and downloads a printer application over a communication network via the end-user's computing device. Thereafter, the printer executes programming instructions that provide custom functionality.
- Although the present invention is described and shown in relation to particular embodiments thereof, many other variations and modifications and other uses will become apparent to those skilled in the art. It is preferred, therefore, that the present invention be limited not by the specific disclosure herein.
Claims (21)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/000831 WO2011099064A1 (en) | 2010-02-10 | 2010-02-10 | System and method for printer emulation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/000831 A-371-Of-International WO2011099064A1 (en) | 2010-02-10 | 2010-02-10 | System and method for printer emulation |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/228,586 Continuation US20170003918A1 (en) | 2010-02-10 | 2016-08-04 | System and method for printer emulation on a computing device not being connected to the printer |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120293823A1 true US20120293823A1 (en) | 2012-11-22 |
US9436422B2 US9436422B2 (en) | 2016-09-06 |
Family
ID=44367378
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/576,210 Active 2030-03-21 US9436422B2 (en) | 2010-02-10 | 2010-02-10 | System and method for printer emulation on a computing device not being connected to the printer |
US15/228,586 Abandoned US20170003918A1 (en) | 2010-02-10 | 2016-08-04 | System and method for printer emulation on a computing device not being connected to the printer |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/228,586 Abandoned US20170003918A1 (en) | 2010-02-10 | 2016-08-04 | System and method for printer emulation on a computing device not being connected to the printer |
Country Status (9)
Country | Link |
---|---|
US (2) | US9436422B2 (en) |
EP (1) | EP2534572B1 (en) |
JP (1) | JP5661617B2 (en) |
KR (1) | KR101443304B1 (en) |
CN (1) | CN102884503B (en) |
AU (1) | AU2010345994A1 (en) |
NZ (1) | NZ601686A (en) |
SG (1) | SG183161A1 (en) |
WO (1) | WO2011099064A1 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120154852A1 (en) * | 2010-12-21 | 2012-06-21 | Kabushiki Kaisha Sato Chishiki Zaisan Kenkusyo | Virtual input/output device for printers |
US20130194631A1 (en) * | 2012-01-30 | 2013-08-01 | Konica Minolta Business Technologies, Inc. | Image forming system, remote operation apparatus, image forming apparatus, and recording medium |
US20140176990A1 (en) * | 2010-10-12 | 2014-06-26 | David Block | Printer |
US20160248922A1 (en) * | 2015-02-24 | 2016-08-25 | Konica Minolta, Inc. | Image Forming System, Image Forming Apparatus, and Program |
US11457112B2 (en) * | 2018-09-11 | 2022-09-27 | Sato Holdings Kabushiki Kaisha | Information processing terminal, information processing method, and non-transitory computer-readable recording medium to display printer screen |
US20230136760A1 (en) * | 2017-05-03 | 2023-05-04 | Ndustrial.Io, Inc. | Device, system, and method for sensor provisioning |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5743108B2 (en) * | 2012-08-10 | 2015-07-01 | コニカミノルタ株式会社 | Image forming apparatus |
US20140043632A1 (en) * | 2012-08-10 | 2014-02-13 | Konica Minolta, Inc. | Image forming apparatus, method of controlling the same, and image forming system |
WO2015144242A1 (en) | 2014-03-28 | 2015-10-01 | Sato Holdings Kabushiki Kaisha | Multiple platform printer configuration |
JP6648581B2 (en) * | 2016-03-22 | 2020-02-14 | コニカミノルタ株式会社 | Image processing device and program |
DE102021113794A1 (en) | 2021-05-28 | 2022-12-01 | Helmut Henke | Electronic display unit and data processing program for its operation |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020159086A1 (en) * | 2001-04-09 | 2002-10-31 | Takeshi Shinomiya | Testing apparatus and method |
US20050128501A1 (en) * | 2003-12-15 | 2005-06-16 | Choi Jun-Young | Common driver application device and method |
US20060058103A1 (en) * | 2004-09-15 | 2006-03-16 | Microsoft Corporation | Online gaming spectator system |
US7058536B2 (en) * | 2001-02-21 | 2006-06-06 | Koenig & Bauer Aktiengesellschaft | Method and device for performing a functionality test of a technical device |
US20060174249A1 (en) * | 2005-02-01 | 2006-08-03 | Seiko Epson Corporation | Resource management system, resource conversion table generation system, software authentication system, resource management program, resource conversion table generation program, software authentication program, resource management method, resource conversion table generation method, and software authentication method |
US20070046820A1 (en) * | 2005-08-26 | 2007-03-01 | John Mead | Video image processing with programmable scripting and remote diagnosis |
US20070124510A1 (en) * | 2005-09-16 | 2007-05-31 | Mitsuo Ando | Image forming device, information processing method, information processing program, and recording medium |
US20080123135A1 (en) * | 2006-11-27 | 2008-05-29 | Oki Data Corporation | Communication Program, Method of Installing Image Processing Apparatus Control Program and Image Processing Apparatus |
US7812978B2 (en) * | 2004-09-07 | 2010-10-12 | Ricoh Company, Ltd. | Application executing method, information processing apparatus, image forming apparatus, terminal equipment, information processing method and computer-readable storage medium |
US20110026042A1 (en) * | 2009-08-03 | 2011-02-03 | Printable Technologies, Inc. | Apparatus & methods for image processing optimization for variable data printing |
US20110209137A1 (en) * | 2008-10-27 | 2011-08-25 | Lars-Ake Berg | Label printer api using program scripting language |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3158378B2 (en) | 1992-09-25 | 2001-04-23 | キヤノン株式会社 | Printing apparatus and print control method |
US5699494A (en) * | 1995-02-24 | 1997-12-16 | Lexmark International, Inc. | Remote replication of printer operator panel |
JP3594462B2 (en) * | 1997-10-29 | 2004-12-02 | 富士通株式会社 | Computer system |
KR100396261B1 (en) * | 2000-06-29 | 2003-09-02 | 삼성전자주식회사 | Method for performing preview function in printer driver |
JP2002288002A (en) | 2001-03-26 | 2002-10-04 | Mitsubishi Electric Corp | Emulator device and emulation method |
JP4542180B2 (en) * | 2002-07-26 | 2010-09-08 | 株式会社リコー | Image forming apparatus, program, and recording medium |
EP1385089A3 (en) * | 2002-07-26 | 2007-01-24 | Ricoh Company, Ltd. | Image forming apparatus, information processing apparatus, program execution method and program producing method |
JP2004312711A (en) * | 2003-03-25 | 2004-11-04 | Ricoh Co Ltd | Image forming apparatus and method for operating image forming apparatus by using remote application |
JP2005238524A (en) * | 2004-02-24 | 2005-09-08 | Max Co Ltd | Label printer |
JP4748666B2 (en) * | 2005-12-20 | 2011-08-17 | キヤノン株式会社 | Simulation system, simulation apparatus, image forming apparatus, simulation method, program, and storage medium |
JP2007286676A (en) * | 2006-04-12 | 2007-11-01 | Brother Ind Ltd | Print image display device |
JP2008160338A (en) * | 2006-12-22 | 2008-07-10 | Canon Inc | Image read controller and image read control method |
JP2008160388A (en) * | 2006-12-22 | 2008-07-10 | Canon Inc | Device and method for processing information and computer program |
US20080250385A1 (en) | 2007-04-09 | 2008-10-09 | Sanchez Elton R | Automating the deployment of applications |
US20090228862A1 (en) | 2008-03-04 | 2009-09-10 | Anders Bertelrud | Modularized integrated software development environments |
US20100257411A1 (en) * | 2009-04-07 | 2010-10-07 | Kabushiki Kaisha Toshiba | Emulation device and emulator activation method |
AU2009347773B2 (en) * | 2009-06-08 | 2015-05-28 | Sato Holdings Kabushiki Kaisha | System and method for injecting run-time programming code in a printing device |
US9740442B2 (en) * | 2010-12-21 | 2017-08-22 | Sato Holdings Kabushiki Kaisha | Virtual input/output device for printers |
-
2010
- 2010-02-10 KR KR1020127023165A patent/KR101443304B1/en active IP Right Grant
- 2010-02-10 SG SG2012057667A patent/SG183161A1/en unknown
- 2010-02-10 CN CN201080063543.8A patent/CN102884503B/en active Active
- 2010-02-10 WO PCT/JP2010/000831 patent/WO2011099064A1/en active Application Filing
- 2010-02-10 AU AU2010345994A patent/AU2010345994A1/en not_active Abandoned
- 2010-02-10 US US13/576,210 patent/US9436422B2/en active Active
- 2010-02-10 JP JP2011514964A patent/JP5661617B2/en active Active
- 2010-02-10 EP EP10845670.8A patent/EP2534572B1/en active Active
- 2010-02-10 NZ NZ601686A patent/NZ601686A/en unknown
-
2016
- 2016-08-04 US US15/228,586 patent/US20170003918A1/en not_active Abandoned
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058536B2 (en) * | 2001-02-21 | 2006-06-06 | Koenig & Bauer Aktiengesellschaft | Method and device for performing a functionality test of a technical device |
US20020159086A1 (en) * | 2001-04-09 | 2002-10-31 | Takeshi Shinomiya | Testing apparatus and method |
US20050128501A1 (en) * | 2003-12-15 | 2005-06-16 | Choi Jun-Young | Common driver application device and method |
US7812978B2 (en) * | 2004-09-07 | 2010-10-12 | Ricoh Company, Ltd. | Application executing method, information processing apparatus, image forming apparatus, terminal equipment, information processing method and computer-readable storage medium |
US20060058103A1 (en) * | 2004-09-15 | 2006-03-16 | Microsoft Corporation | Online gaming spectator system |
US20060174249A1 (en) * | 2005-02-01 | 2006-08-03 | Seiko Epson Corporation | Resource management system, resource conversion table generation system, software authentication system, resource management program, resource conversion table generation program, software authentication program, resource management method, resource conversion table generation method, and software authentication method |
US20070046820A1 (en) * | 2005-08-26 | 2007-03-01 | John Mead | Video image processing with programmable scripting and remote diagnosis |
US20070124510A1 (en) * | 2005-09-16 | 2007-05-31 | Mitsuo Ando | Image forming device, information processing method, information processing program, and recording medium |
US20080123135A1 (en) * | 2006-11-27 | 2008-05-29 | Oki Data Corporation | Communication Program, Method of Installing Image Processing Apparatus Control Program and Image Processing Apparatus |
US20110209137A1 (en) * | 2008-10-27 | 2011-08-25 | Lars-Ake Berg | Label printer api using program scripting language |
US20110026042A1 (en) * | 2009-08-03 | 2011-02-03 | Printable Technologies, Inc. | Apparatus & methods for image processing optimization for variable data printing |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140176990A1 (en) * | 2010-10-12 | 2014-06-26 | David Block | Printer |
US20120154852A1 (en) * | 2010-12-21 | 2012-06-21 | Kabushiki Kaisha Sato Chishiki Zaisan Kenkusyo | Virtual input/output device for printers |
US9740442B2 (en) * | 2010-12-21 | 2017-08-22 | Sato Holdings Kabushiki Kaisha | Virtual input/output device for printers |
US20130194631A1 (en) * | 2012-01-30 | 2013-08-01 | Konica Minolta Business Technologies, Inc. | Image forming system, remote operation apparatus, image forming apparatus, and recording medium |
US10237427B2 (en) * | 2012-01-30 | 2019-03-19 | Konica Minolta Business Technologies, Inc. | Image forming system, remote terminal, image forming apparatus, and recording medium |
US20160248922A1 (en) * | 2015-02-24 | 2016-08-25 | Konica Minolta, Inc. | Image Forming System, Image Forming Apparatus, and Program |
US9986107B2 (en) * | 2015-02-24 | 2018-05-29 | Konica Minolta, Inc. | Systems and methods for displaying remote operation screens of an image forming apparatus based on a configuration of display(s) of a mobile terminal |
US20230136760A1 (en) * | 2017-05-03 | 2023-05-04 | Ndustrial.Io, Inc. | Device, system, and method for sensor provisioning |
US12096323B2 (en) * | 2017-05-03 | 2024-09-17 | Ndustrial.Io, Inc. | Device, system, and method for sensor provisioning |
US11457112B2 (en) * | 2018-09-11 | 2022-09-27 | Sato Holdings Kabushiki Kaisha | Information processing terminal, information processing method, and non-transitory computer-readable recording medium to display printer screen |
Also Published As
Publication number | Publication date |
---|---|
EP2534572A4 (en) | 2013-08-14 |
US9436422B2 (en) | 2016-09-06 |
JP5661617B2 (en) | 2015-01-28 |
KR20120128663A (en) | 2012-11-27 |
AU2010345994A1 (en) | 2012-08-23 |
WO2011099064A1 (en) | 2011-08-18 |
EP2534572A1 (en) | 2012-12-19 |
CN102884503A (en) | 2013-01-16 |
CN102884503B (en) | 2016-01-13 |
US20170003918A1 (en) | 2017-01-05 |
JP2013519928A (en) | 2013-05-30 |
SG183161A1 (en) | 2012-09-27 |
NZ601686A (en) | 2014-06-27 |
EP2534572B1 (en) | 2019-05-08 |
KR101443304B1 (en) | 2014-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9436422B2 (en) | System and method for printer emulation on a computing device not being connected to the printer | |
US20220067268A1 (en) | Systems and methods for remote dashboard image generation | |
AU2008363368B2 (en) | Label printer API using program scripting language | |
US8732588B2 (en) | Method and apparatus for remotely displaying screen files and efficiently handling remote operator input | |
US8209598B1 (en) | Exporting electronic documents from rich internet applications | |
US20020093683A1 (en) | Method and system for virtual machine rendering of non-latin1 unicode glyphs | |
EP3074863A1 (en) | System and method for testing data representation for different mobile devices | |
US20170109104A1 (en) | Multiple platform printer configuration | |
CA2766954C (en) | System and method for injecting run-time programming code in a printing device | |
US20130080879A1 (en) | Methods and apparatus providing document elements formatting | |
AU2015201583B2 (en) | System and method for printer emulation | |
US20120166941A1 (en) | Content processing with extensibility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KABUSHIKI KAISHA SATO CHISHIKI ZAISAN KENKYUSYO, J Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GRIBEL, STAFFAN;JONSSON, PETER;REEL/FRAME:028684/0971 Effective date: 20120706 Owner name: SATO HOLDINGS KABUSHIKI KAISHA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GRIBEL, STAFFAN;JONSSON, PETER;REEL/FRAME:028684/0971 Effective date: 20120706 |
|
AS | Assignment |
Owner name: SATO HOLDINGS KABUSHIKI KAISHA, JAPAN Free format text: MERGER;ASSIGNOR:KABUSHIKI KAISHA SATO CHISHIKI ZAISAN KENKYUSYO;REEL/FRAME:038939/0920 Effective date: 20130401 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |