Template generation

Examples associated with template generation are disclosed. One example includes identifying a set of edges of a set of labels from an image of a sheet of labels. Members of the set of labels in an unused state are also identified. A printing template is generated for the sheet of labels based on the edges of the set of labels and based on which members of the set of labels are in an in-used state.

BACKGROUND

Adhesive label sheets are made up of three layers of material: a face material, a pressure sensitive adhesive material, and a backing sheet from which adhesive labels comprising the first two materials. Labels are used for a variety of purposes including, for example, mailings, identification, information provision, and so forth. In some cases, label sheets may be run through printers that rely on customized templates for the label sheets. The templates may ensure that information printed on labels falls within single printed labels so that the labels remain usable after printing.

DETAILED DESCRIPTION

Systems, methods, and equivalents associated with template generation are described. After printing a set of labels on an adhesive label sheet, not all labels on the sheet may be used. This may occur, for example, when a user prints fourteen labels on a sheet of labels that has thirty-six labels, leaving twenty-two unused labels. To use the remaining labels, the user may scan in a partially used label sheet, and a custom printing template for the partially used label sheet may be generated. This printing template may be generated by detecting used and unused labels on the partially used label sheet, and by detecting label boundaries. The printing template may then be, for example, transmitted to an external device, allowing the user to be sure that they will print on unused labels, thereby reducing wasted labels.

FIG. 1illustrates an example template generation module associated with template generation. It should be appreciated that the items depicted inFIG. 1are illustrative examples, and many different modules, and so forth, may operate in accordance with various examples.

FIG. 1illustrates a template generation module150associated with template generation. Template generation module150may analyze a partially used label sheet100and generate a printing template160based on the analysis of partially used label sheet100. Partially used label sheet100may be an adhesive label sheet from which one or more labels have been removed and/or printed on.

In the illustrated example, partially used label sheet100includes one used label110that includes text from a previous print job, and two removed labels120that were previously removed from the label sheet. Partially used label sheet100also includes seven unused labels130that a user may desire to use in the future.

To use these unused labels130, some techniques may have the user figure out on their own which labels are unused, specifically prepare a document that uses only the unused labels, and the coordinate their specially prepared document with a printer to ensure that they properly print the labels without accidentally wasting further labels. If the user makes a mistake, the user may, for example, waste more labels and/or printer ink, or even damage the printer if the print heads are not properly configured for printing on the material that serves as the adhesive backing of partially used label sheet100.

Consequently, template generation module150may analyze partially used label sheet100to identify which labels from partially used label sheet100are unused and therefore available for a future print job. A variety of techniques may be used to identify which labels from partially used label sheet100are unused. For example, to detect used labels that have not been removed from partially used label sheet100, optical character recognition techniques may be used to detect text previously printed on used labels110. In other examples, colors of portions of partially used label sheet100may be compared to known color values to detect used labels110and/or removed labels120. In another example, portions of partially used label sheet100may be compared to one another to detect which labels are in a used state and which are in an unused state. Other techniques may also be used for detecting used and/or unused labels.

In addition to identifying usable labels on partially used label sheet100, it may also be desirable to identify sizes and/or shapes of labels on partially used label sheet100. Sizes, shapes, dimensions, and/or other features may be detectible by identifying label boundaries140of used and/or unused labels. Label boundaries may appear as solid lines when, for example, an image of partially used label sheet100is scanned in, and these lines can be used to add dimensions of labels to printing template160when printing template160is generated by template generation module150.

In some examples template generation module150may operate within a device containing printer components, scanner components, and so forth (e.g., a printer/scanner/copier). Consequently, template generation module150may control the scanner components to scan partially used label sheet100for generating printing template160. In various examples, the device may contain other modules to provide instructions to a user for generating printing template160from partially used label sheet100, and then printing on partially used label sheet100. These instructions may relate to, for example, orienting partially used label sheet100at various points in time, recommended settings, and so forth.

It is appreciated that, in the following description, numerous specific details are set forth to provide a thorough understanding of the examples. However, it is appreciated that the examples may be practiced without limitation to these specific details. In other instances, methods and structures may not be described in detail to avoid unnecessarily obscuring the description of the examples. Also, the examples may be used in combination with each other.

“Module”, as used herein, includes but is not limited to hardware, firmware, software stored on a computer-readable medium or in execution on a machine, and/or combinations of each to perform a function(s) or an action(s), and/or to cause a function or action from another module, method, and/or system. A module may include a software controlled microprocessor, a discrete module, an analog circuit, a digital circuit, a programmed module device, a memory device containing instructions, and so on. Modules may include gates, combinations of gates, or other circuit components. Where multiple logical modules are described, it may be possible to incorporate the multiple logical modules into one physical module. Similarly, where a single logical module is described, it may be possible to distribute that single logical module between multiple physical modules.

FIG. 2illustrates an example method200associated with template generation. Method200may be embodied on a non-transitory processor-readable medium storing processor-executable instructions. The instructions, when executed by a processor, may cause the processor to perform method200. In other examples, method200may exist within logic gates and/or RAM of an application specific integrated circuit (ASIC).

Method200includes identifying edges of a set of print labels at220. The edges of the set of labels may be identified based on an image of a sheet of labels. By way of illustration, edges of labels may be detected based on lines appearing in the image of the sheet of labels. Other techniques may also be appropriate for detecting edges of labels.

Method200also includes identifying which members of the set of labels are in an unused state at230. In some examples, identifying which members of the set of labels are in an unused state may include comparing colors of portions of the image of the sheet of labels to a known color. This known color may be, for example, a plain white color (e.g., # FFFFFF), a color known to be associated with certain popular label sheets, and so forth. In other examples, identifying which members of the set of labels are in an unused state may include comparing portions of the image of the sheet of labels to other portions of the image of the sheet of labels. This may detect, for example, where labels have been removed from a label sheet as labels and a glossy material from which the labels are removed may have different colors. In other examples, identifying which members of the set of labels are in an unused state may include detecting text on members of the set of labels. This may be detected using, for example, optical character recognition, color detection techniques, and so forth.

Method200also includes generating a printing template at240. The printing template may be generated for the sheet of labels. The printing template may be generated based on the edges of the set of labels. The edges of the set of labels may be incorporated into the template by allowing dimensions of the labels to be incorporated into the printing template. This may ensure, for example, that a subsequent print job using the printing template does print items across multiple labels. The printing template may also be generated based on which members of the set of labels are in an unused state.

FIG. 3illustrates a method300associated with template generation. Method300includes several actions similar to those described above with reference to method200(FIG. 2). For example, method300includes identifying edges of a set of labels from an image of a sheet of labels at320, identifying members of the set of labels in an unused state at330, and generating a printing template at340.

Method300also includes scanning the sheet of labels at310. Scanning the sheet of labels may create the image of the sheet of labels used to analyze the edges of the set of labels at actions320and330.

Method300also includes providing the printing template at350. The printing template may be provided to an external device. In various examples, the external device may be a personal computer or mobile device being operated by a user intending to print labels on the sheet of labels. Transmitting the printing template to the external device may allow the user to, for example, preview items to be printed on the sheet of a sheet of labels, organize items into the template, and so forth.

Method300also includes printing a set of printed labels at360. The set of printed labels may be printed onto the sheet of labels. The set of printed labels may be printed based on the printing template and on a data set. The data set, may be, for example, text to be printed onto the sheet of labels as organized by the printing template.

FIG. 4illustrates a system400associated with template generation. System400includes a label sheet analysis module410. Label sheet analysis module410may identify which labels on a partially used label sheet499are in an unused state. Label sheet analysis module410may also identify dimensions of the labels in the unused state. To perform these analyses, label sheet analysis module410may rely on an image of partially used label sheet499. In some examples, label sheet analysis module410may identify which labels are in an unused state by comparing colors of portions of the image of partially used data sheet499to a known color value. As described above, label sheet analysis module may identify labels in the unused state using other techniques.

System400also includes a template generation module420. Template generation module420may generate a printing template for partially used label sheet499. The printing template may be generated based on which labels are in the unused state and on the dimensions of the labels in the unused state. In some examples, template generation module410may generate the printing template so that the printing template controls a printer to print an indication for labels identified by the label analysis module as being in a used state. In one example, the indication may be a crosshatching over a used label to prevent accidental use of a previously used label.

FIG. 5illustrates a system500associated with template generation. System500includes several items similar to those described above with reference to system400(FIG. 4). For example, system500includes a label analysis module510and a template generation module520to generate a printing template for a partially used label sheet599.

System500also includes a scanner530. Scanner may generate the image of the partially used label sheet599. As discussed above, label analysis module510may analyze the image of partially used label sheet599for features that will be used by template generation module520to generate the printing template.

System500also includes a printer500. Printer500may print on the labels in the unused state on partially used label sheet599. Printer500may print on the labels in the unused state based on the printing template and on data inserted into the printing template. In one example, the data may be inserted into the printing template by an external device (e.g., a personal computer, a mobile device, a virtual machine, a server). In this example, system500may transmit the printing template to the external device over a network connection (not shown), and receive a document or file in return that combines the printing template and the data.

In another example, system500may insert the data into the printing template itself. This insertion may be performed, for example, by a label generation module540after receiving this data from an external device (e.g., a personal computer, a mobile device). In this example, label generation540may be able to merge structured data into the printing template to complete, for example, a mail merge upon receiving the structured data.

FIG. 6illustrates a method600associated with template generation. Method600includes scanning a label sheet at610. Method600also includes generating a printing template for the label sheet at620. The printing template may be generated based on which labels on the label sheet are in an unused state and on which print labels are in a used state. The printing template may also be generated based on dimensions of the print labels. Method600also includes transmitting the printing template to an external device at630.

FIG. 7illustrates an example computing device in which example systems and methods, and equivalents, may operate. The example computing device may be a computer700that includes a processor710and a memory720connected by a bus730. Computer700includes a template generation module740. Template generation module740may perform, alone or in combination, various functions described above with reference to the example systems, methods, apparatuses, and so forth. In different examples, template generation module740may be implemented as a non-transitory computer-readable medium storing processor-executable instructions, in hardware, software, firmware, an application specific integrated circuit, and/or combinations thereof.

The instructions may also be presented to computer700as data750and/or process760that are temporarily stored in memory720and then executed by processor710. The processor710may be a variety of processors including dual microprocessor and other multi-processor architectures. Memory720may include non-volatile memory (e.g., read only memory) and/or volatile memory (e.g., random access memory). Memory720may also be, for example, a magnetic disk drive, a solid state disk drive, a floppy disk drive, a tape drive, a flash memory card, an optical disk, and so on. Thus, memory720may store process760and/or data750. Computer700may also be associated with other devices including other computers, devices, peripherals, and so forth in numerous configurations (not shown).