AU2017225006A1 - Use of PDL measurement properties to adjust scaling for optimised physical measurement - Google Patents
Use of PDL measurement properties to adjust scaling for optimised physical measurement Download PDFInfo
- Publication number
- AU2017225006A1 AU2017225006A1 AU2017225006A AU2017225006A AU2017225006A1 AU 2017225006 A1 AU2017225006 A1 AU 2017225006A1 AU 2017225006 A AU2017225006 A AU 2017225006A AU 2017225006 A AU2017225006 A AU 2017225006A AU 2017225006 A1 AU2017225006 A1 AU 2017225006A1
- Authority
- AU
- Australia
- Prior art keywords
- output device
- space
- pdl
- conversion factor
- graphical object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000005259 measurement Methods 0.000 title claims description 30
- 238000000053 physical method Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 100
- 230000009466 transformation Effects 0.000 claims abstract description 78
- 239000011159 matrix material Substances 0.000 claims abstract description 71
- 230000006870 function Effects 0.000 claims abstract description 12
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 39
- 238000012545 processing Methods 0.000 description 12
- 238000009877 rendering Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 229920000740 poly(D-lysine) polymer Polymers 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000001000 micrograph Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Landscapes
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
An aspect of the present disclosure provides a method (400) of reproducing a page description language (PDL) page (103) using an output device (104). The method (400) comprises receiving a PDL page (103) comprising a graphical object (302), the graphical 5 object (302) being associated with a first conversion factor relating a physical space to a user space of the PDL page (103). The method then determines (401) a scaling factor for the graphical object (302) based on a transformation matrix for converting the user space to an output device space of the output device (104), a user space unit of the user space, and an output device space unit of the output space. An adjustment value based on a function of the 10 first conversion factor and the scaling factor is then determined (404). The transformation matrix for the graphical object (302) is modified (405) based on the adjustment value and the modified transformation matrix is applied (406) to the graphical object (302) when reproducing the graphical object (302) on an output medium (105) of the output device (104). P273401_13572926_1
Description
USE OF PDL MEASUREMENT PROPERTIES TO ADJUST SCALING FOR OPTIMISED PHYSICAL MEASUREMENT TECHNICAL FIELD [0001] The present invention relates to documents formatted in a page description language (PDL), and in particular, relates to a method for scaling graphic objects in a PDL document for optimised manual or physical measurement and reproducing such a document.
BACKGROUND [0002] People in industries such as mapping, architecture, engineering, biomedical, geospatial, general schematic, electronics and others, by means of some software, author documents that include graphic objects that have measurable properties. Such graphic objects could be maps, plans, images of microscopic-scale objects, medical images, etc. Those dedicated software products typically allow the original author to associate a scale with those graphic objects. The purpose of the scale is to provide a conversion factor between a user space of a PDL document and the physical (real-world) space. In cases when a PDL document includes measurable graphic objects, there are typically graphical scale bars representing the conversion factors associated with such graphic objects. For example, a scale associated with a graphic object (e.g., a building) in a PDL document provides a conversion factor of 1 cm in the user space to 1 km in the physical space. The conversion factor means that 1 cm in the PDL document is equivalent to 1 km in the physical (real) world. Therefore, a building that is 1 cm high in the PDL document would be 1 km high in the physical world.
[0003] When a PDL document is reproduced on output media, the user space of the PDL document is transformed to an output device space of an output device that is reproducing the output media. Such a transformation is dependent on one or more scaling factors, which also apply to any conversion factors in the PDL document. The scaling factors may provide different scaling in the horizontal and vertical directions. By applying the scaling factors, a graphical object that is 1 cm long can be reproduced precisely as 1 cm regardless of the number of dots per inch in either direction. The scale bars printed on the output media can be used in determining manual or physical space measurements from the output medium by using a ruler or a pair of dividers after the document is rendered.
[0004] The user space is a coordinate system in a PDL document, where the coordinate system is measured in user space units. One user space unit is equivalent to a certain
P273401_13572926_l
2017225006 05 Sep 2017 measurement in physical unit (e.g., 1 user space unit is equivalent to 1/72 inch in a PDF document). Therefore, a graphical object in the PDF document having a length of 7200 user space units is a graphical object that is 100 inches long (which is obtained by multiplying the number of user space units with the size of one user space unit).
[0005] The output device space is a coordinate system in an output medium, where the coordinate system is measured in output device space units, e.g. pixel space.
[0006] The physical space is a coordinate system in the real world, where the coordinate system is measured in physical units. Examples of the physical units include cm, km, ft, and the like.
[0007] For ease of description hereinafter, the first conversion factor refers to the ratio between measurements in the user space and the physical space, while the second conversion factor refers to the ratio between measurements in the output device space and the physical space.
[0008] The scaling factor is a conversion ratio between the user space and the output device space. There may be different scaling factors for different directions (e.g., horizontal and vertical directions). When a PDL document is reproduced in an output medium, the user space is transformed to the output device space to enable an output device (e.g., a printer) to accurately reproduce graphical objects in the PDL document on the output medium. Such a transformation uses the scaling factor.
[0009] When the PDL document has a scale bar, it is important that the second conversion factor (i.e., the conversion factor provided by the printed scale bar) has a property of being easy to work with. That is, the scale bar is easily measured so that the size of a graphical object in the physical space is easily calculated from the scale bar. For example, when a scale bar of a map on a printed page is 1 cm long (in the output device space) and corresponds to 1 km in the physical space (i.e., a second conversion factor of 1 cm in the output device space to 1 km in the physical space), then calculations of distances on that map are easy, or user-friendly. On the other hand, if a map’s scale bar of 0.84 cm in the output device space (e.g., on a printed page) corresponds to 1 km in physical space (i.e., a second conversion factor of 0.84 cm in the output device space to 1 km in the physical space), then calculating distances according to that scale bar becomes harder and less accurate, which makes working with such a map less user-friendly.
P273401_13572926_l
2017225006 05 Sep 2017 [0010] In many cases, documents that are authored in the authoring software are also stored or exported in PDL (Page Description Language) representation for later printing, reproducing, or distributing. Some PDLs, for example PDF, allow metadata to be attached to graphic objects that retain the information about the scale associated with those graphic objects. This allows, for example, for interactive inspection of details that the graphic objects entail in software other than the original authoring software. It will also be appreciated that apart from the ability to inspect details in the graphic objects interactively, having a PDL version of the original document allows for reproduction of such documents on other output devices - a typical case being printing on paper media.
[0011] However, when the user prints such documents some problems may arise. For example, consider a document that was authored for output media having the size of A3 and contained a map having a scale bar with a first conversion factor of 1 cm in the user space to 1 m in the physical space. When the document is printed on media of the intended size (A3), the scale bar has a second conversion factor of 1 cm in the output device space to represent 1 m in the physical space. However, if the document is printed in its entirety on media having the size of A4, then the scale bar from the map would be scaled down and has a second conversion factor of -0.71 cm in the output device space to 1 m in the physical space. This obviously causes the user-friendliness of such a printed map to be lost, as a user measuring a distance on the map would not be able to conveniently do so. In other words, a scaled up or a scaled down scale bar may result in a less desirable second conversion factor. For example, a user would obtain a less accurate physical space measurement when determining the physical space measurement from a scale bar of 0.71 cm representing a physical space measurement of 1 m, rather than the convenient scale of 1 cm representing a physical space measurement of 1 m.
[0012] Similar problems arise when a document is printed on its intended media size but the printer configuration makes the page scale-to-fit to the printer’s imageable area, which typically is smaller than the nominal intended size (i.e., a printer has unprintable margins).
[0013] To avoid the problem of arbitrary scaling the user might try to ensure that the document is printed in its intended size. This, however, is not always a viable option as at times the user requires the document to be scaled up or down. For example, a user must print on a smaller medium as the user does not have ready access to large format printers typically
P273401_13572926_l
2017225006 05 Sep 2017 required for architectural drawings. Further, in some cases, when the document is sent to printing in its actual size, it may still have some content cropped off in order to fit to a printer’s imageable area.
[0014] The ability to measure quantities in the printout in a user-friendly manner may also be lost when the page is printed in an n-up configuration, or otherwise resized to fit available media.
[0015] In short, arbitrary scaling when rendering may result in user-friendliness of measurements of the renditions of graphic objects that have measurable properties being lost.
[0016] Another way to avoid the problem of losing user-friendliness of measurements of the renditions of graphic objects is to manually calculate scaling of the document so as to achieve the required user-friendliness. This method, however, has disadvantages of having to manually calculate the scaling factor and being inconvenient to the users. Also, such a method fails in case there is more than one graphic object on a page, each one having a different scaling factor, as, in general, only one of the graphic objects will be scaled in a user-friendly manner. Therefore, renditions of other graphical objects may still suffer from not being scaled into a second conversion factor that is user-friendly in the printed document.
[0017] Therefore, there is a need in the art for a solution to transform a first conversion factor into a second conversion factor, where the second conversion factor allows accurate conversion between the output device space and a physical space. In other words, the second conversion factor preserves the property of user-friendliness of manual or physical measurements of renditions of graphic objects that are included in documents.
SUMMARY [0018] An aspect of the present disclosure provides a method of reproducing a page description language (PDL) page using an output device, the method comprising: receiving a PDL page comprising a graphical object, the graphical object being associated with a first conversion factor relating a physical space to a user space of the PDL page; determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space unit of the user space, and an output device space unit of the output space; determining an adjustment value based
P273401_13572926_l
2017225006 05 Sep 2017 on a function of the first conversion factor and the scaling factor; modifying the transformation matrix for the graphical object based on the adjustment value; and applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device.
[0019] Another aspect of the present disclosure provides a non-transitory computer readable medium configured for storing computer programs, the computer programs being executable a processor for performing a method of reproducing a page description language (PDL) page by an output device, the method comprising: receiving a PDL page comprising a graphical object, the graphical object being associated with a first conversion factor relating a physical space to a user space of the PDL page; determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space unit of the user space, and an output device space unit of the output space; determining an adjustment value based on a function of the first conversion factor and the scaling factor; modifying the transformation matrix for the graphical object based on the adjustment value; and applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device.
[0020] Another aspect of the present disclosure provides a system configured to reproduce a page description language (PDL) page, the device comprising: a PDL interpreter configured for: receiving a PDL page comprising a graphical object, the graphical object being associated with a first conversion factor relating a physical space to a user space of the PDL page; determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space unit of the user space, and an output device space unit of the output space; determining an adjustment value based on a function of the first conversion factor and the scaling factor; and modifying the transformation matrix for the graphical object based on the adjustment value; and applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device.
[0021] Another aspect of the present disclosure provides a method of reproducing a page description language (PDL) page using an output device, the method comprising: receiving a PDL page comprising a graphical object, the graphical object being associated with a first
P273401_13572926_l
2017225006 05 Sep 2017 conversion factor relating a physical space to a user space of the PDL page; determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space unit of the user space, and an output device space unit of the output space; determining an adjustment value based on a function of the first conversion factor and the scaling factor; modifying the transformation matrix for the graphical object based on the adjustment value; and applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device for manual measurement.
BRIEF DESCRIPTION OF THE DRAWINGS [0022] One or more embodiments of the invention will now be described with reference to the following drawings, in which:
[0023] Fig. 1 is a schematic block diagram of a PDL consumer software architecture according to an embodiment of the invention;
[0024] Fig. 2 is a schematic flow chart diagram illustrating a method of processing a PDL document according to one embodiment of the invention;
[0025] Fig. 3 shows examples of rendering a PDL page with a graphic object on it, on media of different resolutions;
[0026] Fig. 4 is a schematic flow chart diagram illustrating a method of adjusting transformation matrix Tm according to one embodiment of the invention;
[0027] Fig. 5 shows an example of rendering a PDL page that is scaled up with a graphic object on it according to one embodiment of the invention;
[0028] Fig. 6 shows an example of rendering a PDL page that is scaled up with graphic objects on it according to further embodiment of the invention; and [0029] Figs. 7A and 7B form a schematic block diagram of a general purpose computer system upon which arrangements described can be practiced.
P273401_13572926_l
2017225006 05 Sep 2017
DETAILED DESCRIPTION INCLUDING BEST MODE
Context [0030] Electronic documents may be defined in a device-independent form by utilising PDL (Page Description Language), such as PDF (Portable Document Format) as defined by the ISO (International Standard Organisation) standard ISO 32000. A PDF document has a series of PDF data structures. Declared PDF data structures represent various objects such as document pages, reusable resources utilised throughout the document, graphic objects (e.g. images, line art and text), metadata, and document properties. Microsoft XPS (XML Paper Specification) is another PDL.
[0031] Software capable of processing PDL documents is generally referred to as a PDL consumer 100, as shown in Fig. 1. The main task of a PDL consumer 100 is to receive and interpret a PDL document 103 and produce required output. Fig. 1 shows a typical arrangement of software architecture of a PDL consumer 100 having a PDL Interpreter 101 and a Renderer 102. The role of the PDL Interpreter 101 is to receive a PDL document 103, interpret the contents of the PDL document 103 into commands that are understandable to the Renderer 102, and pass these commands to the Renderer 102. Upon receiving the commands from the PDL Interpreter 101, the Renderer 102 converts the commands to different sets of commands, which are arranged in a format as required by an Output Device 104. The Output Device 104 then produces the final output medium 105, such as printed pages on a printer (if the Output Device 104 is a printer), plotted pages on a plotter (if the Output Device 104 is a plotter), display pages projected to a screen (if the Output Device 104 is a projector), or any other output medium depending on the Output Device 104 where rendering of a PDL document 103 takes place.
[0032] The terms “rendering” and “reproducing” are the same and are used interchangeably hereinafter to describe the rendering/reproducing of a graphical object in the PDL document 103 on an output medium 105.
[0033] As described hereinbefore, the term “output medium” is not limited to a page printed on a piece of paper. The term “page” also covers a page that is projected on a screen by a projector or rendered to a display screen.
P273401_13572926_l
2017225006 05 Sep 2017 [0034] The term “output medium” covers ail output renderings that are non-interactive. That is, a non-interactive output medium is a non-interactive page that does not respond to an input from a user. For example, a page projected on a screen does not respond to a user’s input when the user touches the projection surface. In contrast, an interactive page is a page that responds to an input from a user. An example of an interactive page is a page that is produced on a touchscreen tablet, where touching the page on the touchscreen enables, for example, for the touchscreen to display information relating to graphical objects displayed on the touchscreen.
[0035] As content of PDL documents 103 in general consists of several pages, they are typically interpreted separately from each other according to a method which is shown in Fig. 2. The method 200 starts with the step 201 where the PDL Interpreter 101 receives properties of the Output Device 104. Such properties may include, but are not limited to, the output resolution (typically in dots or pixels per inch (dpi)), the output media (for example: paper, screen), the size of the imageable area, and the like.
[0036] The method 200 then proceeds from the step 201 to the step 202 where availability of pages to be read from the PDL document 103 is determined. If there is no page that can be read from the input PDL document 103 (NO), the method 200 proceeds from the step 202 to the step 299 where the method 200 stops. If there are pages to be read from the input PDL document 103 (YES), the method proceeds from the step 202 to the step 203, where a PDL page is read and interpreted by the PDL Interpreter 101. Some tasks that the PDL Interpreter
101 performs during the interpretation step 203 are: 1) calculation of a transformation matrix Tm which purpose is explained below and 2) determination of the size of one user space unit.
[0037] The method 200 then proceeds from the step 203 to the step 204, where the Renderer
102 arranges and sends commands to the Output Device 104. Once an Output Medium 105 is produced by the Output Device 104 on a designated media, the method returns to the step 202.
[0038] It is common for a device independent PDL document to define a user space coordinate system and the size of one user space unit for the document for the purpose of placing graphic objects in that user space. The user space coordinate system is independent from any other coordinate systems (e.g., the output device space, the physical space) that
P273401_13572926_l
2017225006 05 Sep 2017 might be used in the process of rendering a PDL page on the Output Device 104. In particular, the user space coordinate system is independent from the output device space coordinate system, which is defined by the Output Device 104. In PDF the default size of one user space unit is 1/72 of an inch. Printing devices often have respective output device space coordinate systems with respective resolutions such as 150 dpi, 300 dpi, 600 dpi, and the like. Projector and display output devices often have respective output device space coordinate systems with respective resolutions such as 160 pixels per inch (TVDPI), 240 pixels per inch (XHDPI, eXtra High density), and the like. Thus, in the process of interpreting a PDL page it is in general the responsibility of the PDL Interpreter 101 to convert the coordinates of graphic objects specified in the user space to coordinates of those graphic objects in the output device space. An example of such a conversion for a printing device is now described with reference to Figs. 3A to 3C.
[0039] Fig. 3A shows a PDL page 301 having a size of Xp 595 user space units in width, Yp 842 user space units in height, and an origin at (0, 0) that coincides with the origin of the user space coordinate system. This represents an A4 page expressed in the PDF default user space units of 1/72 of an inch. A graphic object 302 that is placed on the PDL page 301 at a reference position (100, 200) has a width of Xpg 216 user space units and a height of Ypg 288 user space units. When the PDL Interpreter 101 receives properties of the Output Device 104 in the step 201, either by means of directly communicating with the device 104 or by accessing memory where such properties can be stored, the PDL Interpreter 101 determines the size of an output medium 303 or 305 on the Output Device 104.
[0040] Fig. 3B shows one arrangement where the output medium 303 is in A4 size, which has a width of Xoi 2480 output device space units and a height of Yoi 3508 output device space units, representing 300 dots per inch. In such an arrangement, the rendition of the graphic object 304 (i.e., the graphic object 302 on the PDL page 301) on the output medium 303, after the graphic object 304 is rendered by the Renderer 102, is placed at a reference position (417, 833) and has a width equal to Xoig 900 output device space units and a height equal to Yoig 1200 output device space units. The reference position (417, 833) of the graphic object 304 is based on the assumption that the origin of the output device is at (0, 0) of the output device space.
P273401_13572926_l ίο
2017225006 05 Sep 2017 [0041] Fig. 3C shows another arrangement where the output medium 305 is in A3 size, which has a width of XO2 3508 output device space units and a height of YO2 4960 output device space units, again representing 300 dots per inch. In such an arrangement, the rendition of the graphic object 306 (i.e., the graphic object 302 on the PDF page 301) on the output medium 305, after the graphic object 306 is rendered by the Renderer 102, is placed at a reference position (590, 1180) and has a width equal to XO2g 1273 output device space units and a height equal to YO2g 1697 output device space units. The reference position (590, 1180) of the graphic object 306 is based on the assumption that the origin of the output device is at (0, 0) of the output device space.
[0042] In general, the process of converting coordinates from the user space to coordinates in the output device space may be expressed with the following notation:
(¾ ya i) = (*u yu i) x Tm where xa, ya are values of coordinates in the output device space, xu, yu are values of coordinates in the user space, and Tm is the transformation matrix defined as follows:
a b c d tx ty [0043] In one example, it is a role of the PDF Interpreter 101 to determine values of the elements a, b, c, d, tx and ty of the transformation matrix Tm, which is used by the PDF Interpreter 101 to convert coordinates of all graphic objects that are present on a PDF page from the user space to the output device space. Those skilled in the art will appreciate that the elements tx and ty represent translations in the horizontal and vertical directions respectively; that the a and d elements represent scaling factors in the horizontal and vertical directions respectively (when b and c are zero); and that rotation and skew effects may also be achieved by utilising elements a, b, c and d.
[0044] Those skilled in the art will also appreciate that the conversion of coordinates from the user space to the output device space will be performed whenever the transformation matrix Tm is different from the identity matrix. In practice, this transformation takes place most of the time and may be due to the size of one user space unit being different from the
P273401_13572926_l
2017225006 05 Sep 2017 size of one output device space unit or arbitrary scaling being applied to a PDL page. For example, the default size of one user space unit in PDF is equal to 1/72 of an inch, so whenever a PDF page with the default size of the user space unit is printed on an output device 104 that has an output device space unit that is different from 72 pixels per inch, the user space coordinates of the PDF content will undergo a transformation.
[0045] In another example, the default size of one user space unit in XPS documents is 1/96 of an inch. Whenever an XPS document with the default size of the user space unit is printed on an output device 104 that has an output device space unit that is different from 96 pixels per inch, the user space coordinates of the XPS content will undergo a transformation.
[0046] The user friendliness of a printout is related to the second conversion factor (i.e., the ratio between measurements in the output device space and the physical space) that an end user will use. Some regions or industries prefer the metric measurement system and thus printouts scaled for use with a metric ruler are made more user friendly and practical by noting that multiples of, for example, 2mm, 2.5mm, 5mm and 10mm (1cm) in the output device space are all easy to measure and to calculate overall distances, lengths, or areas in the physical space. However, other multiples such as 3mm, 6mm, and 7mm in the output device space are less convenient for users. Other regions or industries may prefer to use the imperial measurement system where 1/16 inch, 1/8 inch, 1/4 inch, 1/2 inch, etc. multiples in the output device space are more user-friendly and commonly indicated on measuring devices such as rulers. In such regions preferring imperial measurement units, rulers are very rarely marked with other multiples (such as 1/3 inch, 1/5 inch, 1/6 inch, 1/7 inch, etc.). Thus for both metric and imperial users there exists a pre-determined set of values representing second conversion factors which are both practical (i.e., commonly marked on measurement rulers) and user friendly (i.e., taking measurements is accurate, convenient and easy to perform simple calculations).
[0047] The full set of pre-determined values may be used, or a partial subset of the full set of pre-determined values may be selected as described below. The choice of end users' preferred manual or physical measurement system may be determined via a user interface, language settings or region settings in an operating system or device, or through association with output device parameters or configuration (for example, users using A4 media may prefer metric measurement whereas those using US Fetter media may prefer imperial
P273401_13572926_l
2017225006 05 Sep 2017 measurement). The choice of an end user’s preferred manual or physical measurement system is independent of a PDL document, but may be used to appropriately adjust the transformation of graphic objects to enable user friendly manual or physical measurement of those rendered objects on a printout.
[0048] In many cases, graphic objects that are present in PDL documents represent real-life objects. Examples of such graphic objects are maps, medical images, microscopic images, satellite images, and others. Real-life objects exist in the physical space, which is different from both the user space and the output device space. The differences between the different spaces are described hereinbefore. For the purpose of measuring quantities present in the graphical objects that represent real-life objects, some PDLs (for example PDF), provides a first conversion factor with such graphic objects. The first conversion factor enables conversion of values of measurements in the user space to values in the physical space.
[0049] For example, in Fig. 3A, the graphic object 302 on the PDL page 301 is an image of a celestial body and has a first conversion factor Cf associated with the graphic object 302 of a value equal to — x —ll0ht year—, which means that the size of the depicted graphic object 72 user space unit
302 in physical space is 3 x 4 light years, as shown by the following calculations:
Cy x 216 user space units = 3 light years Cf x 288 user space units — 4 light years [0050] If the PDL defines a user space unit equal to 1/72 of an inch, then it is easy to notice that 1 inch in the user space is equivalent to 1 light year in the relevant physical space. When the PDL page 301 is then sent to a printer and 1/72 inch from the user space is printed as 1/72 of an inch on a paper (i.e., in the output device space) then the user of such a printout would find that manually or physically measuring quantities, which typically is done by means of a ruler or a pair of dividers, in the image of the celestial body is easy - the printout would be user-friendly.
[0051] In cases when one user space unit is different from one output device space unit, the transformation matrix Tm determines whether the size of one user space unit will be retained when the PDL page is printed on paper. For example, the PDL page 301 may be printed on an output device 104 where one output device space unit is equal to 1/300 of an inch. In
P273401_13572926_l
2017225006 05 Sep 2017 such a case, if the user requires maintaining sizes from the PDL page (i.e., rendering the
PDL page 103 on an output device 105 without any XY distortion), the transformation matrix Tm should include scaling components such that 1/72 of an inch from the user space 1 is printed as -4.17 output device space units on a paper (-r~— 4.16(6)). Such an
300 arrangement is shown in Figs. 3A and 3B, where the PDL page 301 (width Xp= 595 user space units, height Yp= 842 user space units) is printed on the output medium 303 (width Xoi= 2480 output device space units, height Yoi= 3508 output device space units). Of course all dimensions have to undergo the conversion from the user space coordinates to the output device space coordinates according to the calculated transformation matrix Tm. This is depicted in the graphic object 304, which dimensions on the output medium 303 are Xoig 900 output device space units in width and Yoig 1200 output device space units in height. Since one output device space unit, in this case, is equal to 1/300 of an inch, the sizes in inches on the output medium are:
width
X, olg
300 height —
Y, olg
900
300 ‘ 1200
X-, pg
300 300 ‘pg
216 ~Τλ
288 = 3 inch = Thr = — = 4 inch 72 which shows that sizes from the original PDL page 301 have been preserved, hence the measuring of quantities in that printout remains as user-friendly as in the input PDL document.
[0052] Aspects of the present disclosure work for anisotropic output device space, where the horizontal and vertical user space units are different from usual, such as 600 (horizontal) x 1200 (vertical) dpi (Canon MAXIFY MB5460), 9600 x 2400 dpi (Canon PXIMA Mobile iPllO).
P273401_13572926_l
2017225006 05 Sep 2017
Structural Context [0053] Figs. 7A and 7B depict a general-purpose computer system 1300, upon which the various arrangements described can be practiced. The PDL consumer 100, in particular, may be implemented by the computer system 1300.
[0054] As seen in Fig. 7A, the computer system 1300 includes: a computer module 1301; input devices such as a keyboard 1302, a mouse pointer device 1303, a scanner 1326, a camera 1327, and a microphone 1380; and output devices including a printer 1315, a display device 1314 and loudspeakers 1317. The printer 1315 and the display device 1314 are examples of the output device 104 described hereinbefore. An external ModulatorDemodulator (Modem) transceiver device 1316 may be used by the computer module 1301 for communicating to and from a communications network 1320 via a connection 1321.
The communications network 1320 may be a wide-area network (WAN), such as the Internet, a cellular telecommunications network, or a private WAN. Where the connection 1321 is a telephone line, the modem 1316 may be a traditional “dial-up” modem. Alternatively, where the connection 1321 is a high capacity (e.g., cable) connection, the modem 1316 may be a broadband modem. A wireless modem may also be used for wireless connection to the communications network 1320.
[0055] The computer module 1301 typically includes at least one processor unit 1305, and a memory unit 1306. For example, the memory unit 1306 may have semiconductor random access memory (RAM) and semiconductor read only memory (ROM). The computer module 1301 also includes an number of input/output (FO) interfaces including: an audiovideo interface 1307 that couples to the video display 1314, loudspeakers 1317 and microphone 1380; an I/O interface 1313 that couples to the keyboard 1302, mouse 1303, scanner 1326, camera 1327 and optionally a joystick or other human interface device (not illustrated); and an interface 1308 for the external modem 1316 and printer 1315. In some implementations, the modem 1316 may be incorporated within the computer module 1301, for example within the interface 1308. The computer module 1301 also has a local network interface 1311, which permits coupling of the computer system 1300 via a connection 1323 to a local-area communications network 1322, known as a Local Area Network (LAN). As illustrated in Fig. 7A, the local communications network 1322 may also couple to the wide network 1320 via a connection 1324, which would typically include a so-called “firewall”
P273401_13572926_l
2017225006 05 Sep 2017 device or device of similar functionality. The local network interface 1311 may comprise an Ethernet circuit card, a Bluetooth® wireless arrangement or an IEEE 802.11 wireless arrangement; however, numerous other types of interfaces may be practiced for the interface 1311.
[0056] The I/O interfaces 1308 and 1313 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated). Storage devices 1309 are provided and typically include a hard disk drive (HDD) 1310. Other storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used. An optical disk drive 1312 is typically provided to act as a non-volatile source of data. Portable memory devices, such optical disks (e.g., CD-ROM, DVD, Blu-ray Disc™), USB-RAM, portable, external hard drives, and floppy disks, for example, may be used as appropriate sources of data to the system 1300.
[0057] The components 1305 to 1313 of the computer module 1301 typically communicate via an interconnected bus 1304 and in a manner that results in a conventional mode of operation of the computer system 1300 known to those in the relevant art. For example, the processor 1305 is coupled to the system bus 1304 using a connection 1318. Likewise, the memory 1306 and optical disk drive 1312 are coupled to the system bus 1304 by connections 1319. Examples of computers on which the described arrangements can be practised include IBM-PC’s and compatibles, Sun Sparcstations, Apple Mac™ or like computer systems.
[0058] The methods of processing a PDL document 103 may be implemented using the computer system 1300 wherein the processes of Figs. 2 and 4, to be described, may be implemented as one or more software application programs 1333 executable within the computer system 1300. In particular, the steps of the method of processing a PDL document are effected by instructions 1331 (see Fig. 7B) in the software 1333 that are carried out within the computer system 1300. The software instructions 1331 may be formed as one or more code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part and the corresponding code modules performs the PDL processing methods and a second part and the corresponding code modules manage a user interface between the first part and the user.
P273401_13572926_l
2017225006 05 Sep 2017 [0059] The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer system 1300 from the computer readable medium, and then executed by the computer system 1300. A computer readable medium having such software or computer program recorded on the computer readable medium is a computer program product. The use of the computer program product in the computer system 1300 preferably effects an advantageous apparatus for processing a PDL document 103.
[0060] The software 1333 is typically stored in the HDD 1310 or the memory 1306. The software is loaded into the computer system 1300 from a computer readable medium, and executed by the computer system 1300. Thus, for example, the software 1333 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 1325 that is read by the optical disk drive 1312. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer system 1300 preferably effects an apparatus for processing a PDL document 103.
[0061] In some instances, the application programs 1333 may be supplied to the user encoded on one or more CD-ROMs 1325 and read via the corresponding drive 1312, or alternatively may be read by the user from the networks 1320 or 1322. Still further, the software can also be loaded into the computer system 1300 from other computer readable media. Computer readable storage media refers to any non-transitory tangible storage medium that provides recorded instructions and/or data to the computer system 1300 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu-ray™ Disc, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 1301. Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computer module 1301 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
P273401_13572926_l
2017225006 05 Sep 2017 [0062] The second part of the application programs 1333 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 1314. Through manipulation of typically the keyboard 1302 and the mouse 1303, a user of the computer system 1300 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via the loudspeakers 1317 and user voice commands input via the microphone 1380.
[0063] Fig. 7B is a detailed schematic block diagram of the processor 1305 and a “memory” 1334. The memory 1334 represents a logical aggregation of all the memory modules (including the HDD 1309 and semiconductor memory 1306) that can be accessed by the computer module 1301 in Fig. 7A.
[0064] When the computer module 1301 is initially powered up, a power-on self-test (POST) program 1350 executes. The POST program 1350 is typically stored in a ROM 1349 of the semiconductor memory 1306 of Fig. 7A. A hardware device such as the ROM 1349 storing software is sometimes referred to as firmware. The POST program 1350 examines hardware within the computer module 1301 to ensure proper functioning and typically checks the processor 1305, the memory 1334 (1309, 1306), and a basic inputoutput systems software (BIOS) module 1351, also typically stored in the ROM 1349, for correct operation. Once the POST program 1350 has run successfully, the BIOS 1351 activates the hard disk drive 1310 of Fig. 7A. Activation of the hard disk drive 1310 causes a bootstrap loader program 1352 that is resident on the hard disk drive 1310 to execute via the processor 1305. This loads an operating system 1353 into the RAM memory 1306, upon which the operating system 1353 commences operation. The operating system 1353 is a system level application, executable by the processor 1305, to fulfil various high level functions, including processor management, memory management, device management, storage management, software application interface, and generic user interface.
[0065] The operating system 1353 manages the memory 1334 (1309, 1306) to ensure that each process or application running on the computer module 1301 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore,
P273401_13572926_l
2017225006 05 Sep 2017 the different types of memory available in the system 1300 of Fig. 7A must be used properly so that each process can run effectively. Accordingly, the aggregated memory 1334 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory accessible by the computer system 1300 and how such is used.
[0066] As shown in Fig. 7B, the processor 1305 includes a number of functional modules including a control unit 1339, an arithmetic logic unit (ALU) 1340, and a local or internal memory 1348, sometimes called a cache memory. The cache memory 1348 typically includes a number of storage registers 1344 - 1346 in a register section. One or more internal busses 1341 functionally interconnect these functional modules. The processor 1305 typically also has one or more interfaces 1342 for communicating with external devices via the system bus 1304, using a connection 1318. The memory 1334 is coupled to the bus 1304 using a connection 1319.
[0067] The application program 1333 includes a sequence of instructions 1331 that may include conditional branch and loop instructions. The program 1333 may also include data 1332 which is used in execution of the program 1333. The instructions 1331 and the data 1332 are stored in memory locations 1328, 1329, 1330 and 1335, 1336, 1337, respectively. Depending upon the relative size of the instructions 1331 and the memory locations 1328-1330, a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 1330. Alternately, an instruction may be segmented into a number of parts each of which is stored in a separate memory location, as depicted by the instruction segments shown in the memory locations 1328 and 1329.
[0068] In general, the processor 1305 is given a set of instructions which are executed therein. The processor 1305 waits for a subsequent input, to which the processor 1305 reacts to by executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 1302, 1303, data received from an external source across one of the networks 1320, 1302, data retrieved from one of the storage devices 1306, 1309 or data retrieved from a storage medium 1325 inserted into the corresponding reader 1312, all
P273401_13572926_l
2017225006 05 Sep 2017 depicted in Fig. 7 A. The execution of a set of the instructions may in some cases result in output of data. Execution may also involve storing data or variables to the memory 1334.
[0069] The disclosed PDL document processing arrangements use input variables 1354, which are stored in the memory 1334 in corresponding memory locations 1355, 1356, 1357. The PDL document processing arrangements produce output variables 1361, which are stored in the memory 1334 in corresponding memory locations 1362, 1363, 1364. Intermediate variables 1358 may be stored in memory locations 1359, 1360, 1366 and 1367.
[0070] Referring to the processor 1305 of Fig. 7B, the registers 1344, 1345, 1346, the arithmetic logic unit (ALU) 1340, and the control unit 1339 work together to perform sequences of micro-operations needed to perform “fetch, decode, and execute” cycles for every instruction in the instruction set making up the program 1333. Each fetch, decode, and execute cycle comprises:
[0071] a fetch operation, which fetches or reads an instruction 1331 from a memory location 1328, 1329, 1330; a decode operation in which the control unit 1339 determines which instruction has been fetched; and an execute operation in which the control unit 1339 and/or the ALU 1340 execute the instruction.
[0072] Thereafter, a further fetch, decode, and execute cycle for the next instruction may be executed. Similarly, a store cycle may be performed by which the control unit 1339 stores or writes a value to a memory location 1332.
[0073] Each step or sub-process in the processes of Figs. 2 and 4 is associated with one or more segments of the program 1333 and is performed by the register section 1344,
1345, 1347, the ALU 1340, and the control unit 1339 in the processor 1305 working together to perform the fetch, decode, and execute cycles for every instruction in the instruction set for the noted segments of the program 1333.
[0074] The method of processing a PDL document 103 may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of the processing of the PDL document 103. Such dedicated hardware may
P273401_13572926_l
2017225006 05 Sep 2017 include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
Further Processing of the PDL Document [0075] There are times when it is not desirable, or possible, to maintain 1:1 relationship between sizes in a PDL page (user space) and an output medium (output device space). Such situations arise, for example, when the user wants bigger/smaller versions of the original document, or pages are automatically fitted to printing/display area of the Output Device 104, or when PDL pages are printed in an n-up configuration. In such cases the scaling components of the transformation matrix Tm are affected by more than just a difference in sizes between the user space unit and the output device space unit. An example of such a case is shown in Figs. 3A to 3C. The PDL page 301 is scaled up by factor of 02 and printed on an A3 page 305 (width XO2= 3508 output device space units, height Yo2= 4960 output device space units). The rendered graphic object 306 has its dimensions changed accordingly, and now its width is equal to Xo2g 1273 output device space units, and its height is equal to YO2g 1697 output device space units. Given that one output device space unit is equal to 1/300 of an inch, the measurable size of the rendered graphic object on A3 paper is 4.24 f= = x 5.66 f= =inches. The rendered graphic object 306, which depicts a celestial body where the width and height in the physical (real world) space are 3 light years and 4 light years respectively, is no longer easily manually or physically measurable with a ruler with inch markings, as 1 inch on a ruler is equivalent to x/2 light years in the physical space.
[0076] In order to make the measurements user-friendly, the PDL Interpreter 101 adjusts the transformation matrix Tm for graphic objects that have a first conversion factor c/ according to the method 400 shown in Fig. 4. The method 400 may be implemented by the computer system 1300 (which implements the PDL consumer 100) as one or more software application programs 1333 executable within the computer system 1300.
[0077] The method 400 starts at the step 401, where the PDL Interpreter 101 determines the scaling factor utd. The determination of the scaling factor is based on the transformation
P273401_13572926_l
2017225006 05 Sep 2017 matrix Tm (determined at the step 203), the size of one user space unit (determined at the step 203), and the size of one output device space unit (determined at the step 201). That is, the scaling factor is determined by multiplying the transformation matrix with one output device space unit and dividing the result by one user space unit. The method 400 then proceeds from the step 401 to the step 402.
[0078] In the next step 402, the method 400 calculates a normalized value of the form m X 10e of the first conversion factor cyby dividing the first conversion factor cyby the scaling factor Utd. That is, the scaling factor utd is used to normalise the first conversion factor cyto the following form:
~ m x 10e
U-td where e is an exponent with an integer value and m is a mantissa with real value from the range [1..10] (i.e., real numbers from 1 to 10 inclusive). The method 400 proceeds from the step 402 to the step 403.
[0079] In the step 403, the method 400 determines whether the normalized value m is a value defined in a pre-determined set of values.
[0080] In one example, the pre-determined set of values has the following numbers: 1, 2, 2.5, 5, 10, which represent user friendly multiples for physical metric space measurement. The pre-determined set of values indicates that the measurements in the rendition of the graphic object 302 will be user-friendly for users who prefer the metric system without modifying the transformation matrix Tm. As described hereinbefore, the pre-determined values may be determined based on the second conversion factor, properties of the output device 104, or user preferences. If the normalized value m is determined to be in the pre-determined set of values (YES), the method 400 proceeds from the step 403 to the step 407.
[0081] If the normalized value m is not equal to any value in the pre-determined set of values (NO), the method 400 proceeds from the step 403 to the step 404.
[0082] In the step 407, the transformation matrix Tm is applied to the graphic object 302 by the PDL Interpreter 101. The method 400 then concludes.
P273401_13572926_l
2017225006 05 Sep 2017 [0083] In the step 404, the method 400 selects a value ma from the pre-determined set of values based on the normalized value m. In one example, the selected value ma is a value from the pre-determined set of values that is closest to the normalized value m. The method 400 then calculates an adjustment ratio ar according to the following formula:
[0084] The method 400 then proceeds from the step 404 to the step 405.
[0085] In the step 405, the method 400 determines an adjusted transformation matrix Tma for the graphic object 302 based on the adjustment ratio ar and the original transformation matrix Tm. That is, the adjusted transformation matrix is determined using the formula: Tma= Tm x ar. The method 400 then proceeds from the step 405 to the step 406.
[0086] In the step 406, the adjusted transformation matrix Tma is applied to the graphic object 302 by the PDL Interpreter 101. The method 400 concludes at the completion of the step 406.
[0087] When the PDL Interpreter 101 arranges commands to be sent to the Renderer 102, the PDL Interpreter 101 uses either the adjusted transformation matrix Tma or the original transformation matrix Tm, depending on whether the method 400 proceeds to the step 406 or 407 respectively.
[0088] Typically a PDL page includes more than one graphic object, in which case the method 400 may be applied to a selected one graphic object, iteratively to a collection of graphic objects, or iteratively to all of the graphic objects that exist on the PDL page.
[0089] In another arrangement, the adjusted transformation matrix Tma that is obtained based on a first conversion factor Cf associated with a graphic object may be applied to at least one of the other graphic objects, regardless whether those other graphic objects have a respective associated first conversion factor c/.
[0090] In one example, the method 400 is applied to at least one graphic object that is present in a PDL page. An example is depicted in Figs. 5A and 5B.
P273401_13572926_l
2017225006 05 Sep 2017 [0091] Fig. 5A shows an A4 PDL page 501 having a size of Xp width X Yp height (i.e., 595 x 842 user space units, where 1 user space unit is equal to 1/72 of an inch). In other words, the A4 PDL page 501 is -8.26 inch (210 mm) wide and -11.69 inch (297 mm) high. The PDL page 501 includes a graphic object 502 with a size of Xpg width x Ypg height, where Xpg =432 user space units and Ypg = 288 user space units (i.e., 6*4 inches). The graphic object 502 represents a microscopy image with details in the nanometre range. The graphic object 502 is associated with a first conversion factor Cf of value — X-—-, which J 72 user space unit means that the physical size of the depicted real-life object of the graphic object 502 is 6 x 4 nm, as shown by the following calculations:
Cf x 432 user space units — 6 nm Cf x 288 user space units — 4 nm [0092] The value of the first conversion factor c/ is designed to make the measurements within the graphic object 502 user friendly.
[0093] Fig. 5B illustrates an A3 sized output medium 503, upon which the PDL page 501 is printed. The output medium 503 is generated by an Output Device 104 where one output device space unit is equal to 1/300 of an inch. The output medium 503 has a size of Xo width of 3508 output space device units and Yo height of 4960 output device space units. In other words, the output medium 503 has a size of -11.69 inch (297 mm) wide and -16.53 inch (420 mm) high. When the graphic object 502 is printed on the output medium 503, the graphic object 502 is transformed so that the size becomes Xog width of 2546 output device space units x Yog height of 1697 output device space units (as by the dotted area 504) - or, after converting the output device space units to inches, -8.6 x -5.7 inches. That is, the graphic object 502 is transformed to the size defined by the dotted area 504 on the output medium 503. Due to the transformation, the space 504 (where the graphic object 502 is printed on the Output Device 104) provides a second conversion factor of 1 inch in the output device space to a/2 nm 86UiCh. x 4 inch) in the physical space. The printout is therefore not user-friendly.
[0094] In order to ensure user-friendliness of the printout, the PDL Interpreter 101 uses the method 400 to process the PDL page 501. The method 400 starts with the step 401 to
P273401_13572926_l
2017225006 05 Sep 2017 determine the scaling factor utd. As described above in relation to Fig. 4, the transformation matrix Tm and the size of one unit in the user space (i.e., 1/72 of an inch), which are both determined at the step 203, as well as the size of one unit in the output device space (= 1/300 of an inch) (established at the step 201) are used to determine the scaling factor utd.
[0095] For the example shown in Figs. 5A and 5B, the transformation matrix Tm is as follows:
[0096] Hence, the scaling factor utd is equal to:
utd = ~5.9 300 ™ch = —1.4 72 inch [0097] Once the scaling factor n^is determined, the method 400 proceeds to the step 402.
[0098] In the step 402, the normalized value m is determined by dividing the first conversion factor cr (which is equal to — X-—-r) by the scaling factor utd, as 7 v 1 72 user space unit' J ° follows:
nm
2__nm 72 TT 7
Cf 72 user space unit 77inc'1 n „ Tim nm — =--=-~T1-= ~0-7—~r = -7 X 10’1 —utd ~1.4 ~1.4 inch inch [0099] After the normalisation, the method 400 establishes that the normalized value m is equal to ~7. The method 400 then proceeds to the step 403.
[00100] At the next step 403, the method 400 determines whether the normalized value m is in the pre-determined set of values: 1, 2, 2.5, 5, 10. As discussed hereinbefore, the method 400 proceeds from the step 403 to the step 407 if the normalized value m is in
P273401_13572926_l
2017225006 05 Sep 2017 the pre-determined set of values (YES). Otherwise (NO), the method 400 proceeds from the step 403 to the step 404. In this example, the normalized value m is not in the predetermined set of values, therefore the method 400 proceeds from the step 403 to the step 404.
[00101] In the step 404, the method 400 selects 5 as the value ma, as in this example, a value in the pre-determined set of values is selected as the value ma based on the closest predetermined set of values to the normalized value m (i.e., -7). Hence, the adjustment ratio ar is calculated as follows:
(Χγ 0.7 [00102] The method 400 then proceeds from the step 404 to the step 405.
[00103] In the step 405, the transformation matrix Tma for the graphic object 502 is calculated in the following way:
‘ma or o J X Tm = /-4,2 0
-4.2 < 0 0
0.7
0\ /-5.9 0 0\
0.7 O X 0 -5.9 0
1/ \ 0 0 1/ [00104] When the adjusted transformation matrix Tma is used, the graphic object 502 is rendered as the graphic object 505, which has the size of Xog’ of 1800 output device space units x Yog’ of 1200 output device space units. The second conversion factor (i.e., the conversion factor of the graphic object 505 between the output device space and the physical space) allows for user-friendly measurements - this may be easily verified by calculating the new scaling factor Utdnew'· _ λ 7 300 inch _ 1 Utdnew i'-Z I inch
P273401_13572926_l
2017225006 05 Sep 2017 [00105] In a further example, the method 400 is applied to at least two graphic objects with different first conversion factors. An example is depicted in Figs. 6A and 6B.
[00106] In Fig. 6A, the PDL page 601 has a size of Xp width of 595 user space units and Yp height of 842 user space units, where 1 user space unit is equal to 1/72 of an inch. On the PDL page 601, there are two graphic objects - 602 and 603 - measuring 288 (Xpgi) x 216 (Ypgi) and 432 (Xpg2) x 288 (Ypg2) user space units respectively. The first conversion factors c/i and cp associated with these graphic objects are:
light year f1 36 user space unit for the graphic object 602 (hence, the physical size of a corresponding real-life object is 8 (= ΐ = x 6 (= if = lisht year)· “d nm f2 72 user space unit for the graphic object 603 (hence, the physical size of a corresponding real-life object is
[00107] Fig. 6B shows an A3 sized output medium 604 with a size of Xo width of 3508 output device space units and Yo height of 4960 output device space units. The output medium 604 is printed on the Output Device 104 where one output device space unit is equal to 1/300 of an inch.
[00108] The transformation matrix Tm determined by the PDL Interpreter 101 at the step 202, for the example in Figs. 6A and 6B, is as follows:
/X,
T — 1 m
| Xp | ||
| Yo | ||
| 0 | — 0 | |
| V 1 p j |
0
595
4960
842 l/
5.9 0 0\ ~5.9 0
0 1/
P273401_13572926_l
2017225006 05 Sep 2017 [00109] Hence, the scaling factor utd is equal to:
uta = ~5.9 30° inch = ~1.4 inch [00110] The method 400 is invoked separately for objects 602 and 603 and for each of them, at the step 402, normalises the first conversions factors in the following way:
ly
2__[y 36 j_. .
Cfi _ 36 user space unit 72 inc l _ Λ Λ _ 1π0 ly — —-—— ~1·4 x 10 η—utd -1.4 -1.4 inch nm _1__nm 72 7
Cf2 72 user space unit 72 mc“ „ Λ , nm — =-Τ~Λ-=-~Τ~Λ-= ~7·1 X IO”1 —utd —1.4 -1.4 meh [00111] The method 400 establishes the normalized values mi and m2, which are -1.4 for the graphic object 602 and -7.1 for the graphic object 603. For both objects 602 and 603, the method 400 determines whether each of the normalized values m 1 and m2 is in the partial pre-determined set of values: 1, 5, 10. In this particular example, the pre-determined set of values (described above) has been reduced to a partial subset due to other considerations including, but not limited to, explicit user preferences (e.g., users will be young children so simpler multiples are desired, or the ruler to be used only has 5mm markings), the conversion factor Cf, or the resulting size of the rendered graphics.
[00112] Based on the determination, the method 400 either proceeds to the step 404 or 407 as discussed above. For this example, the method 400 at step 403 determines that neither the normalized value m 1 nor the normalized value m2 is in the pre-determined set of values. Accordingly, the method 400 proceeds to the step 404 for both of the graphic objects 602 and 603.
[00113] In the step 404, the method 400 selects 1 as the closest value to mi and 5 as the closest value to m2 , based on selecting each of the ma values that is closest to the
P273401_13572926_l
2017225006 05 Sep 2017 respective normalized values mi and m2. Accordingly, the adjustment ratios arl and ar2 for the respective graphic objects 602 and 603 are calculated as follows:
CLr jnr2 — 1.4 5
-7.1
0.7
0.7 [00114] The method 400 then proceeds to the step 405.
[00115] In the step 405, the method 400 calculates a first transformation matrix Tma\ for the graphic object 602:
Qri
0J x Tm =
4.2 0
-4.2
0 /-0.7 °
\ 0
0\ /-5.9
0.7 O X 0 0 1/ \ 0
0\
5.9 0 0 1/ and a second transformation matrix Tma2 for the graphic object 603:
/ar2 Tma2 = I 0
V o
0\ /-0.7 ar2 0 I x Tm — I 0 0 1/ \ 0
-4.2 0 0\
-4.2 0
0 1/
0\ /-5.9 0 0\
0.7 O X 0 -5.9 0
1/ \ 0 0 1/ [00116] When the adjusted transformation matrix Tmai is used for rendering the graphic object 602 and the adjusted transformation matrix Tma2 is used for rendering the graphic object 603, the size of the rendered graphic object 605 is Xogi 1200 output device space unit (= 4 inch) x Yogi 900 output device space unit (= 3 inch) and the size of the rendered graphic object 606 is Xog2 1800 output device space unit (= 6 inch) χ Yog2 1200 output device space unit (= 4 inch). These sizes allow for user-friendly measurements with a ruler with inch markings (e.g., when marked with 1/16, 1/8, 1/4, 1/2 markings). As discussed hereinbefore, the transformation matrices Tmai and Tma2 are determined independently. In other words, the transformation matrix Tm of one of the graphical objects
P273401_13572926_l
2017225006 05 Sep 2017 (e.g., 602) is modified independently from the transformation matrix Tm of the other graphical object (e.g., 603).
[00117] In a further arrangement, the step 404 in the method 400 calculates the adjustment ratio ar depending on the presence and location of other graphical objects within the PDL page. For example, if the normalized value m of the expression — is equal to 9 and the pre-determined set of values are: 1, and 10, at the step 404, the method 400 selects 10, then the relevant graphic object will be scaled up when the modified transformation matrix Tma is applied to this graphic object. In many cases the scaled-up rendition of the graphic object will obscure the other content(s) on the PDL page. The PDL Interpreter 101 may detect the placement of other graphic objects on the PDL page and determine when a scaledup rendition may be used with little or no obscuring of other graphical data.
[00118] In yet another example, a graphic object may have an adjusted transformation matrix Tma applied such that the size of the graphic object is scaled-down. It is possible that as a result of the scaling, there will be some empty space left where the graphic object would otherwise be rendered. The method 400 may determine elements of the adjusted transformation matrix Tma such that the placement of the graphic object is adapted according to the resulting empty space - in one example, the new placement may be such that the graphic object is centred in the space that would otherwise have been used by the unsealed graphic object. In this case, elements a, d, tx and ty of the transformation matrix Tm may be modified to this effect. Therefore, the transformation matrix also repositions the reproduced graphic object on the output medium.
[00119] In addition to that, the PDL Interpreter 101 may determine that there is enough empty space around the scaled graphic object to include on the output medium a bar scale marking, that was not present in the original PDL page, so as to indicate the second conversion factor in the bar scale marking that is relevant to the graphic object and further improving the usability of the printed document.
[00120] In a further example, the output media may be a grid paper and the PDL
Interpreter 101, while performing the method 400, may adjust the transformation matrix Tm
P273401_13572926_l
2017225006 05 Sep 2017 such that the placement and/or size of the scaled rendition of a graphic object, or many objects, is adjusted/aligned to the grid on the paper.
[00121] In a further example, the first conversion factor c/ may be defined in a PDF file by means of Measurement Property entries in the Viewport dictionary or children of the Viewport dictionary.
[00122] In a further arrangement, the output device is a projector and the output from
Renderer 102 is projected on to a projection surface. The PDL Interpreter 101, while performing the method 400, may adjust the transformation matrix Tm such that the placement and/or size of the scaled rendition of a graphic object, or many objects, is adjusted/aligned to the projection surface.
Claims (5)
1. A method of reproducing a page description language (PDL) page using an output device, the method comprising:
5 receiving a PDL page comprising a graphical object, the graphical object being associated with a first conversion factor relating a physical space to a user space of the PDL page;
determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space
10 unit of the user space, and an output device space unit of the output space;
determining an adjustment value based on a function of the first conversion factor and the scaling factor;
modifying the transformation matrix for the graphical object based on the adjustment value; and
15 applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device.
2. The method of claim 1, wherein the determining of the adjustment value comprises:
normalising the first conversion factor using the scaling factor;
determining whether the normalised conversion factor is equal to a value in a pre20 determined set of values; and determining the adjustment value by selecting a value in the pre-determined set of values and dividing the selected value by the normalised first conversion factor, in response to determining that the normalised conversion factor is not equal to a value in the predetermined set of values.
P273401_13572926_l
2017225006 05 Sep 2017
3. The method of claim 2, wherein the value is selected from the pre-determined set of values based on the normalised conversion factor.
4. The method of claim 1, wherein the PDL page comprises two or more of the graphical objects, wherein the transformation matrix of one of the graphical objects is
5 modified independently from the transformation matrix of another of the graphical objects.
5. The method of claim 4, wherein the PDL page is reproduced on the output medium, wherein the two or more of the graphical objects are reproduced based on the respective modified transformation matrix.
6. The method of claim 5, wherein the adjustment value of one of the two or more
10 graphical objects is determined based on the presence and location of another of the two or more graphical objects.
7. The method of claim 1, wherein the modifying of the transformation matrix comprises repositioning a position of the graphical object on the output medium.
8. The method of claim 2, wherein the pre-determined set of values is determined based 15 on a second conversion factor, properties of the output device, or user preferences.
9. The method of claim 8, further comprising receiving the properties of the output device.
10. The method of claim 1, wherein the output device is any one of a printer, a projector, and a screen.
20
11. The method of claim 1, wherein the PDL page is a PDF document having PDF data structures, the method further comprising:
determining the first conversion factor from the PDF data structures.
12. The method of claim 1, wherein the output medium is non-interactive.
P273401_13572926_l
2017225006 05 Sep 2017
13. A non-transitory computer readable medium configured for storing computer programs, the computer programs being executable a processor for performing a method of reproducing a page description language (PDL) page by an output device, the method comprising:
5 receiving a PDL page comprising a graphical object, the graphical object being associated with a first conversion factor relating a physical space to a user space of the PDL page;
determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space
10 unit of the user space, and an output device space unit of the output space;
determining an adjustment value based on a function of the first conversion factor and the scaling factor;
modifying the transformation matrix for the graphical object based on the adjustment value; and
15 applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device.
14. The non-transitory computer readable medium of claim 13, wherein the determining of the adjustment value comprises:
normalising the first conversion factor using the scaling factor;
20 determining whether the normalised conversion factor is equal to a value in a predetermined set of values; and determining the adjustment value by selecting a value in the pre-determined set of values and dividing the selected value by the normalised first conversion factor, in response to determining that the normalised conversion factor is not equal to a value in the pre25 determined set of values.
P273401_13572926_l
2017225006 05 Sep 2017
15. The non-transitory computer readable medium of claim 14, wherein the value is selected from the pre-determined set of values based on the normalised conversion factor.
16. A system configured to reproduce a page description language (PDL) page, the
5 device comprising:
a PDL interpreter configured for:
receiving a PDL page comprising a graphical object, the graphical object being associated with a first conversion factor relating a physical space to a user space of the PDL page;
10 determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space unit of the user space, and an output device space unit of the output space;
determining an adjustment value based on a function of the first conversion
15 factor and the scaling factor; and modifying the transformation matrix for the graphical object based on the adjustment value; and applying the modified transformation matrix to the graphical object when reproducing the graphical object on an output medium of the output device.
20
17. The system of claim 16, wherein the determining of the adjustment value comprises:
normalising the first conversion factor using the scaling factor;
determining whether the normalised conversion factor is equal to a value in a predetermined set of values; and
P273401_13572926_l
2017225006 05 Sep 2017 determining the adjustment value by selecting a value in the pre-determined set of values and dividing the selected value by the normalised first conversion factor, in response to determining that the normalised conversion factor is not equal to a value in the predetermined set of values.
5
18. The system of claim 17, wherein the value is selected from the pre-determined set of values based on the normalised conversion factor.
19. A method of reproducing a page description language (PDL) page using an output device, the method comprising:
receiving a PDL page comprising a graphical object, the graphical object being 10 associated with a first conversion factor relating a physical space to a user space of the PDL page;
determining a scaling factor for the graphical object based on a transformation matrix for converting the user space to an output device space of the output device, a user space unit of the user space, and an output device space unit of the output space;
15 determining an adjustment value based on a function of the first conversion factor and the scaling factor;
modifying the transformation matrix for the graphical object based on the adjustment value; and applying the modified transformation matrix to the graphical object when 20 reproducing the graphical object on an output medium of the output device for manual measurement.
20. The method of claim 19, wherein the determining of the adjustment value comprises:
normalising the first conversion factor using the scaling factor;
determining whether the normalised conversion factor is equal to a value in a pre25 determined set of values; and
P273401_13572926_l
2017225006 05 Sep 2017 determining the adjustment value by selecting a value in the pre-determined set of values and dividing the selected value by the normalised first conversion factor, in response to determining that the normalised conversion factor is not equal to a value in the predetermined set of values.
5 21. The method of claim 20, wherein the value is selected from the pre-determined set of values based on the normalised conversion factor.
Canon Kabushiki Kaisha
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2017225006A AU2017225006A1 (en) | 2017-09-05 | 2017-09-05 | Use of PDL measurement properties to adjust scaling for optimised physical measurement |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2017225006A AU2017225006A1 (en) | 2017-09-05 | 2017-09-05 | Use of PDL measurement properties to adjust scaling for optimised physical measurement |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| AU2017225006A1 true AU2017225006A1 (en) | 2019-03-21 |
Family
ID=65728742
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| AU2017225006A Abandoned AU2017225006A1 (en) | 2017-09-05 | 2017-09-05 | Use of PDL measurement properties to adjust scaling for optimised physical measurement |
Country Status (1)
| Country | Link |
|---|---|
| AU (1) | AU2017225006A1 (en) |
-
2017
- 2017-09-05 AU AU2017225006A patent/AU2017225006A1/en not_active Abandoned
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5679322B2 (en) | Method to enforce minimum font size | |
| WO2008048859A2 (en) | Directional feathering of image objects | |
| US9088734B2 (en) | Method, system and apparatus for determining position of a watermark annotation | |
| US20150169508A1 (en) | Obfuscating page-description language output to thwart conversion to an editable format | |
| JP2014521177A (en) | Method and apparatus for determining the display mode of an electronic document | |
| CN114330245A (en) | OFD document processing method and device | |
| US8869026B2 (en) | Using a layout engine to display an overflowed textbox | |
| JP4955596B2 (en) | Image output method, apparatus and program | |
| US20130050215A1 (en) | Apparatus and method for 3d font engine | |
| AU2017225006A1 (en) | Use of PDL measurement properties to adjust scaling for optimised physical measurement | |
| US9075776B2 (en) | Document processing apparatus, document processing method, and program | |
| JP6780380B2 (en) | Image processing equipment and programs | |
| US20170147537A1 (en) | Method, apparatus and system for reproducing a document defined in a page description language | |
| US20120050824A1 (en) | Image scanning system and method | |
| US20110181913A1 (en) | Image processing apparatus, control method, and storage medium | |
| JP5569367B2 (en) | Image processing apparatus, image processing method, and program | |
| JP5528410B2 (en) | Viewer device, server device, display control method, electronic comic editing method and program | |
| US8762830B2 (en) | Rendering data in the correct z-order | |
| US20200380069A1 (en) | Image forming apparatus, image forming method, and non-transitory computer readable recording medium | |
| JP2008269260A (en) | Data processing apparatus, data processing method and program thereof | |
| JP7047962B2 (en) | program | |
| US10884684B1 (en) | Image forming apparatus, image forming method, and non-transitory computer readable recording medium | |
| JP2009170979A (en) | Document management system, document management apparatus and program | |
| JPH1063454A (en) | Printing processing system | |
| CN119739355A (en) | Similar entry batch printing method, device, printing equipment and medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MK4 | Application lapsed section 142(2)(d) - no continuation fee paid for the application |