The present invention relates to the generation of documents, for example by the rendering of documents in a digital printing system.
Known publishing solutions operate either by using a known off set printing press, or by using a digital printing press. With a conventional off set printing press, a master document needs to be copied and then the run of copies are printed off. Known digital printing presses have an advantage that successive individual print items which are different to each other can be printed without interrupting the work flow, i.e. the logical sequence of steps required to perform a printing operation. With the known digital printing press, a digital master document is provided electronically, and the number of print items in a print run is variable. Small print runs from one print item output can be accommodated.
Known digital printing presses are capable of printing a print run comprising a plurality of print items, wherein individual print items within the print run are different to each other.
Referring to
The introduction of digital printing presses enables creation of more personalised documents, with an increasingly large amount of variable data. This changes the way in which high quality full colour documents are designed, and has lead printing press producers to introduce a new standard to help graphic artists, marketing managers, and databases administrators to integrate their job in order to obtain the highly customised, variable documents capable of being produced by modern printing presses.
Two known formats currently dominate, these being PPML (Personalised Printing Mark-up Language), and PPML/T (PPML templating). The adoption of these two formats helps the generation of variable data print (VDP) work flows, where design templates and data can be shared between the different persons involved in printing.
This technology also enables high re-use of assets and the possibility for the Print Shop (print service provider—PSP) to consume partially fulfilled documents and replace the variable elements very close to the actual rasterizing process.
The PPML document comprises one or a plurality of pages. Each page has one or more “copy holes” which can be positioned by a user on the page. Each copy hole is defined by a width a, height, and a 2-dimensional position on a page.
Inside each copy hole there is placed content, for example text content comprising a plurality of lines of text. Consequently, in known PPML work flows, everything is static. All aspects of layout and content are pre-determined and are positioned on the page, including the copy holes, and the content within the copy holes. A graphic artist designs the PPML page, and then inserts static text and/or objects within the copy holes using a conventional graphic artist package, for example the known ‘Express’ tool from QUARK.
In contrast, the known language extensible style sheet formatting objects XSL-FO belongs to a class of languages known as document description languages, DDL, which are languages which describe whole documents, rather than individual pages. In XSL-FO, there is no concept of one page, but there is a concept of a sequence of pages making up a document, and there is also a concept of where the content will be positioned within a page sequence.
Known rendering engines are not capable of completing additional blank spaces in documents.
According to a first aspect of the present invention, there is provided a method of generating a document comprising:
receiving a document template and a set of base content items for inclusion in said document;
rendering an initial set of said base content items;
determining an extent of any void spaces in said document after rendering of said base content items; and
depending upon an extent of said void spaces, inserting a further is additional content item into said document.
According to a second aspect of the present invention, there is provided an apparatus for generating a rendered document, comprising:
a rendering engine operable for rendering said document;
a component operable for identifying void spaces in said document;
a component capable of supplying at least one additional content item and capable of incorporating said at least one additional content item into said document; wherein
said rendering engine is operable for rendering said document, inclusive of said at least one additional content item.
According to a third aspect of the present invention, there is provided a method of generating a print run, said method comprising:
generating a base document in a document description language as a result of applying a set of pre-rendering rules and a set of variable data to a document model;
identifying at least one void area in said base document;
generating information describing a location of said at least one void area;
applying a set of rules which assign content to said at least one void area;
obtaining at least one additional content item in response to a said identified at least one void area; and
generating a rendered document incorporating said at least one additional content item into said base document.
According to a fourth aspect of the present invention, there is provided a digital press comprising:
a rendering engine capable of identifying at least one void space within a document received by said rendering engine;
means for generating information describing a location of said void space;
means for applying a set of rules which assign additional content to said void area; and
means for rendering said base document, incorporating said additional content items, to produce an output rendered document.
According to a fifth aspect of the present invention, there is provided a rendering engine comprising:
means for identifying content items in a copy flow, and converting said copy items to objects;
storage means for storing said plurality of objects;
means for arranging said objects into an object structure in which a location of each object in said storage means is recorded;
means for determining a page layout of said plurality of objects in a plurality of pages of said copy flow; and
an interface means for allowing an external application to view said page layout, and to modify said page layout.
According to a sixth aspect of the present invention, there is provided a digital printing system comprising:
a pre-rendering rule engine capable of applying a set of pre-rendering rules to a document template, said pre-rendering rules operable for incorporating a set of base content data into said document template to produce a document in a document description language;
a rendering engine for rendering said document;
a post rendering rule engine operable for applying a set of additional content items to said document template, according to a set post rendering rules; and
a rendering engine for rendering at least one document according to said document template, inclusive of said base content items and said additional content items added as a result of said post rendering rules, to produce a rendered document.
Other aspects of the invention are as recited herein.
For a better understanding of the invention and to show how the same may be carried into effect, there will now be described by way of example only, specific embodiments, methods and processes according to the present invention with reference to the accompanying drawings in which:
a to 5c illustrates schematically a content flow comprising a plurality of pages, containing variable content in which a first page A is filled with content, and a second page B1, B2, B3, respectively is repeated, each time having varying amounts of content, and which may include void spaces;
There will now be described by way of example a specific mode contemplated by the inventors. In the following description numerous specific details are set forth in order to provide a thorough understanding. It will be apparent however, to one skilled in the art, that the present invention may be practiced without limitation to these specific details. In other instances, well known methods and structures have not been described in detail so as not to unnecessarily obscure the description.
Referring to
Suppose that the first page 100 is to be used first, and the second page 101 is to be repeated several times.
Referring to
A flow of copy comprises a plurality of documents, each of one or more pages, in a sequence. The copy flow may be specified by a document template, which applies to all documents in the flow, the document template specifying one or more static copy holes for including static content items which repeat from document to document within the flow, and one or more variable copy holes, which contain variable content which varies from document to document within the copy flow.
According to an embodiment of the present invention, a run of documents can be printed, wherein each document within a print run has a base content which may include both common types of content; static content which is common to, and re-occurs in different documents in the print run; and variable content which differs from document to document. Any void spaces in a document may be completed by inserting pre-determined items of additional content; being either static content, variable content, or a combination of both. The additional static and/or variable content for a particular document is determined by a set of rules which are applied after rendering the document, and which match the additional (static and/or variable) content to the existing base content of the document.
Referring to
Referring to
Referring to
Referring to
For an XSL-FO document consisting of a fixed content page A, and one or more variable content pages B1, B2 . . . Bn, under some circumstances the rendered variable content can result in blank document pages, or document pages having only a small amount of content, leaving void spaces in the page.
Transactional documents have unpredictable lengths, and can span across an undetermined number of pages. However, it is important to be able to use any available space.
Usually, documents are published using an even number of pages, so the amount of space available which potentially arises on each document may be more than one page. By utilising this space, the document can be completed by addition of extra content, such as advertisements or other business information.
When dealing with high quality documents, such as those produced by digital printing press, many customers wish to avoid having empty space in a document, since this affects the presentation of a document, and represents a wasted opportunity for fully utilizing the document. Operators of digital printing presses often charge a cost per page, so the customer instructing the print run will pay for empty pages as well as pages which have a full amount of content. Further, customers also wish to have pages which are in full duplex, for example so that the pages can form a leaflet having printing on both sides of the pages.
Therefore, the rendering engine is modified to provide information on:
1. which page of a document a content terminates; and
2. a position on the page at which the content terminates.
Referring to
The post rendering rules may be situated in a marketing manager tool as described with reference to
An example of a post rendering rule may be as follows:
“Perform rendering on variable (dynamic) content.”
“If, after the rendering, there is available space in the vertical page direction having dimensions between X0 and X1, then insert static content item A.”
The static content item A, can be selected such that it fits within a height in the range X0 to X1 on a page.
Another example of a rule may be:
“If the remaining space unfilled by content is less than X0, then leave as a void.”
The above basic post-rendering rules can be combined with requirements which are specific to a print customer. For example, where the documents are bank statements are credit card statements, the print customer (a bank, or a credit card services company) may wish to analyse the spending patterns for each account holder, and target their content to a service aimed at a particular spending pattern. For example, where a credit card statement shows a significant expenditure on clothing, the bank or credit card service provider may wish to include content in a void space on the statement for a particular customer, where the content relates to a promotional offer for a particular clothing retailer,
The void spaces in a document, can be used for content which is aimed at a particular customer or type of customer, where the type of content is specified by a set of post-rendering rules.
A further example of a post-rendering rule, which is customer specific to a particular print customer may be as follows:
“If account shows spending of more than £500.00, insert content item B.”
Content type B may comprise an object specifying that a customer has been awarded bonus points. For example:
“Your current level of spending entitles you to 500 free bonus points, in addition to your normal bonus points. Bonus points can be spent on any of the wide range of goods and services in our bonus catalogue.”
Another example may be to provide a detachable voucher, for a fixed amount, to be used at a particular retail outlet. In that example the quality of printing must be very high, to avoid forgery of the vouchers, so this type of content is well suited to a digital printing press.
Each document in a print run may contain:
The post-rendering rules may operate to select or specify pre-determined types of content items depending upon a type of information specified in the base content items. The post-rendering rules may, alternatively specify absence of content, i.e. no content is to be inserted.
Referring to
The rendering engine may be modified by means of API's which allow an external application to look inside the rendering engine, and apply modifications within a rendering process carried out by the rendering engine. Within a modified rendering engine 700, there is provided a component 701 for identifying objects in an XSL-FO flow; an object tree structure 702 for arranging the objects within a copy flow, in an arrangement whereby they can be easily identified and their location within an internal cache in the rendering engine is recorded; a layout area tree component 703 for arranging areas in documents into a tree structure 704 in which they can be easily referenced and identified; an interface 705 accessible by a client application 706, whereby the client application can insert content items into particular areas of documents in a content flow, according to a set of post-rendering rules; and an output component 707 which outputs a page description language output. The area layout tree 704 enables, for each page, a position of each object comprising an X, Y co-ordinate position, to be recorded as well as allowing a whole sequence of a plurality of pages to be set out.
The interface 705 enables an insight into the rendering engine to be made by client application 706, and for the client application to determine how the objects are laid out within a copy flow, and thereby to determine how much space will be left at the end of each page of a copy flow, and in each document in the copy flow.
The interface can be used for writing information to the layout area tree, as well as for reading information from the layout area tree. By changing the information in the layout area tree via the interface, client application 706 can add or delete content items from the copy flow, or change the position of content items within pages in the copy flow. Construction of the interface may be effected in a known programming language, as will be known to those skilled in the art.
The interface can also be used to provide information for identifying errors in layout of the copy flow, which can be checked by the client application, and if necessary, amendments to the layout can be made by the client application.
A graphic artist using a graphic artist authoring tool, generates a DTF flow, which is based upon XSL-FO. This enables a variable number of pages to be generated. A set of pre-rendering rules related to the rendering of the flow may be resident in a marketing manager tool. Further, a set of post-rendering rules can be applied, which allows incorporation of additional content to the document, depending on an amount of space which the base content will occupy in the rendered documents.
The rule engines can run either in a print shop, or in a computer entity in an enterprise outside the print shop, for example in a marketing manager tool.
Referring to
The digital printing system comprises features of a known digital press as will be understood by the persons skilled in art, and additionally, modifications as shown schematically in
The digital press of operates as follows. The rendering engine has been extended to interact with the post-rendering rule engine, which can create styled fragments on the fly which suit an available space. Post-rendering rules are written beforehand and produce the content using information such as the amount of space available, as well as the information related to the customer and/or products or services.
Optimization is carried out on the press side, and enables flexibility in optimization of utilization of space in a document, but requires the knowledge of customer information.
A set of pre-rendering rules 803 and a set of variable data 804 and a document model 805 are input into a pre-rendering rule engine 806. A document (in the example shown a transactional document) is generated based upon the rules applied by the pre rendering rule engine, and the variable data according to the document model which sets out the design of each document within a flow of documents. This results in an output document 807 (in this example a transactional document), which is received by rendering engine 801. The document 807 is in a document description language (DDL) for example, XSL-FO. The rendering engine 801 commences rendering of the document 807 output from the pre-rendering rule engine, and generates data describing an amount of unused void space in the document, specifying which page that space occurs on, as well as a spatial extent of the space. That information is received by post-rendering rule engine 802, which also receives additional variable data 804, and applies the additional variable data 801 to generate an additional content 809 (in the form of an XSL-FO fragment in the example shown), as a result of applying a set of post-rendering rules 808, according to the information received from the rendering engine 801 upon the amount of space left unused in the document pages. The post-rendering rule engine creates or selects a new content fragment to fill the available void representing unused space in the DDL document 807. The additional content 809 is input into the rendering engine 801, and incorporated into the DDL document to produce a complete rendered output document 810 which has the available space in the document optimally used.
Referring to
The second digital printing system comprises: a digital printing press 901 having a rendering engine 911; a post-rendering rule engine 900; a pre rendering rule engine 904; and a database 906 containing static content items and variable content items.
In the example
Post-rendering rule engine 900 notifies the pre-rendering rule engine 902 of a set of additional content items (also called herein fall-back fragments), which are to be used in the event that after rendering there are pages within each document with void spaces. The pre-rendering rule engine 902 incorporates in the output copy flow which it produces, links to the additional content items specified by the post-rendering rule engine according to a set of post-rendering rules 907.
Post-rendering rule engine 900 applies a set of post-rendering rules 907 to create and/or select a set of additional content items which may be used to fulfill available space under circumstances where documents are produced where the base content is of a size such as to produce void spaces within each document. The post-rendering rules may specify a range of individual additional content items 908-910, each having different sizes and occupying different areas within a document layout.
Rendering engine 911 commences rendering the DDL document received from the pre-rendering rule engine 902, at which point, any void spaces in the rendered documents become apparent.
According to the available void space in each document, the rendering engine selects one of the additional content items specified in the DDL document, in order to complete the rendering of each document, filling in any void spaces with an additional content item selected to be of a correct size for the particular void space in each document. Where a document has variable base content which results in no void spaces, or void spaces below a pre-determined size within the rendered document, no additional content item is included in the final rendered document by the rendering engine. However, in cases where the DDL document output from the pre-rendering rule engine, after rendering of the base content results in a void space, an appropriately sized pre-specified additional content item will be included by the rendering engine and rendered in the final rendered document, thereby producing a final rendered document, which includes one or more additional content items. The additional content items, are preferably static content items, that is content items which do not have a variable size. However in other specific methods, the additional content items may be of variable size, in which case an additional content item having a size which fits within a void space in a document is selected.
Referring to
The rendering engine 1000 commences rendering of a document 1001 specified in a document description language. The DDL document 1001 contains a base content, which when rendered results in a rendered electronic file illustrated graphically by the rendered document 1002 in
Referring to
Referring to
However, void spaces are not necessarily restricted to occur on the last page of the document, but in the general case, may appear anywhere in the document, on any page of a multi page document, and one or more appropriately sized additional content items may be selected from a range of pre-determined additional content items, to fit into any void spaces which result due to variations in the space occupied by variable base content specified within a document.
The specific embodiments and methods described herein describe a rendering engine which is modified so as to be able to expose a final layout of a rendered document, thereby identifying any void spaces which may occur in a final rendering of a base document. The base document can be modified by incorporation of additional content items prior to final rendering, by application of a set of post-rendering rules.
The post-rendering rules may apply variable content or static content, and the additional content maybe selected or generated to be specific to an information contained in the base content of the base document. The rendering engine is capable of exposing both a page location, a location within a page, and an area and/or size of any void which will occur in the rendered based document, before the document is finally rendered into an output document, and enabling those voids to be filled with additional content before the final document comprising the base content and the additional content is rendered to produce an output rendered flow.
Specific embodiments disclosed herein introduce a concept of post processing, rule based, style fragment generation which obtains from a rendering engine information regarding an amount of space left in a document, and completes the rendering with an appropriate fragment to complete the document rendering.
Number | Date | Country | Kind |
---|---|---|---|
0325478.6 | Oct 2003 | GB | national |