# US 9,436,422 B2 · System and method for printer emulation on a computing device not being connected to the printer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,436,422 B2
- Document ID: US9436422B2
- Status: Granted
- Kind: B2
- Application number: 13/576,210
- Filed: 2010-02-10
- Published: 2012-11-22
- Granted: 2016-09-06
- Earliest claimed: 2010-02-10
- Assignees: Sato Holdings Kabushiki Kaisha
- Applicants: Staffan Gribel; Peter Jonsson
- Inventors: Staffan Gribel; Peter Jonsson
- Web page: https://patentgrep.com/patent/US9436422B2

## CPC

- G06F 3/1209: {resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension}
- G06F 3/1205: {resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets}
- G06F 3/1206: {resulting in increased flexibility in input data format or job format or job type}
- G06F 3/1208: {resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview}
- G06F 3/1225: {Software update, e.g. print driver, modules, plug-ins, fonts}
- G06F 3/1243: {Variable data printing, e.g. document forms, templates, labels, coupons, advertisements, logos, watermarks, transactional printing, fixed content versioning}
- G06F 3/1256: {User feedback, e.g. print preview, test print, proofing, pre-flight checks}
- G06F 3/1285: {Remote printer device, e.g. being remote from client or server}
- G06F 3/1287: {via internet}
- G06F 3/1298: {Printer language recognition, e.g. program control language, page description language}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

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. 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. The computing device and the printer are not connected.

## Claims

### Claim 1

A method of emulating a printer on a computing device, the computing device not being connected to the printer, and the computing device being provided with a first portion of printer firmware and programming code that interfaces with the first portion of printer firmware for a customized printing operation, the method comprising the steps of:
providing the first portion of printer firmware to the computing device, the first portion of printer firmware being shared by the computing device and the printer, wherein the first portion of printer firmware is operable on the computing device as a function of at least one application programming interface provided to the computing device, a copy of the first portion of printer firmware being operable on the printer as a function of a copy of the at least one application program interface being executed on the printer, the first portion of printer firmware being different from a second portion of printer firmware, the second portion of printer firmware being provided to the printer, but not being shared with the computing device;
providing the programming code to the computing device; and
running the programming code on the computing device so as to emulate the printer running the programming code on the computing device,
wherein the programming code runs on the computing device and interfaces with the first portion of printer firmware provided to the computing device so as to cause the computing device to emulate the printer running the programming code, thereby accurately representing a printer output and the functioning of the printer, and
the computing device and the printer are not connected to each other so that image data cannot be transmitted from the printer to the computing device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
providing the programming code to the printer; and
running the programming code on the printer, p1 wherein the printer running the programming code is emulated by the computing device when the computing device runs the programming code.

### Claim 3 (depends on 1)

The method of claim 1, wherein the programming code is a label generation software application.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
generating a signal by the computing device so as to cause an electronic computer display to display a virtual label generated by the programming code,
wherein the displayed virtual label has a same appearance as a physical label printed as a function of the printer running the programming code.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
providing an integrated development environment to the computing device; and
configuring the computing device by the integrated development environment for a user to develop the programming code.

### Claim 6 (depends on 5)

The method of claim 5, wherein the integrated development environment includes a label format section, and the method further comprises:
configuring the computing device for a user to develop a label format on the label format section.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
providing at least one data source of information for the label; and
configuring the computing device by the integrated development environment for a user to provide the information for the label when the label is generated by the printer.

### Claim 8 (depends on 6)

The method of claim 6, further comprising:
providing a program code editor for the integrated development environment; and
configuring the computing device by the integrated development environment for a user to develop the programming code.

### Claim 9 (depends on 1)

The method of claim 1, wherein the programming code is written in a scripting language, and running the programming code on the printer modifies a portion of the functionality of the printer.

### Claim 10 (depends on 1)

The method of claim 1, further comprising displaying a representation of the printer when the computing device is caused to emulate the printer.

### Claim 11

A system comprising a printer and a computing device for emulating the printer on the computing device, the computing device not being connected to the printer, and the computing device being provided with a first portion of printer firmware and programming code that interfaces with the first portion of printer firmware for a customized printing operation, the system comprising:
at least one application programming interface configured to be executed on the computing device, a copy of the application program interface being operable on the printer;
the first portion of printer firmware being configured to be executed on the computing device, the first portion of printer firmware being shared by the computing device and the printer, wherein the printer firmware is operable on the computing device as a function of the at least one application programming interface, a copy of the first portion of printer firmware being operable on the printer as a function of the copy of the application program interface, the first portion of printer firmware being different from a second portion of printer firmware, the second portion of printer firmware being provided to the printer, but not being shared with the computing device;
the programming code being configured to be executed on the computing device, wherein the programming code runs on the computing device and interfaces with the first portion of printer firmware on the computing device so as to cause the computing device to emulate the printer running the programming code, thereby accurately representing a printer output and the functioning of the printer;
wherein the computing device and the printer are not connected to each other so that image data cannot be transmitted from the printer to the computing device.

### Claim 12 (depends on 11)

The system of claim 11, wherein a copy of the programming code is provided on the printer, and the printer runs the copy of the programming code, and
wherein the printer running the copy of the programming code is emulated by the computing device when the computing device runs the programming code.

### Claim 13 (depends on 11)

The system of claim 11, wherein the programming code is a label generation software application.

### Claim 14 (depends on 13)

The system of claim 13, wherein the computing device is configured to generate a signal for causing an electronic computer display to display a virtual label generated by the programming code, wherein the displayed virtual label appears the same as a physical label printed as a function of the printer running the copy of the programming code.

### Claim 15 (depends on 13)

The system of claim 13, further comprising an integrated development environment configured to be executed on the computing device, wherein the integrated development environment configures the computing device for a user to develop the programming code.

### Claim 16 (depends on 15)

The system of claim 15, wherein the integrated development environment includes a label format section that configures the computing device for a user to develop a label format.

### Claim 17 (depends on 16)

The system of claim 16, further comprising at least one data source of information for the label, wherein the integrated development environment further configures the computing device for a user to provide the information in the label when the label is generated by the printer or by the computing device.

### Claim 18 (depends on 16)

The system of claim 16, further comprising a program code editor for the integrated development environment, wherein the integrated development environment provided with the program code editor further configures the computing device for a user to develop the programming code.

### Claim 19 (depends on 11)

The system of claim 11, wherein the programming code is written in a scripting language, and running the programming code on the printer modifies a portion of the functionality of the printer.

### Claim 20 (depends on 11)

The system of claim 11, wherein a representation of the printer is displayed when the computing device is caused to emulate the printer.

### Claim 21

A method of providing customized printer software, the method comprising the steps of:
receiving from a first computing device an electronic request for the customized printer software compatible to be run on a printer that is configured with a first portion of printer firmware and a second portion of printer firmware, the first portion of printer firmware being shared by the printer and a second computing device, wherein the request includes at least one specification related to the customized printer software;
developing, on the second computing device, the customized printer software, wherein the second computing device is configured with the first portion of printer firmware, the first portion of printer firmware being different from the second portion of printer firmware, the second portion of printer firmware not being shared with the second computing device;
running the customized printer software on the second computing device so as to verify that the customized printer software satisfies the electronic request;
emulating the printer running the customized printer software on the second computing device when the customized printer software runs on the second computing device, the emulating occurring as a result of the customized printer software running on the second computing device and interfacing with the first portion of printer firmware on the second computing device, thereby accurately representing a printer output and the functioning of the printer;
modifying the customized printer software and running the modified customized printer software on the second computing device when the customized printer software is not verified; and
sending the customized printer software to the first computing device when the customized printer software is verified,
wherein the second computing device and the printer are not connected to each other so that image data cannot be transmitted from the printer to the second computing device.

### Claim 22 (depends on 21)

The method of claim 21, wherein the customized printer software is written in a scripting language, and running the customized printer software on the printer modifies a portion of the functionality of the printer.
