Automated print-out bleed correction system and method
Patent Information
- Application Number
- CN202111566312.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-22
- Filing Date
- 2021-12-20
- Publication Date
- 2026-11-03
- Estimated Expiration
- 2041-12-20
AI Technical Summary
During the design and printing process, many non-professional designers fail to use print bleed correctly, resulting in the need to discard and reprint printed products, causing a waste of resources.
The computer-based method automatically identifies and adjusts the size of elements on the design page to ensure that elements cover more of the print bleed area and correct potential print bleed errors.
It reduces printing waste, improves printing efficiency, and saves resources and time.
Smart Images

Figure CN114661251B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to systems and methods for automatically identifying, suggesting corrections to address and / or rectify potential bleed problems in designs. Background Technology
[0002] When creating designs for printing (such as posters, cards, and other printed design products), print bleed is typically used to ensure that the print actually extends to the edge of the final product if intended.
[0003] Generally, this involves creating a design whose content extends into one or more print bleeds (i.e., areas on the page that are intended to be trimmed (cut off) after the final product is printed). The design is then printed on paper and trimmed. This ensures that the print extends to the very edge of the final paper, if intended, without any blank spaces.
[0004] Given the availability of content design tools and printing services, many people preparing for print design are not professional designers and may not necessarily have a good understanding of or use of print bleed.
[0005] If printing continues without proper bleed application, the printed product will likely need to be discarded and reprinted (after proper bleed application). This could happen whether printing a single design or hundreds (or thousands) of copies. This is a significant waste of resources—such as the paper material being printed, the printing ink, the printer's energy consumption, printer wear and tear, available printer time, and computational processing and network activity.
[0006] The background information described in this specification is background information known to the inventors. Mentioning this information as background information does not imply an admission or implication that it is prior art or common knowledge known to those skilled in the art. Summary of the Invention
[0007] This paper describes a computer-implemented method comprising: selecting multiple elements on a design page, each element being associated with a set of element edges; for each selected element: determining multiple pairs of edge bleeds with respect to the selected element, each pair of edge bleeds including a specific edge of the set of element edges and a specific bleed of the design page; and for each pair of edge bleeds: processing the pair of edge bleeds to determine whether the size of the selected element should be adjusted, the determination being based on the position of the specific edge relative to the specific bleed; and in response to determining that the element should be adjusted, adjusting the size of the selected element such that the element covers a larger portion of the specific bleed than it initially covered. Attached Figure Description
[0008] In the attached diagram:
[0009] Figure 1 A sample design page is depicted.
[0010] Figure 2 This is a block diagram illustrating an example environment in which the features of this disclosure can be implemented.
[0011] Figure 3 It is an example computer processing system that can be configured to perform the various features described herein.
[0012] Figure 4 Provides examples of designing and creating user interfaces.
[0013] Figure 5 This is a flowchart illustrating the operations involved in selecting the relevant edge / bleed pair during the automatic printing bleed correction process.
[0014] Figure 6 This is a flowchart illustrating the operations involved in processing selected edges / bleed pairs according to the corner extension method.
[0015] Figure 7 Show Figure 6 The characteristics of the correction process for corner-extended bleeding.
[0016] Figure 8 This is a flowchart illustrating the operations involved in processing selected edge / bleed pairs according to the distance extension method.
[0017] Figure 9 Show Figure 8 The characteristics of the extended bleeding correction process.
[0018] Figure 10 It is a flowchart describing the operations involved in the design page approval process.
[0019] Figure 11 The design approval user interface is displayed.
[0020] While the claimed invention can be modified in various ways and with alternatives, specific embodiments are shown by way of example in the accompanying drawings and are described in detail. However, it should be understood that the drawings and detailed description are not intended to limit the invention to the specific forms disclosed. They are intended to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims. Detailed Implementation
[0021] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the claimed invention. However, it will be apparent, however, that the claimed invention can be practiced without these specific details. In some cases, well-known structures and devices are shown in block diagram form to avoid unnecessary obfuscation.
[0022] Various computer-implemented design tools. Such tools allow users to create designs, which can then be sent to a printer (or printing service) for printing. In this disclosure, references to printing refer to two-dimensional printing on paper materials such as paper, cardboard, fabric, or other paper materials.
[0023] In some cases, printing services may simply print the provided content without review or comment. In other cases, a portion of the printing service may involve some degree of design review to ensure, for example, that the submitted design is compatible with the printer being used.
[0024] As mentioned above, print bleed can be used (and the printed product can be trimmed) when the designer's intention is to make the print extend all the way to one or more edges of the paper. However, print bleed is often used incorrectly. In such cases, unless the design is corrected, the final product may not have the print extending all the way to one or more edges, even after trimming.
[0025] To address this problem, this disclosure provides a process for automatically identifying and correcting (or suggesting correction) potential bleed errors in a design.
[0026] Design, design pages and elements
[0027] First, the various concepts related to this disclosure will be described.
[0028] Various design tools can be used to create designs. While designs being created (or already created) can have multiple different pages, the techniques described in this article operate on a single page basis.
[0029] Pages and elements
[0030] Pages created in design tools will have certain page attributes, such as a page identifier (typically assigned by the design tool and unique at least for the design in question), page width, and page height. The width and height of a page determine its size and aspect ratio.
[0031] While design tools can allow designers to create designs with multiple different pages, the techniques described in this article operate on a single-page basis.
[0032] The page has an associated coordinate system. Any coordinate system can be used, but in this disclosure, the page coordinate system is a Cartesian coordinate system that defines a horizontal (x) axis and a vertical (y) axis. In this disclosure, the origin (x, y) = (0, 0) is the top left corner of the page, where the x-coordinate increases from left to right, and the y-coordinate increases from top to bottom.
[0033] The coordinate system can be in any appropriate unit, such as pixels, millimeters, centimeters, inches, or alternative units.
[0034] In the embodiments described herein, a page (e.g., a page identifier) is associated with a list of design elements. The list of design elements for a page is used to record all design elements that have been added to the page, such as a collection of design elements (e.g., a list or array).
[0035] Page (and element data) can be stored in device-independent design descriptors. For example, design descriptors can be stored in folders formatted as JSON, such as the following:
[0036]
[0037] In this example, the design descriptor includes design metadata (e.g., design identifier, design creation date), page dimensions (height and width), and an array of elements, each of which is an element descriptor describing an element (or group of elements) that has been added to the page (described below).
[0038] Design elements (or simply elements) are objects added to a page. Elements can be copied or imported from one or more element libraries (such as libraries of images, animations, videos, etc.). Alternatively, elements can be drawn or created using one or more design tools, such as text tools, line tools, rectangle tools, ellipse tools, curve tools, freehand tools, and / or other design tools or combinations thereof.
[0039] Elements that have been added to a page (and to a list of elements added to the page) can be identified in various ways. For example, an element can be identified by its position (index) in the list of elements. Alternatively (or additionally), an element identifier can be assigned that is unique, at least within the page to which the element was added.
[0040] A given design element has associated element attributes. The specific element attributes associated with, or that may be associated with, a given element can depend on the type of element in question. However, for example, element attributes may include one or more of the attributes shown in the table below:
[0041]
[0042]
[0043] Additional (and / or alternative) element attributes are possible.
[0044] Elements are of a specifically defined type—as defined by the element's type attribute in the example above. For example, element types can be: text; charts; images; grids (e.g., image grids); (data) tables; lines; vector shapes; groups (indicating that the element is actually a group of elements) and / or other element types.
[0045] In the automatic bleed correction process described in this article, only certain defined element types are eligible to be considered for automatic correction. Generally, elements that are not eligible are those that are unlikely to be suitable for automatic extension into the bleed (or outside the bleed). For example, elements of text, chart, table, and line types are not eligible, while elements of rectangle, vector shape, and image grid types are eligible.
[0046] Furthermore, in some embodiments, an element (or element type) may be associated with an extension axis marker or attribute having a value indicating whether an element can be extended in a single dimension (e.g., a rectangular element that can be extended individually in the x or y dimension) or whether an element must be extended in two dimensions to maintain its aspect ratio / prevent skew / deformation (e.g., a circular element that must be extended uniformly along the x and y dimensions together).
[0047] In an alternative embodiment, elements that need to be extended in two dimensions are ignored (i.e., they are treated as unqualified element types).
[0048] Element attributes of a given element can be stored in an element descriptor (which is included in the list of elements on the page). For example:
[0049]
[0050]
[0051] Rotation can be performed using any appropriate value (e.g., angle or radians). Rotation can be around a predefined constant pivot point (e.g., the center point of the element (e.g., ((origin x-coordinate + width) / 2), ((origin y-coordinate + height) / 2)), the origin (i.e., the top / left coordinate), the corner of the element, or an alternative predefined constant pivot point. Alternatively, rotation can be around a pivot point defined by the user or automatically for each individual element (e.g., a pair of pivot coordinates (pivot x, pivot y)).
[0052] When an element belongs to an element group, the element's origin (top / left coordinates), rotation, x-flip data, and y-flip data are relative to the group to which the element belongs. This will be discussed further below. If the element does not belong to an element group, these properties are relative to the entire page.
[0053] When an element is added to the page, the element (or element identifier) is added to the page's element list / array. Unless explicitly manipulated by the user, elements are added to the page's element list in the order they were added. In some implementations, the first item in the page's element list (i.e., list index 0) will be the background element. In this case, the first element added by the user becomes the second item in the page's element list (list index 1), the next added element becomes the third item (list index 2), and so on.
[0054] Constructing a page's element list in this way means that an element's position (index) in the element list also defines its depth or z-index within the page: that is, the element at index n is after the element at index n+1 and in front of the element at index n-1. When a given element is in front of one or more other elements, it can obscure or partially obscure any / all elements in front of it, depending on its position / size / rotation / opacity. In other words, the element at index n is in front of all elements with an index < n.
[0055] In an alternative embodiment, the element depth can be an explicitly stored design element attribute.
[0056] Design tools typically provide users with mechanisms to manually adjust the depth of elements, such as by moving them forward, backward, forward again, or backward. Such adjustments will change the order of the page's element list accordingly.
[0057] Page bleed and related element characteristics
[0058] Figure 1 The design canvas 100 shown on page 102 is illustrated. The design canvas 100 can be limited to the dimensions of page 102, or it can be any other dimension (or borderless). Page 102 defines the area intended to be printed as a discrete whole (e.g., on a single sheet of paper).
[0059] Page 102 has four bleeds 104. In this disclosure, the following naming convention will be used: "T" represents the top; "B" represents the bottom; "L" represents the left side; and "R" represents the right side. Therefore, the four bleeds 104 of page 102 are: top bleed 104T, bottom bleed 104B, left bleed 104L, and right bleed 104R.
[0060] Each hemorrhage 104 has the following defined or calculated parameters.
[0061] Bleeding orientation can be horizontal (based on top and bottom bleeding 104T and 104B) or vertical (based on left and right bleeding 104L and 104R).
[0062] The longitudinal axis of bleeding.
[0063] The horizontal axis of the bleeding.
[0064] The bleed interior coordinates define the interior edge of the bleed on the horizontal axis (i.e., the interior coordinates of a vertical bleed are x-coordinates, while the interior coordinates of a horizontal bleed are y-coordinates). The interior edge of the bleed is the edge along which the page is trimmed after printing.
[0065] Bleed outer coordinates define the outer edge of the bleed (horizontal axis). The outer edge of the bleed is the edge of the paper on the printed page.
[0066] The minimum coordinates of bleeding (or the minimum value of bleeding) are the minimum coordinates of bleeding 104 on the longitudinal axis of bleeding.
[0067] The maximum coordinate of bleeding (or the maximum value of bleeding) is the maximum coordinate of bleeding 104 on the vertical axis of bleeding.
[0068] The bleeding direction indicates whether the movement from the inner edge of the bleeding point to the outer edge is in the positive or negative direction along the transverse axis of the bleeding. This parameter can be calculated from other parameters (such as the inner and outer coordinates of the bleeding point).
[0069] The end of the bleed, that is, the bleed point farthest from the center of the page. This is the intersection of the minimum / maximum bleed value and the outer edge.
[0070] exist Figure 1 In the current coordinate system, the parameters for bleed 104T / B / L / R are as follows:
[0071] Typically, the print bleed width is 3mm (i.e., the distance between the inner coordinates / edge and the outer coordinates / edge of the bleed is 3mm), but alternative bleed widths (such as 5mm or any other bleed width) can also be used. The page bleed width can be a standard / default page parameter. Alternatively, the bleed width can be stored as a user-editable attribute in a design descriptor as described above. In this case, the user can be able to edit the bleed collectively (i.e., make all bleeds have the same width) or edit the bleed individually (i.e., make different bleeds have different widths).
[0072] Page 102 includes (in this example) a rectangular element 150 that has been rotated 20 degrees and is entirely within page 102 (i.e., within the outer edge of the bleed 104).
[0073] An element, such as element 150, that has been added to page 102 has an associated set of element edges. In this embodiment, the set of element edges associated with element 150 is the four edges of the rectangular bounding box 152 that defines element 150. When the element is rectangular (such as element 150), the bounding box 152 of the element (and therefore the set of element edges) extends together (or substantially together) with the edges of the element itself.
[0074] For non-rectangular elements (e.g., circles, ellipses, non-rectangular polygons, freeform vector graphics, etc.), calculate the rectangular bounding box surrounding the element, and the edges of the bounding box are the edges of the element's edge set. For example, element 170 is a circle rotated by -30 degrees and has a rectangular bounding box 172.
[0075] In this disclosure, the bounding box of an element is defined by its four corners, for example, for bounding box 152: the first (top left in this case) corner 154; the second (top right in this case) corner 156; the third (bottom left in this case) corner 158; and the fourth (bottom right in this case) corner 160. Each bounding box corner can be defined by a (x, y) coordinate pair, which can be calculated based on the element's position (e.g., top and left attributes), size (e.g., width and height attributes), and rotation.
[0076] The bounding box corners define the four edges of bounding box 152 in sequence: the first (top) edge 162 (the line between the first corner 154 and the second corner 156); the second (bottom) edge 164 (the line between the third corner 158 and the fourth corner 160); the third (left) edge 166 (the line between the first corner 154 and the third corner 158); and the fourth (right) edge 168 (the line between the second corner 156 and the fourth corner 160). A bounding box edge can be defined by a pair of (x, y) coordinates (i.e., a corner coordinate pair).
[0077] It is worth noting that the first corner 154 will not always be the top left corner, and the first edge will not always be the left edge, because the rotation of the element can change these relative positions. For example, if element 15 is rotated 90 degrees, the "top left corner" 154 is actually the bottom left corner, and the "top" edge 162 is actually the "left" edge.
[0078] In the automatic bleed correction process described below, the edges of the bounding box are determined to be either vertically oriented or horizontally oriented (given bounding box has two edges in each direction). Figure 1 In the example:
[0079] bounding box edge Edge orientation relative edge 162 (top) level 164 (bottom) 164 (bottom) level 162 (top) 166 (left side) vertical 168 (right side) 168 (right side) vertical 166 (left side)
[0080] Network environment
[0081] As described above, this disclosure provides a process for automatically identifying and correcting (or suggesting correction) potential bleed errors in a design. The processes performed, described in detail below, can be executed in various environments (and by various systems).
[0082] Turning Figure 2 This will describe an example of a network environment 200 in which the various operations and techniques described herein can be performed.
[0083] Network environment 200 includes client system 210 and server system 220 interconnected via communication network 230 (e.g., Internet).
[0084] Client system 210 is an end-user system operated by a user to, for example, prepare designs for printing or enable designs to be printed. Printing can be performed via a locally or remotely accessible printer or via a printing service (e.g., provided via server system 220 or an alternative server system).
[0085] The client system 210 hosts the client application 212. When the client system 210 executes the client application 212, the client application 212 configures the client system 210 as the server application 222 of the server system 220 to provide client-side functions / interact with it.
[0086] The functionality of client application 212 can be provided by a web browser application, which accesses server application 222 via an appropriate Uniform Resource Locator (URL) and communicates with server application 222 via World Wide Web protocols (e.g., http, https, ftp).
[0087] Alternatively, client application 212 may be a specific / native application programmed to use a defined application programming interface (API) to invoke communication with server application 222.
[0088] Through client application 212, users can interact with server application 222 to perform various operations. Depending on client and server applications 212 and 222, these operations may include creating, editing, saving, retrieving / accessing, publishing, sharing, and / or printing designs.
[0089] exist Figure 2In this example, client system 210 is configured to perform a bleed autocorrection process locally, as described below. In this example, client system 210 is configured to do so via bleed autocorrection logic 214. Bleed autocorrection logic 214 can be implemented in hardware or software. In the case of software implementation, bleed autocorrection logic 214 can be native to client application 212, provided to client application 212 by an add-on or plugin that extends its functionality, or provided by a separate application running on client system 210 and invoked as needed (by client application 212 or directly by the user).
[0090] Client system 210 can be any computer processing system configured (or configurable) by hardware and / or software to provide client-side functionality. For example, client system 210 can be a desktop computer, laptop computer, netbook computer, tablet computing device, mobile / smartphone device, personal digital assistant, or alternative computer processing system.
[0091] although Figure 2 Not shown, but the client system 210 will typically have additional applications installed on it, such as at least an operating system application.
[0092] Server system 220 hosts server application 222. Server application 222 is executed by the computer processing system of server system 220 to configure the system to provide server-side functionalities to one or more corresponding client applications (e.g., client application 212 described above). Server-side functionalities may include management functions (such as user account management, login, etc.), as well as design creation / editing functions (e.g., creating, saving, publishing, and sharing designs) and / or printing functions (e.g., defining various printing parameters and causing the design to be printed).
[0093] To provide server-side functionality, server application 222 includes one or more applications, libraries, APIs, or other software elements. For example, if client application 212 is a web browser, server application 222 will be a web server, such as Apache, IIS, nginx, GWS, or an alternative web server. If client application 212 is a specific / native application, server application 222 will be an application server specifically configured to interact with that client application 222. Server system 220 can host both web server and application server modules.
[0094] Server system 220 typically includes additional components beyond those shown. For example, server system 220 typically includes one or more data storage systems or applications (and data storage devices) for storing various data required by server system 220 during its operation. Such data may include, for example, user account data, design template data, design element data, and data related to designs already created by the user. Where server system 220 provides printing functionality, it typically includes one or more print servers (which are connected in turn to one or more physical printers via interfaces).
[0095] The exact hardware architecture of server system 202 will vary depending on the implementation method; however, it may also include multiple computer processing systems (e.g., server computers) that communicate with each other directly or via one or more networks (e.g., one or more LANs (local area networks), WANs (wide area networks), or other networks (with security logical overlays, such as VPNs (virtual private networks), if needed)).
[0096] For example, server application 222 can run on a single dedicated server computer. Alternatively, server system 220 can be a cloud computing system and configured to delegate / deactivate resources based on user demand. In this case, there may be multiple server computers (nodes) running multiple server applications 222, which serve clients through a load balancer.
[0097] The above description and Figure 2 The architecture shown is provided as an example only, and variations are possible.
[0098] For example, client system 210 can be configured to operate and perform the automatic bleed correction process described above completely independently of server system 220. In this case, client application 212 (including the automatic bleed correction logic 214) is a standalone application through which users can, for example, create, edit, and prepare designs for printing. Printing can then be performed on a locally accessible printer or via a remote printer (e.g., by transferring the design to a remote printer via a network, portable disk drive, electronic communication, or alternative means).
[0099] Alternatively, instead of providing the bleed autocorrect logic 214 to the client system 210, such logic can be provided to a server system such as 220 (and the bleed autocorrect process can be performed by the server system such as 220). In this case, the server system 220 receives the design to be prepared for printing (and / or already printed). The design can be received from the client application 212, or independently of such a client application, for example via electronic communication (e.g., email / SMS / instant messaging or other communication), via network upload (e.g., HTTP or FTP upload), via physical upload (e.g., from a portable storage device), or any other means. As part of preparing the design for printing, the server application 222 can then invoke the print bleed autocorrect logic (e.g., 224) to perform the print bleed autocorrect process as described above.
[0100] Example computer processing system
[0101] The features and techniques described herein are implemented using one or more computer processing systems.
[0102] For example, in the network environment 200 described above, the client system 210 is a computer processing system (e.g., a personal computer, tablet / telephone device, or other computer processing system). Similarly, one or more computer processing systems (e.g., a server computer or other computer processing system) are used to implement the various functional components of the server system 202.
[0103] Figure 3 A block diagram is provided of a computer processing system 300 configurable to implement the embodiments and / or features described herein. System 300 is a general-purpose computer processing system. It should be understood that... Figure 3 Not all functional or physical components of the computer processing system are shown. For example, a power supply or power interface is not shown; however, system 300 will carry a power supply or be configured to connect to a power supply (or both). It will also be understood that a particular type of computer processing system will determine appropriate hardware and architecture, and alternative computer processing systems suitable for implementing the features of this disclosure may have additional, alternative, or fewer components than those shown.
[0104] The computer processing system 300 includes at least one processing unit 302. The processing unit 302 may be a single computer processing device (e.g., a central processing unit, graphics processing unit, or other computing device), or it may include multiple computer processing devices. In some instances, where the computer processing system 300 is described as performing an operation or function, all processing required to perform that operation or function will be performed by the processing unit 302. In other instances, the processing required to perform that operation or function may also be performed by a remote processing device that is accessible and available to the system 300 (in a shared or dedicated manner).
[0105] Processing unit 302 communicates with one or more machine-readable storage (memory) devices that store instructions and / or data for controlling the operation of processing system 300 via communication bus 304. In this example, system 300 includes system memory 306 (e.g., BIOS (Basic Input / Output System)), volatile memory 308 (e.g., random access memory such as one or more DRAM (Dynamic Random Access Memory) modules), and non-volatile memory 310 (e.g., one or more hard disk or solid-state drive devices).
[0106] System 300 also includes one or more interfaces, typically denoted by 312, through which system 300 connects to various devices and / or networks. Generally, other devices can be integrated with system 300 or can be separate. When devices are separate from system 300, the connection between the device and system 300 can be via wired or wireless hardware and communication protocols, and can be direct or indirect (e.g., network) connections.
[0107] Wired connections to other devices / networks can be made through any suitable standard or proprietary hardware and connection protocol. For example, System 300 can be configured to make wired connections to other devices / communication networks via one or more of the following: USB; FireWire; eSATA (Extended Serial ATA); Thunderbolt; Ethernet; OS / 2; Parallel; Serial; HDMI; DVI; VGA; SCSI; Audio port. Other wired connections are also possible.
[0108] Wireless connectivity with other devices / networks can similarly be achieved through any suitable standard or proprietary hardware and communication protocols. For example, System 300 can be configured to wirelessly connect with other devices / communication networks using one or more of the following: infrared; Bluetooth; wireless network; near field communication (NFC); Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), Long Term Evolution (LTE), Wideband Code Division Multiple Access (W-CDMA), and Code Division Multiple Access (CDMA). Other wireless connections are also possible.
[0109] Generally, and depending on the specific system discussed, the devices connected to system 300 (whether wired or wireless) include one or more input devices to allow data to be input to / received by system 300 for processing by processing unit 302, and one or more output devices to allow data to be output by system 300. Example devices are described below; however, it should be understood that not all computer processing systems will include all of the mentioned devices, and additional and alternative devices to those mentioned may also be used.
[0110] For example, system 300 may include or be connected to one or more input devices through which information / data is input into (received by) system 300. Such input devices may include a keyboard, mouse, touchpad, microphone, accelerometer, proximity sensor, GPS device, etc. System 300 may also include or be connected to one or more output devices controlled by system 300 to output information. Such output devices may include devices such as CRT (cathode ray tube) displays, LCD (liquid crystal display) displays, LED (light emission diode) displays, plasma displays, touch screen displays, speakers, vibration modules, LED (light emission diode) / other lights, etc. System 300 may also include or be connected to devices that can function as both input and output devices, such as storage devices from which system 200 can read data and / or write data (hard disk drives, solid-state drives, disk drives, mini flash memory cards, SD cards, etc.), and touch screen displays that can both display (output) data and receive touch signals (input).
[0111] For example, in the case of a client system such as 210, system 300 will include at least a display 318 (which may be a touch screen display) and potentially one or more (additional) input devices, such as cursor control devices 320 (e.g., a mouse, touchpad or other cursor control devices) and keyboard 322.
[0112] When the computer processing system 300 is connected to a printer to print a design, the system 300 can be directly connected to the printer 324 (e.g., ...). Figure 3 (As shown). System 300 can also, or alternatively, be connected to one or more printers via communication interface 230 through a network (e.g., a local area network or a public network such as the Internet).
[0113] System 300 also includes one or more communication interfaces 316 for communicating with a network, such as network 230 of environment 200 (and / or a local network within server system 220)). Through the communication interface 316, system 300 can transmit and receive data from network devices, which themselves can be used by other computer processing systems.
[0114] System 300 can be any suitable computer processing system, such as server computer system, desktop computer, laptop computer, netbook computer, tablet computing device, mobile / smartphone, personal digital assistant or alternative computer processing system.
[0115] System 300 stores or has access to computer applications (also known as software or programs)—that is, computer-readable instructions and data—which, when executed by processing unit 302, configure system 300 to receive, process, and output data. Instructions and data may be stored on a non-transitory machine-readable medium accessible to system 300. For example, instructions and data may be stored on non-transitory memory 310. Instructions and data may be transmitted to / received by system 300 via data signals in a transmission channel (e.g., enabled by a wired or wireless network connection via an interface such as 312).
[0116] Applications accessible to system 300 will typically include operating system applications. System 300 also stores or has access to applications that, when executed by processing unit 302, configure system 300 to perform the various computer-implemented processing operations described herein.
[0117] For example, and refer to the above. Figure 1 Network environment: Client system 210 includes client application 212 that configures client system 210 to perform the operations described herein.
[0118] In some cases, part or all of the methods implemented by a given computer will be performed by the system 300 itself, while in other cases, the processing may be performed by other devices that communicate data with the system 300.
[0119] Design, creation, and editing
[0120] The specific method of creating the design is not specifically relevant to this disclosure. However, for the purpose of providing context, reference will be made to... Figure 4 Describe an example of designing and creating a user interface 400.
[0121] The user interface 200 is designed and created to be displayed on the monitor 318 of the client system 210, which is configured to be done by the client application 212.
[0122] Through interface 400, users can create design documents comprising one or more pages, and (in particular) add elements to the pages. The example design creation interface 400 includes a design creation pane 402, which displays the currently in-process design. In this example, the design creation pane 402 displays a single page 404 of the design document.
[0123] The design creation interface 400 also includes a design element search and selection pane 410, through which users can search or browse one or more design element libraries, view design element previews 414, and select design elements to include in the design. For this purpose, pane 410 includes a search box 412 (which allows the user to enter search text in this case) and design element previews 414 that provide preview images of the design elements.
[0124] The design creation interface 400 also includes a toolbar 420 that provides various tools for design creation and editing. In this particular example, the tools include: an element selection tool 422, which allows the user to select specific design elements that have been added to page 404; a drawing tool 424, which allows the user to draw design elements with geometric or other shapes; a text tool 426, which allows the user to add text design elements; a color tool 428, which allows the user to manually adjust one or more colors of a given design element; and an import tool 430, which allows the user to import elements from another source (e.g., elements stored on local or remotely accessible storage, elements from a third-party server, etc.).
[0125] In this example, toolbar 420 also includes an automatic bleed correction control device 432, which, when activated, triggers the automatic bleed correction process as described below.
[0126] Although not shown, toolbar 420 will typically be an adaptive toolbar, as the tools provided change depending on what the user is doing. As an example, while the automatic bleed correction control 432 is shown as a top-level control, it can be provided as a sub-control. For instance, toolbar 420 may include a "Print" control that, when activated, displays a print menu including the automatic bleed correction control 432.
[0127] Generally, to create a design, a user creates a page and adds design elements to that page. Design elements can be added in various ways. For example, a user can interact with the design element search and selection pane 410 to search / browse for design elements and then add them to the design being created—for example, by selecting the design element preview 414, dragging it to a position on page 404, and dropping it (or simply double-clicking / alternatively interacting with the element preview 414). Alternatively, a user can create and add entirely new elements, such as by drawing elements using tools like drawing tool 424 or adding custom text via text tool 426. Further alternatively, a user can import elements via import tool 430.
[0128] In this particular example, page 404 includes six design elements: a first rectangle element 440 (rotated -30 degrees); a circle element 442 (on top of rectangle element 440 and rotated +30 degrees); a first text element 444; a second rectangle element 446; a second text element 448; and a third rectangle element 450 (rotated +18 degrees).
[0129] In this example, the first rectangular element 440 partially extends off-page (i.e., part of the element goes beyond the outer edge of the left bleed). The third rectangular element 450 extends to the top and right bleed of the page. The angle of element 450 leaves the area of white space 452 between the right edge of the element and the top and right inner bleed edges.
[0130] Once an element has been added to the page, it is added to the page’s element list, and users can interact with it further—for example, by adjusting its position, size (height and / or width), its depth relative to other design elements on the page (e.g., moving it forward, backward, forward, backward), moving it to another page in the design document, changing its rotation, flipping it around an axis, adjusting its color, deleting it, copying it, adding it to a group, removing it from a group, and so on.
[0131] Interface 400 is provided as an example only, and alternative designs (with replaceable user interface elements and controls) are possible to create interfaces.
[0132] Automatic correction of printing bleed
[0133] The automatic bleed correction process 500 will be described. Process 500 is used to automatically detect potential bleed errors in a design and correct them (or provide suggested corrections).
[0134] The execution of process 500 is described as being performed by client system 210 (or simply system 210 in the context of process 500). In some implementations, system 210 is configured to perform the processing described by client application 212 (and bleeding autocorrect logic 214). However, as stated above, process 500 (or elements thereof) may be performed by an alternative system (e.g., server system 220).
[0135] Generally, process 500 involves performing a pairwise comparison between each bounding box edge of an eligible element and each bleed of the page associated with that edge (horizontal bleed is associated with horizontally oriented edges, and vertical bleed with vertically oriented edges). This process is repeated for each eligible element on the page. For a given bounding box edge / bleed pair (also called an edge / bleed pair), it is determined whether the size of the element in question should be adjusted to increase the element's coverage of the bleed, and if so, the element is sized accordingly. Generally, this determination is based on the position of the edge relative to the bleed.
[0136] In this embodiment, a given edge / bleed pair can be processed using two different extension methods. These two different extension methods are referred to as corner extension methods (see reference). Figure 6 and Figure 7 (Description) and distance extension methods (Reference) Figure 8 and Figure 9 (Description). Each extension method involves determining whether an element should be extended, and if so, extending the element.
[0137] More specifically, if the corner extension method determines that an element should be extended, it extends the element until the two corners of the element's bounding box are exactly outside the bleed 104 in question (in the described embodiment). Alternatively, the corners of the element's bounding box can be extended to the outer bleed edge.
[0138] In contrast, if the distance extension method determines that an element should be extended, it will extend the element until the edge of the element's bounding box is exactly outside (or on) the selected bleed end.
[0139] In this embodiment, the distance extension method will always produce a smaller or equal extension than that determined by the corner extension method. Therefore, the automatic bleed correction process initially processes edge / bleed pairs according to the corner extension method, and if the corner extension method is not applicable, it processes edge / bleed pairs only according to the distance extension method.
[0140] In alternative embodiments, the automatic bleeding correction process may involve only the corner extension method (or an adaptation thereof), only the distance extension method (or an adaptation thereof), or one or both of these extension methods plus an additional extension method.
[0141] The operation of printing the automatic bleeding correction procedure 500 is divided into four main parts: Reference Figure 5 Describes the operations for selecting and iterating over each relevant edge / bleed pair; see reference Figure 6 and Figure 7 The description covers the operations involved in handling specific edge / bleed pairs according to corner extension method 600; see reference. Figure 8 and Figure 9 Describes the operations involved in handling specific edge / bleed pairs according to distance extension method 800; Reference Figure 10 and Figure 11 Describe the operations involved in the design approval process 1000.
[0142] Edge / bleed pair selection
[0143] At 502, System 210 detected an automatic correction event for printed bleed.
[0144] Various triggering events are possible. For example, if process 500 is executed by a client system such as 210, the triggering event may include one or more of the following: system 210 detects the activation of an automatic bleed correction control device, such as the one described in 432 above; system 210 detects the activation of a print control device; system 210 detects that a user submits / uploads / sends a design to a print service (e.g., provided by a remote server 220); or alternative triggering events.
[0145] As an alternative example, if process 500 is executed by a server system such as 220 (e.g., a server for a print service), the triggering event could be receiving a design for printing.
[0146] As mentioned above, the automatic correction process described in this paper operates on a page-by-page basis. In cases where there are multiple pages, each page can be processed sequentially (or in parallel).
[0147] In this example, any element group is ignored (i.e., each eligible element is considered separately, regardless of whether it belongs to a group).
[0148] At 504, system 210 selects the next unprocessed eligible element on the page being processed. Elements can be processed in any order, such as depth order (from lowest to highest depth). As mentioned above, not all elements are eligible for processing by the bleed autocorrect process 500. Elements that do not belong to the eligible type are ignored / not processed (e.g., text elements, chart elements, other unqualified elements).
[0149] In some embodiments, any non-rectangular element may be disqualified (i.e., the bleed autocorrect process 500 is configured to consider only rectangular elements). In this case, references to the bounding box corners and edges of an element in process 500 may be replaced by references to the corners and edges of the element itself.
[0150] At 506, system 210 calculates (or accesses, if already calculated / stored) the edges with respect to the selected element and edge orientation (vertical or horizontal, as described above). As described above, the edges with respect to the selected element can be the edges of the element itself (e.g., in the case of a rectangular element) or the edges of the element's bounding box.
[0151] As described above, each bounding box edge can be defined by a pair of corners (each corner is defined by a pair of corner coordinates). To determine the orientation of a given bounding box edge, system 210 first calculates the angle (θ) of the bounding box edge, for example, according to the following:
[0152] If x1 = x2: θ = 90°;
[0153] otherwise:
[0154] θ is then normalized, so its value is in the range [-180, 180], for example, according to the equation θ = θ - 360° * floor((θ + 180°) / 360°).
[0155] in,
[0156] (x1, y1) = the coordinates of a corner of the bounding box edge;
[0157] (x2, y2) = the coordinates of another corner of the bounding box edge.
[0158] Therefore, the calculated angle θ represents the angle (tilt angle) between the edge of the bounding box and the positive x-axis.
[0159] System 210 calculates the orientation based on the edge angle θ. According to the calculation above, the orientation is a value between -180 degrees and 180 degrees.
[0160] 0°<|θ|≤45°→Horizontally oriented bounding box edge;
[0161] 45°<|θ|≤90°→ Vertically oriented bounding box edge;
[0162] 90°<|θ|≤135°→ Vertically oriented boundary box edge;
[0163] 135°<|θ|≤180°→Horizontally oriented bounding box edge.
[0164] At 508, system 210 selects the next unprocessed bounding box edge. The bounding box edges of the selected elements can be processed in any order (e.g., left, right, top, bottom, or any other order).
[0165] At position 510, system 210 selects the next unprocessed bleed of the corresponding orientation. A given bounding box edge will have two bleeds of corresponding orientation: top and bottom (i.e., horizontal) bleeds for horizontally oriented bounding box edges; and left and right (i.e., vertical) bleeds for vertically oriented bounding box edges. The two bleeds of corresponding orientation for a given bounding box edge can be processed in either order.
[0166] Therefore, after 510, an edge / bleed pair has been selected (the edge / bleed pair includes a specific edge of the element's bounding box (or the element itself) and a specific bleed of the page). System 210 then proceeds to determine whether the element should be extended using the extend method. In this case, system 210 initially follows the corner extend method 600 (see below). Figure 6 (Description) Handles edge / bleed pairs. If the corner extension method applies (and the element is extended accordingly), processing proceeds to 512. If the corner extension method does not apply, system 210 follows the distance extension method 800 (see below). Figure 8 (Description) Handles bounding box edges / bleed pairs. Processing proceeds to step 512 when the distance extension method has finished processing (regardless of whether the element has been extended).
[0167] Therefore, at 512, the currently selected edge / bleed pair has been processed according to one or both extension methods (in this example) (and may have been adjusted by one of the extension methods, or may not have been adjusted). System 210 then determines whether there is an unprocessed corresponding orientation bleed for the currently selected edge. If there is an unprocessed corresponding orientation bleed for the currently selected edge, processing returns to 510, where the unprocessed corresponding orientation bleed of the current bounding box edge is selected. If both corresponding orientation bleeds of the edge have been processed, the processing of the current bounding box edge is complete, and processing proceeds to 514.
[0168] At 514, system 210 determines whether the currently selected element has any unprocessed bounding box edges. If one or more unprocessed bounding box edges exist, processing returns to 508 to select the next unprocessed bounding box edge. If not, and all four edges have been processed, processing of the currently selected element is complete, and processing proceeds to 516.
[0169] At 516, system 210 determines whether any eligible elements have not been processed. If so, processing returns to 504 to select the next eligible element to process. If not, and in this example, processing proceeds to design approval process 1000. Figure 10 ) of 1002.
[0170] Corner extension method
[0171] Turning Figure 6 The description will be processed according to the corner extension method 600 to handle bounding box edges / bleed pairs.
[0172] In this section, the reference to “edge” refers to the edge of the bounding box selected in 508, and the reference to “bleed” refers to the bleed selected in 510, which, as mentioned above, has an orientation (horizontal or vertical) corresponding to the orientation of the edge.
[0173] At 602, system 210 determines the focal corner of the edge. The focal corner is the corner inside the page and at the edge furthest or equal to the furthest distance from the bleed (e.g., the outer edge of the bleed).
[0174] For vertically oriented edge / bleed pairs, the focal corner is the corner whose x-coordinate is farthest from the x-coordinate of the bleed's outer coordinate. For horizontally oriented edge / bleed pairs, the focal corner is the corner whose y-coordinate is farthest from the x-coordinate of the bleed's outer coordinate.
[0175] If the edge is parallel to the bleed (and the corner is equidistant from the bleed), then any corner can be chosen as the focal corner.
[0176] At position 604, system 210 determines whether the focus corner (determined at position 602) is within the page area. Using the coordinate system described above, system 210 can determine that the focus corner is on the page if the following evaluation is true:
[0177] (Left bleed external coordinates <= focal corner x coordinates <= right bleed external coordinates) and
[0178] (The y-coordinate of the outer edge of the top bleed is less than or equal to the y-coordinate of the focal corner, which is less than or equal to the y-coordinate of the outer edge of the bottom bleed).
[0179] If the focus corner is not on the page, system 210 determines that extending the element via the corner method is inappropriate and processes it in error 802. Figure 8 Proceed to extend using the distance method.
[0180] If the focus is on the corner of the page, the process proceeds to step 606.
[0181] At position 606, system 210 calculates the distance from the outer bleed to the focal corner. This distance is measured along the bleed's transverse axis, specifically along a line perpendicular to the outer edge of the bleed and connecting the outer edge of the current bleed region to the focal corner. This can be calculated as follows:
[0182] Bleeding Distance from external bleeding to the focal corner Left side x-coordinate of the focal corner — coordinates of the outer edge of the left bleed right side Right-side bleeding external coordinates—x-coordinate of the focal corner top y-coordinate of the focal corner — coordinate outside the top bleed bottom Bottom bleed outer coordinates - y-coordinate of the focal corner
[0183] At 608, system 210 determines (calculated at 606) whether the distance from the outer bleed to the focal corner exceeds a defined corner separation threshold distance. In this example, the corner separation threshold distance is set to twice the bleed width (e.g., 6 mm if the bleed width is 3 mm). However, alternative threshold distances can be used.
[0184] If the distance from the outer bleed to the focal corner exceeds the defined corner separation threshold distance, then system 210 determines that extending the element via the corner method is inappropriate, and at 802 ( Figure 8 ) Handle the extension of the distance method to move forward.
[0185] If the distance from the outer bleeding edge to the focal corner does not exceed the defined corner separation threshold, the processing continues to 610.
[0186] At position 610, system 210 calculates the new position of the focus corner. In this example, the new position is the location of the focus corner along a line perpendicular to the edge of the bounding box and passing through the focus corner.
[0187] The adjacent bounding box edges are the edges of the bounding box extending from the focal corner, not the edge of the currently being processed bounding box. For example:
[0188] Bounding box edge being processed Focus Corner Adjacent bounding box edges Left or right top top Left or right bottom bottom Top or bottom Left side Left side Top or bottom right side right side
[0189] The new position can be calculated using linear interpolation, for example:
[0190]
[0191] In this equation, (x, y) are the x / y coordinates of the new corner position. When processing a left bleed, x = the coordinate outside the left bleed, and the above equation is solved with respect to y; when processing a right bleed, x = the coordinate outside the right bleed, and the above equation is solved with respect to y; when processing a top bleed, y = the coordinate outside the top bleed, and the above equation is solved with respect to x; when processing a bottom bleed, x = the coordinate outside the bottom bleed, and the above equation is solved with respect to y. The final coordinates can be rounded up / down to the nearest integer coordinate outside the bleed.
[0192] (x1, y1) are the x / y coordinates of the adjacent corner. An adjacent corner is the bounding box corner opposite the focal corner on the edge of the adjacent bounding box (as described above). For example:
[0193] edge farthest corner Adjacent corners Left side top Top right Left side bottom Bottom right top Left side Bottom left top right side Bottom right right side top Top left right side bottom Bottom left bottom Left side Top left bottom right side Top right
[0194] (x2, y2) are the x / y coordinates of the current position of the farthest corner.
[0195] At position 612, system 210 calculates the extension distance (also known as the corner extension method extension distance) based on the new focal corner location. The corner extension method extension distance is the distance the lateral edge needs to extend to the outer coordinates of the bleed. The extension distance (d) can be calculated according to the following equation:
[0196]
[0197] in,
[0198] (x1, y1) are the x / y coordinates of the focal corner;
[0199] (x2, y2) are the x / y coordinates of the new focal corner (calculated at 610).
[0200] At 614, system 210 extends the element by extending the distance based on the corner extension method calculated at 612.
[0201] When the element in question is rectangular (or marked as extendable in a single dimension (e.g., by the extension axis marker as described above), system 210 extrapolates the element, resizing it so that the focus corner just extends beyond the outer edge of the bleed. In other words, the size of the element's bounding box (and the element itself) is adjusted to a newly calculated dimension around the anchor point. See below for reference. Figure 8 Describe an example of an element that extends in this way.
[0202] This extrapolation can be performed in various ways, such as by using functions provided by image resizing / scaling libraries.
[0203] When the element in question is marked as needing to be extended in both dimensions (e.g., by extension axis markers as described above, which are set because the aspect ratio of the element should be maintained), system 210 extrapolates the element by applying the same scaling factor to the edges of the element's bounding box to uniformly scale the element.
[0204] If the element size is adjusted at position 614, the processing continues up to position 512. Figure 5 In this case, system 210 does not need to handle edge / bleed pairs according to the distance extension method.
[0205] Corner extension method example
[0206] Figure 7 The drawing A, B, and C of page 700 and element 702 processed according to the corner extension method 600 described above are provided.
[0207] In relation to Figure 7 In the provided example: the edge of the edge / bleed pair is the right (vertically oriented) edge 704; the bleed of the edge / bleed pair is the right bleed 706. As shown, the portion 708 of element 702 facing the bottom of edge 704 extends into the bleed 706. However, facing the top of edge 704, the element does not extend into the bleed 706, which creates an unfilled area 710 between the inner edge of the bleed and element 702.
[0208] At 602, system 210 determines the focus corner of the edge / bleed pair as the top right corner 712, and at 604, the focus corner is on page 700.
[0209] At position 606, system 210 calculates the distance from the external bleed to the focal corner, such as... Figure 7 Arrow 714 in B indicates that the distance is measured along line 714, which is horizontal (relative to the right bleed 706, which is vertically oriented).
[0210] At point 608, system 210 determines that the distance from the external hemorrhage to the focal corner is within the corner separation threshold distance.
[0211] At position 610, system 210 calculates the new focus corner position 716. In this example, the lateral edge of the focus corner is the top edge 718 of the bounding box. It can be seen that the new focus corner position 716 lies on the line defined by the lateral edge 718 and just beyond the outer edge of the bleed 704.
[0212] At position 612, system 210 calculates the extension distance 720, which is the distance between the original position 712 and the new position 716 of the focal corner.
[0213] At 614, system 210 adjusts the size of element 702. In this example, element 702 extends into the shadow area 722. This is achieved by extending the lateral edges of elements (or element bounding boxes) 718 and 724 by a distance of 720, so that the focus corner is just outside the outer edge of the bleed, i.e., at the new position 716.
[0214] Distance extension method
[0215] Turning Figure 8 The description will handle bounding box edges / bleed pairs according to the distance extension method.
[0216] In this section, the reference to “edge” refers to the edge of the bounding box selected at 508, and the reference to “bleed” refers to the bleed selected at 510.
[0217] At 802, system 210 determines whether at least one end of the bleeding is (in this case) outside the edge (in an alternative embodiment, it determines whether at least one of the ends that may be bleeding is on the edge). Using the coordinate system described above, system 210 can determine this by initially calculating the value v for each bleeding end according to the following equation:
[0218] v=x.(y1-y2)+y.(x2-x1)+(x1y2-x2y1);
[0219] in,
[0220] (x, y) = x / y coordinates of the bleeding end;
[0221] (x1, y1) = the x / y coordinates of the first (e.g., top or left) corner of the edge;
[0222] (x2, y2) = the x / y coordinates of the second (e.g., top or left) corner of the edge.
[0223] In this example, the "first" corner (x1, y1) and the "second" corner (x2, y2) are in clockwise order. For example, for the top edge, the corners are the top left and then the top right.
[0224] System 210 then determines the sign of the calculated value v for each bleed end. For a given bleed end, a positive value v indicates that the end is inside the edge. Conversely, for a given bleed end, a negative value v indicates that the end is outside the edge.
[0225] If neither of the two bleed ends is outside the edge, then system 210 determines that extending the element by distance is inappropriate (because the edge already meets the bleed requirement), and the process returns to 512. Figure 5 If one or both of the bleeding ends are outside the element edge (or, depending on the implementation), the process proceeds to step 806.
[0226] At point 804, system 210 calculates the distance from the edge to the bleed end. The distance from the edge to the bleed end is measured along a line perpendicular to the edge and is the distance between the edge and the farthest bleed end outside the edge. The distance from the edge to the bleed end for a given end can be calculated using the formula for the perpendicular distance from a point to a line.
[0227] When only one bleed end is outside the edge, the distance from the edge to the bleed end will be the perpendicular distance between the edge and the bleed end. When both bleed ends are outside the edge, the distances from the edges of both ends to the bleed ends are calculated, and the maximum distance is used. If the edge is parallel to the bleed, the two distances will be the same.
[0228] At 806, system 210 determines whether the distance from the edge to the end of the bleed (calculated at 806) exceeds a defined edge separation threshold distance. In one embodiment, the defined edge separation threshold distance is calculated as 2.5 times the bleed width (e.g., 7.5 mm for a 3 mm bleed). Alternative threshold distances may be used.
[0229] If the distance from the edge to the end of the bleeding exceeds the edge separation threshold distance, system 210 determines that extending the element by distance is inappropriate and returns the process to 512. Figure 5 If the distance from the edge to the end of the bleeding is within the edge separation threshold, the processing proceeds to step 808.
[0230] At 808, system 210 adjusts the size of the element in question based on the distance from the edge to the end of the bleeding calculated at 806 (which may be referred to as the distance extension method extension distance). The adjustment of the element size is the same as operation 614 described above.
[0231] Process and then return to 512 ( Figure 5 ).
[0232] Example of distance extension method
[0233] Figure 9 The drawing A, B, and C of page 900 and element 902 processed according to the distance extension method 900 described above are provided.
[0234] In relation to Figure 9 In the provided example: the edge of the edge / bleed pair is the right (vertically oriented) edge 904; the bleed of the edge / bleed pair is the right bleed 906. As shown, the portion 908 of element 902 facing the bottom of edge 904 extends into the bleed 906. However, facing the top of edge 904, the element does not extend into the bleed 906, creating an unfilled area 910 between the inner edge of the bleed and element 902.
[0235] At 802, system 210 determines that the bleeding end 912 (top right side) is outside edge 904.
[0236] At 804, system 21 0 calculates the distance 914 from the edge to the bleed end. In this case, there is only one bleed end 912 outside the edge 904.
[0237] At point 806, system 210 determines that the distance from the edge to the end of the bleeding is within the edge separation threshold.
[0238] At 808, system 210 adjusts the size of element 902 by extending the distance from its edge to the end of the bleed. In this example, element 902 is resized to extend into the shadow area 916. This is achieved by extending the lateral edges of elements (or element bounding boxes) 918 and 920 by a distance of 914.
[0239] Design page approval
[0240] In this embodiment, once all relevant edge / bleed pairs have been processed, system 210 executes the design page approval process 1000. Figure 10 ).
[0241] In an alternative embodiment, no approval process is performed; that is, element extension is simply implemented without preview or user input. In this case, and as an example, if an automatic bleed correction process is triggered as part of a printing operation, system 210 will print / send the design page for printing after all eligible elements have been processed and any extensions have been made (i.e., after 516).
[0242] However, in this embodiment, at 1002, system 210 determines whether one or more elements of the page were extended during process 500. If no elements were extended, the process proceeds to 1016, where system 210 completes the design. In some implementations, a message indicating that no bleed correction was identified may be displayed to the user.
[0243] If one or more elements on the page are extended, processing proceeds to step 1004. At step 1004, system 210 generates and causes the display of the design page approval user interface. See below for reference. Figure 11 An example describing such an interface.
[0244] Generally, the preview UI (user interface) displays the element extensions that have been calculated / executed and allows the user to accept or reject the extensions.
[0245] At position 1006, system 210 selects one or more elements that have already been extended. Selection can be automatic and / or responsive to user input.
[0246] For example, when initially displaying the preview UI, system 210 can be configured to automatically select: all element extensions that have been made; all extensions that have been made to a single element (e.g., the last element with at least one extension); a single extension that has been made to a single element; or alternative extensions / multiple extensions.
[0247] System 210 can also (or alternatively) be configured to select one or more element extensions in response to user input. Generally, such user input may include user input to select: all extensions; all extensions of one or more specific elements; one or more extensions of one or more specific elements; all extensions associated with one or more specific bleeding points.
[0248] For example, system 210 can be configured to select one or more element extensions in response to user input, such as: a direct element selection (e.g., a click or touchscreen contact at the location where the element is displayed), resulting in the selection of all extensions associated with the selected element; a direct element extension selection (e.g., a click or touchscreen contact at the location where a particular element extension is displayed), resulting in the selection of that particular extension; activation of all extension controls, resulting in the selection of all extension elements (and all their extensions); activation of the next or previous extension element control, resulting in the selection of all extensions of the next or previous element (the next and previous are determined in any suitable order (e.g., element depth order)); activation of the next or previous element extension control, resulting in the selection of the next or previous extension of a particular element (the next and previous extensions are determined in any suitable order, which applies only when a particular element has multiple extensions); activation of the bleed control to select all extensions, resulting in the selection of all element extensions with respect to a particular bleed; and / or other user input.
[0249] At 1008, system 210 displays the extension of the (multiple) elements selected at 1006.
[0250] System 210 visually distinguishes the selected element extension (or extension group) from the original element(s). This can be done in various ways. For example, system 210 can display an animation (or repeating animation) of the extended original element. Alternatively, system 210 can display the extended area (or its outline) of the element in a way that visually distinguishes it from the original / unextended area of the element, for example, by using color, transparency, edge thickness / color / style, or any other visual difference. As yet another example, a "before" and "after" control can be provided to the user—activating the "before" control causes system 210 to display the selected original, unextended element, and activating the "after" control causes system 210 to display the selected element extension. Alternative mechanisms can be used to visually distinguish the original element from the element extension.
[0251] At 1010, system 210 receives user input and determines the input type. The relevant user input is: rejecting input (e.g., via a "reject extension" control), in which case processing proceeds to 1012; accepting input (e.g., via a "accept extension" control), in which case processing proceeds to 1014; or finally, designing the page input, in which case processing proceeds to 1016.
[0252] At 1012, system 210 rejects the selected element extension—for example, by marking the extension as one that cannot be included in the final design. Processing then returns to 1010 to await further input.
[0253] At 1014, system 210 accepts the selected element extension—for example, by marking the extension as one that can be included in the final design. System 210 can also display any accepted extensions in the preview user interface as if they were part of the original design.
[0254] At 1016, system 210 completes the design by merging all accepted element extensions and discarding all rejected element extensions. Processing then returns to 1018 to await further input.
[0255] At point 1018, the design page is complete. In this particular example, system 210 prints the design page (or causes the design page to be printed) at point 1018. However, alternative actions are possible, depending on the context. For example, system 210 could alternatively (or additionally): save the design page; share the design page; publish the design page; and / or perform other actions regarding the final design page.
[0256] In the case of a design with multiple pages, system 210 can repeat process 500 (and / or design page approval process 1000) for each page of the design.
[0257] As an example of the design page approval process 1000, system 102 can: determine that element extensions have been made (at 1002); display a preview UI (at 1004), where all extensions are automatically selected (at 1006) and displayed (at 1008); receive final design input (at 1010); complete the design by merging all extensions (at 1016); and print the final design (at 1018).
[0258] Example design page approval user interface
[0259] Figure 11 A sample design page was provided for UI approval 1100.
[0260] In this particular example, the preview UI 110 is similar to the design creation interface 400 described above, except that it displays the design preview pane 1104 instead of the design creation pane 402, and the preview control pane 1106 instead of the design element search and selection pane 410.
[0261] The design preview pane 1104 is used to display the design page 1106 that is being previewed.
[0262] The preview control panel 1104 provides user interface controls for the page approval process. In this example, the UI controls include: a control 1108 to display all elements (its activation causes all extensions of all elements to be selected and displayed in the preview pane 1104); a control 1110 to display the next element (its activation causes all extensions of the next element to be selected and displayed in the preview pane 1104); controls 1112R, 1112L, 1112T, and 1112B to display bleed (their activation causes all extensions associated with the selected bleed to be displayed); a control 1114 to confirm the extension (its activation causes the selected / displayed extension to be confirmed); a control 1116 to reject the extension (its activation causes the selected / displayed extension to be rejected); and a control 1118 to finalize the design (its activation causes the design to be finalized). Additional / fewer / alternative controls may be provided.
[0263] exist Figure 11 In the example, a single extension (extension 1120 of element 1122) has been selected and displayed. In this example, extension 1120 is visually distinguished from the original element by a color overlay effect (e.g., red or other color overlay), which is represented by a shadow in this example. Additionally, preview pane 114 displays the inner bleed edges (via dashed box 1124), allowing the user to determine where these edges are and how the final trimmed page will appear.
[0264] The flowcharts shown in the accompanying figures and described above define operations in a specific order to explain various features. In some cases, the operations described and shown can be performed in a different order than those shown / described; one or more operations can be combined into a single operation; a single operation can be divided into multiple separate operations; and / or the functionality implemented by one or more described / shown operations can be implemented by one or more alternative operations. Furthermore, the function points / processes of a given flowchart operation can be performed by different systems or applications.
[0265] Unless the context requires it, the terms "first," "second," etc., are used to distinguish various elements and features, rather than in an ordinal sense. For example, a first edge bleed pair can be referred to as a second edge bleed pair, and similarly, a second edge bleed pair can be referred to as a first edge bleed pair, without deviating from the range of examples of various descriptions.
[0266] Unless otherwise stated, the terms “comprising” and “including” (and their variations, such as “including,” “containing,” “contains,” “included,” “included,” “included,” etc.) are used inclusively and do not exclude further features, components, wholes, steps, or elements.
[0267] It should be understood that the embodiments disclosed and defined in this specification are extended to alternative combinations of two or more individual features mentioned in or apparent from the text or drawings. All these different combinations constitute alternative embodiments of this disclosure.
[0268] This specification describes various embodiments with reference to numerous specific details, which may vary depending on the implementation. Any limitation, element, property, feature, advantage, or attribute not expressly stated in the claims should not be considered as an essential or necessary feature. Therefore, the specification and drawings are to be considered illustrative rather than restrictive.
Claims
1. A computer-implemented method, comprising: (a) The processing unit selects elements on the design page; (b) The processing unit determines whether the size of the element should be adjusted, the determination being based on the position of a specific edge associated with the element relative to a specific bleed defined for the design page, wherein the specific bleed has an orientation corresponding to the orientation of the specific edge; as well as (c) In response to determining that the size of the element should be adjusted, the size of the element is adjusted such that the portion of the design page covered by the element is larger than the portion originally covered by the element.
2. The computer-implemented method according to claim 1 further includes: The processing unit determines multiple edge bleed pairs with respect to the element, each edge bleed pair including a specific edge of the element's edge set associated with the element and a specific bleed of the design page; and The processing unit performs steps (b) and (c) for each edge bleeding pair.
3. The computer-implemented method according to claim 1, wherein, Adjusting the size of the element includes: adjusting the size of the element such that the portion of the specific bleed covered by the element is larger than the portion originally covered by the element.
4. The computer-implemented method according to claim 1, wherein, Determining that the size of the element should be adjusted includes determining: The focal corner of the specific edge of the element is within the page area of the page; and The distance between the focal corner and the outer edge of the specific bleed is within the corner separation threshold distance.
5. The computer-implemented method according to claim 4, wherein, Adjusting the size of the element includes: adjusting the size of the element such that the focal corner is on or outside the outer edge of the specific bleed.
6. The computer-implemented method of claim 5, wherein adjusting the size of the element such that the focal corner is on or outside the outer edge of the particular bleed comprises: Calculate a new focal corner location on or outside the outer edge of the specific bleeding point, wherein the new focal corner location is located on a line passing through the focal corner and perpendicular to the specific edge; and Adjust the size of the element based on the new focal corner position.
7. The computer-implemented method of claim 4, wherein the focal corner is a corner of the specific edge within the page area, and is a corner of the specific edge at the furthest or equal-farthest distance from the outer edge of the specific bleed.
8. The computer-implemented method of claim 1, wherein determining whether the size of the element should be adjusted includes determining: The specific bleeding point ends on or outside the specific edge; and The distance between the specific edge and the end of the specific hemorrhage is within a threshold distance.
9. The computer-implemented method of claim 8, wherein the distance between the specific edge and the end of the specific bleed is calculated as the distance between the specific edge and the end of the specific bleed measured along a line perpendicular to the specific edge.
10. The computer-implemented method of claim 8, wherein adjusting the size of the element comprises: Adjust the size of the element so that the specific edge is on or outside the outer edge of the specific bleed.
11. The computer-implemented method of claim 1, wherein the particular edge associated with the element is the edge of a rectangular bounding box defining the element.
12. The computer-implemented method of claim 1, wherein the specific edge associated with the element is an edge of the element.
13. The computer-implemented method of claim 2, wherein determining the plurality of edge bleed pairs comprises determining a first edge bleed pair by means of the following steps: Select a first edge from the set of element edges as a specific edge of the first edge bleed pair; and Select the first bleed of the design page as the specific bleed of the first edge bleed pair.
14. The computer-implemented method of claim 2, wherein determining the plurality of edge bleed pairs comprises: Determine the first edge bleed pair, which includes the first edge of the element edge set and the first bleed of the design page; Determine a second edge bleed pair that includes the second edge of the element edge set and the second bleed of the design page; Determine the third edge bleed pair, which includes the third edge of the element edge set and the third bleed of the design page; as well as Determine the fourth edge bleed pair, which includes the fourth edge of the element edge set and the fourth bleed of the design page.
15. The computer-implemented method according to claim 14, wherein: The first edge, the second edge, the first bleed, and the second bleed are vertically oriented; and The third edge, the fourth edge, the third bleed, and the fourth bleed are horizontally oriented.
16. The computer-implemented method according to claim 1, wherein, The orientation of the specific edge and the orientation of the specific bleeding are corresponding.
17. A computer processing system, comprising: Processing unit; Communication interface; and A non-transitory computer-readable storage medium storing instructions that, when executed by the processing unit, cause the processing unit to perform a method comprising the following steps: Select elements on the design page; Determine whether the size of the element should be adjusted, the determination being based on the position of a specific edge associated with the element relative to a specific bleed defined for the design page, wherein the specific bleed has an orientation corresponding to the orientation of the specific edge; as well as In response to determining that the element should be resized, the element is resized such that the portion of the design page covered by the element is larger than the portion originally covered by the element.
18. The computer processing system of claim 17, wherein the sequence of instructions, when executed by the processing unit, causes the processing unit to further perform the method of any one of claims 2 to 16.
19. A processor-readable, non-transitory storage medium storing instructions executable by one or more processors to cause the one or more processors to perform a method comprising the following steps: Select elements on the design page; Determine whether the size of the element should be adjusted, the determination being based on the position of a specific edge associated with the element relative to a specific bleed defined for the design page, wherein the specific bleed has an orientation corresponding to the orientation of the specific edge; as well as In response to determining that the element should be resized, the element is resized such that the portion of the design page covered by the element is larger than the portion originally covered by the element.
20. The non-transitory storage medium according to claim 19, wherein, The storage medium stores instructions executable by the one or more processors to cause the one or more processors to further perform the method according to any one of claims 2 to 16.
Citation Information
Patent Citations
Information processing apparatus, information processing method, and program
CN107562390A
A method for automatically correcting a pre-printing manuscript layout
CN109901804A
