AU6964200A - Flexible typesetting - Google Patents

Flexible typesetting Download PDF

Info

Publication number
AU6964200A
AU6964200A AU69642/00A AU6964200A AU6964200A AU 6964200 A AU6964200 A AU 6964200A AU 69642/00 A AU69642/00 A AU 69642/00A AU 6964200 A AU6964200 A AU 6964200A AU 6964200 A AU6964200 A AU 6964200A
Authority
AU
Australia
Prior art keywords
curve
length
text
required length
typesetting
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.)
Granted
Application number
AU69642/00A
Other versions
AU745125B2 (en
Inventor
Luke Kendall
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from AUPQ3815A external-priority patent/AUPQ381599A0/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU69642/00A priority Critical patent/AU745125B2/en
Publication of AU6964200A publication Critical patent/AU6964200A/en
Application granted granted Critical
Publication of AU745125B2 publication Critical patent/AU745125B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)

Description

S&F Ref: 524275
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT
ORIGINAL
a a a Name and Address of Applicant Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha 30-2, Shimomaruko 3-chome, Ohta-ku Tokyo 146 Japan Luke Kendall Spruson Ferguson St Martins Tower 31 Market Street Sydney NSW 2000 Flexible Typesetting ASSOCIATED PROVISIONAL APPLICATION DETAILS [33] Country [31] Applic. No(s) AU PQ3815 [32] Application Date 02 Nov 1999 The following statement is a full description of this invention, including the best method of performing it known to me/us:ga iesVaia 0 ocuments rece ved 00' 3 1 o0 C 7 43 Batch No:.
5815c -1- FLEXIBLE TYPESETTING Technical Field of the Invention The present invention relates to the typesetting of multiple lines of text along non-uniform baselines and, in particular, to the typesetting of text along automatically generated sequences of curvilinear baselines.
Background Art Many computer based typesetting systems exist and are able to cater for amounts of text ranging from individual words or paragraphs in object-based graphic programs (such as COREL DRAW) to large quantities of text, for example book length. ADOBE FRAMEMAKER is an example of the latter system. Programs that handle moderate to large amounts of text generally support very limited control of the shapes to be filled with text and the baselines that the text is able to be set along. Normally such limited control is restricted to simple rectangles or sometimes regions which have curved sides or edges.
0 These typesetting or word processing systems only set text along straight lines which are normally arranged horizontally. Some vertical arrangement into straight lines is also known.
As a consequence, these existing systems are unable to deal with the situation where there are many lines of text to be fitted to many different and varying baselines. If o these existing systems are attempted to be used one or more of the following specific problems can arise.
1. The text will not be set onto a curved line.
2. If the text will set onto a curved line the text will not flow from one curved line to the next.
3. The text is not properly typeset (eg it does not fill each line which can be of arbitrary length).
4. Operations such as centring, indenting, or tabulation are not provided as these require measurement of distances along the line which can be curved in an arbitrary fashion.
The user-interface models of the existing WYSIWYG systems are unworkable for the selection of text for editing operation on sets of lines along independent curves. This is because it would be extremely difficult to implement selection, there would be many "pathological" cases that could not be handled, and it would be awkward to use.
524275.doc -2- 6. The most straightforward data structure which takes the form of a spline path paired with one block of text, is quite unsuitable when more than one curved line is used for holding text. This is because the system must support the editing of the text, the editing of the line shapes, the addition and deletion of spline paths from the controlling baselines, and so on.
7. Only a limited amount of text can be set.
All these complexities mean that the desired feature of being able to set text upon curved baselines and manipulate same easily, has not hitherto been achieved.
Another existing system is a MicrosoftTM product called WORD ART (which is an optional part of the Microsoft OFFICE suite of programs). This known product "enables text to be set to a limited number of predefined geometric curves. The product suffers from a number of problems as follows: 1. It does not achieve proper typesetting. Instead it places characters side- •by-side and spaced according to the width of each character until it reaches the end of a line of text. This end is effectively a hard carriage return. When the text is too long for the curve, the characters are scaled so as to squash the desired characters into the •go, available length of curve and thereby achieve a fit. This results in distortion of the characters. There is no automatic breakup of text to adjust the number of characters to the available curve length.
••oo• 2. The number of characters that can be set is both limited, and quite small (approximately two hundred or so).
3. There are a limited number of geometric curves onto which text can be set, such as arcs, and sine waves (and of course straight lines). These curves are known in their entirety before any typesetting or character placement commences. Thus there is no generation of the next curve and the curves are not arbitrary.
4. The program does not appear to deal with discontinuities arising as a result of loss of available curve length for typesetting due to the characters cutting the "corners" of the curve. Thus the program does not revert back and re-typeset or revert back and re-break/re-wrap the lines of text when such discontinuities arise.
Thus with this product also, the desired feature of being able to set text along curved baselines and manipulate same easily, has not been achieved.
Disclosure of the Invention 524275.doc It is an object of the present invention to substantially overcome, or at least ameliorate, the abovementioned difficulties with the prior art and provide a system, apparatus and computer program product for typesetting of multiple lines of text along non-uniform baselines.
According to a first aspect of the invention, there is disclosed a method of typesetting characters along an arbitrary curve, said method comprising the steps of: calculating the length of the curve, setting a required length equal to the calculated length, requesting a string of text corresponding to the required length, typesetting the requested text on a straight line having a length S" "corresponding to said required length, :i placing and orienting the set requested text on the curve and calculating the used curve length, comparing the used curve length with the required length, if the compared lengths are not approximately equal, setting the required length to the used curve length and returning to step above, and if the compared lengths are approximately equal outputting the set requested text on the curve.
According to a second aspect of the invention, there is provided a system for 20 typesetting characters along an arbitrary curve, said system comprising: a curve length calculator to calculate the length of an arbitrary curve and set same as a required length, a data store of text to be set, a text-by-length fetcher to fetch text from said store corresponding to said required length, a single line typesetter to receive said fetched text and set said onto a straight line of said required length, a character onto curve mapper to place said set text onto said curve, and a typeset process controller connected to each of the above and programmed to carry out the abovementioned method.
According to a third aspect of the invention, there is provided a computer program product comprising: 524275.doc first means of calculating the length of a curve along which characters are to be typeset, second means for setting the, calculated length as a required length, third means for requesting a string of text corresponding to the required length, fourth means for typesetting the requested text on a straight line having a length corresponding to said required length, fifth means for placing and orienting the requested typeset text onto the curve and calculating the used curve length, sixth means for comparing the used curve length with the required length, seventh means to adjust the required length to the used curve length if the compared lengths are not approximately equal prior to returning program control to said "fourth means, and eighth means for outputting the requested typeset text on the curve if said compared lengths are approximately equal.
Brief Description of the Drawings A preferred embodiment of the present invention will now be described with S reference to the drawings, in which: Fig. 1 illustrates a set of non-uniform baselines together with text intended to be typeset thereon, Fig. 2 illustrates the result of typesetting the text of Fig. 1 onto the baselines of Fig. 1, Fig. 3 is an illustration of a screen display which enables the text to be edited, Fig. 4 shows the screen display of the typeset text, and Fig. 5 is a diagram illustrating how the typeset length can be less than the nominal length, Fig. 6 is a flowchart of the procedures to be carried out, Fig. 7 is a schematic block diagram of the internal structure of the program of the preferred embodiment, and Fig. 8 illustrates the circuit of a general purpose computer which is able to implement the present invention.
Detailed Description The preferred embodiment of the present invention is a computer application able to be hosted on the MICROSOFT WINDOWS operating system. The application 524275.doc program has a user interface which includes menu items and controls and responds to mouse and keyboard operations as is common for such applications. The application has the ability under the operation of the program to draw lines and curves and also to typeset text. Text can be typeset along groups of curved lines. In the description which follows, it is presumed that the reader or addressee is skilled in typesetting techniques and in particular typesetting along a single non-uniform line.
As seen in Fig. 1, a set of curved lines can be created to represent a desired artistic effect, in this embodiment the rolling motion of waves upon the ocean. This is intended to be combined with the text as also illustrated in Fig. 1. The result is as illustrated in Fig. 2 in that the text of Fig. 1 is typeset along the curved lines of Fig. 1 so as to result in the desired artistic effect illustrated in Fig. 2.
An important point is that the set of curves is able to be generated during the typesetting program and thus the program must be able to deal with the situation where 0°• the set of curves is not known in advance. This is a major point of different with conventional What You See Is What You Get (WYSIWYG) systems.
In such conventional systems the editing and output of the text are performed apparently simultaneously and after each step in any series of editing steps. That is, if the editing steps are the insertion of two characters, after the first character is inserted, the amended text at that stage is output with only the single additional character. That is, the output is the same as if only the single character was all the editing to be done. Then the next character is inserted and the entire process is repeated.
Where the typesetting is on parallel straight lines (even of different lengths) this prior procedure is reasonably straightforward. Also where the typesetting is to take place along a single curved line, the situation is manageable. However, there are very substantial difficulties where the curves are entirely arbitrary since (generally but not always) the (n+l1)th curve will not be generated until typesetting on the nth curve is completed.
Further problems in trying to use the existing typesetting mechanisms include: if text blocks are paired with individual curves, any editing operation to any curve or the source text may force complete breaking up of every pair and recreation of suitable text blocks. Multiple text blocks are therefore a problem.
the conventional typesetting algorithms assume that the line length is fixed.
But actually laying down text onto the curve is likely to require that some characters "cut 524275.doc corners". (As explained in more detail hereafter in Fig. This is likely to reduce the apparent curve length. Existing typesetting algorithms cannot cope with this.
the assumption above also usually leads to the output (display) of the characters as their positions are calculated. This is impractical when the output positions may require recalculation.
the broken assumption means that the line-breaking algorithm must also be restartable.
In order to avoid such complexities, the editing and typesetting (or character placement) tasks are entirely divorced. As seen in Fig. 3, an editor screen is provided which enables the text to be edited whilst displayed upon regular uniform length and uniformly spaced parallel lines. As indicated in Fig. 4, a separate text outputting screen is provided to output the previously edited text. If at the end of the text outputting procedures the author is unhappy about some aspect of the text, it is necessary to return to the text editor, make any necessary changes, and then re-output the entire amended text.
The actual placement of each character along the curve is generally of a S conventional nature. The curve is approximated by a series of end-to-end vectors V1, V2, V3, V4 and V5 as illustrated in Fig. 5. As also indicated in Fig. 5, the width 0 of the text character (in this example the letter W) will, in general, be different from the apparent required length along the curve. The apparent required length along the curve will be the sum of the whole vector lengths 02, 03, and 04, corresponding to the vectors V2, V3, V4, i plus any partial vector lengths such as 6s (delta-start) being part of the length of vector V1 S and 6 E (delta-end) being part of the length of vector V5. This may be expressed as follows: Length of curve used width of text character Length 65 02 03 04 5E Co.
The text outputting process is illustrated in Fig. 6.
In summary, the conventional typesetting algorithm is modified so as to allow a different line length for each line of text with the end of a line of text being treated differently from the end of a curve. The classical typesetting algorithm is separated into a member of steps which are then repeated in sequence.
Basically, these steps take the form of requesting a distance (which is the length of the curve to be filled with text). Then a calculation is performed to determine which part of the input text is to be set within that distance. Then that part of input text is 524275.doc typeset. The calculated typesetting information is used to place the individual characters at the right points on the curve and with the right rotation (ie the characters tilt to the left or right so as to follow the curve). These steps are then repeated for the next curve.
As seen in detail in Fig. 6, the first step 1 provides curve data to the curve generation module. This data can consist of lines that are to have text laid along them.
(In other embodiments this data can include shapes that are to be filled with text by a process similar to rasterisation or a combination of the two, for example, a sequence of either, or a shape used to clip a set of lines). The first curve is then generated and set as the "current curve".
The next step 2 is to calculate the length of the current curve, and store this length as the required length. Next, in step 3, starting from the current text index position, the text data is measured out to that length (or just less than that length) and made the current text. This measuring out of the required text requires a knowledge of hyphenation points and other word- and line-breaking algorithms which, although sophisticated, are routine for one skilled in the art.
At step 4 a test is made as to whether there are any characters left. If the answer is Yes, the procedure moves to step 12 (to be discussed hereafter). If the answer is No, meaning that there are characters to be set, the procedure moves to step *oo* 0o At step 5 the characters of the current text are typeset "tightly". This means .ooooi typesetting essentially conventionally along a horizontal line generally applying only inter-character tracking adjustments, character pair kemrning, and tab character width calculations. These are the steps conventionally carried out in typesetting before any centring, right-justification, or full justification is carried out. The fundamental point to be made here is that irrespective of the precise typesetting procedure which is carried out, the intention is to arrive at the minimum width for the text which can be conveniently arranged. Some sophisticated typesetting systems can create some extra squeezing together of characters, either by adjusting inter-word spaces or inter-character spaces, or both. However, in general this extra effort is not worthwhile.
The length of the "tightly typeset" character string is stored as the nominal length at the conclusion of step The process then moves to step 6 where the processes referred to above in relation to Fig. 5 are used to calculate the placement and the orientation of each character of the current text onto the current curve. This includes full typesetting. This full 524275.doc typesetting includes one of left, centre, or flush justification. If desired, indenting can be included. Also inter-word and inter-character adjustments can be included if desired.
Once this is completed the "useable length" is calculated. This is the length along the curve found by summing the useable vectors, ie the length along the curve minus all the cut-off corner distances.
Next in step 7, a test is carried out to see if the useable length is long enough to fit the text if it were typeset as tightly as possible. This is expressed mathematically as "Is the useable length greater than or equal to the nominal length minus a tolerance?" The tolerance is a threshold which is preferably a small fraction, say of the width of a character.
If the answer to the test in step 7 is Yes, the useable length should be long enough to fit in the current text and the process moves to step 9. However, if the answer to the test of step 7 is No, then the useable length is too short. The process then in step 8 sets the required length to the useable length and reverts to step 3 and a new required length is created.
S ,Step 9 tests that the length of the text when actually placed onto the curve is close enough to the required length. It should be understood that at this stage the required length should be interpreted as the length of the fully typeset text. In step 9 the absolute o@0 value (ie magnitude irrespective of sign) of the difference between the useable length and the requested length is determined. If this is less than a small predetermined tolerance, i the process moves to step 11 and the characters of the current text are output, each being °rotated as required to lie along the curve.
However, if this absolute value is greater than the tolerance, it means that the useable length is significantly shorter than the requested length, due to corner cutting as explained in Fig. 5. The test at step 7 gives confidence that the text should still be able to fit.
The process then proceeds to step 10 and the required length is shortened by being set to the useable length. Then the process reverts to step 6 where the placement and orientation of each character can be carried out with a reduced amount of padding of the spaces between adjacent words (and optionally, also between characters, in the normal fashion in the art). This process ultimately results in step 11 being carried out.
After step 11, a test step 12 is carried out to see if there are further characters and/or curves. If there are no more characters and curves the process finishes at step 14.
524275.doc Otherwise step 13 is carried out and the current curve is set to the next curve. Also the current text position index is set to the index of the next character. Then the process reverts to step 2 and repeats for the next curve and next characters.
There are various techniques for generating the next curve. For example, a queue of curve bundles can be set up. Each bundle contains a way of specifying a curve generation function and the data required for that function. Examples of such bundles include but are not limited to: 1. an array of curves, an index into the array, and a function that returns the next curve from the array, 2. an array of curves, an index into the array of curves, a step distance, and .a function that will generate a curve that is an "in-between morph" from the curve at the index value and the curve at the next index value, weighted by the step distance, 3. a curve, a step distance, a limiting count, and a function that generates o outlines of one curve by a specified distance, 4. a closed shape, a step distance, an angle, and a function that generates a :.sequence of the intersecting sections of the line and generates a curve data bundle and inserts this into the queue, a closed shape for clipping and a curve data bundle the curve from the curve data bundle is clipped against the closed shape, and 6. a set of typeset characters, a character index, and a function which returns the outline of the indexed character.
Alternatively, depending on user options, generating the next curve can mean generating the next in-between curve, or replicating the last curve, or extending the last curve along a tangent to its end, or failing so that the typesetting stops.
If the curves are to be clipped by a shape, generating the next curve involves getting the height of the current line of text. This is added to the current distance into the shape. Then a line at this point is intersected through the shape. This generates a curvebased sequence and inserts the sequence into the list of curves.
Turning now to Fig. 7, the internal structure of the preferred embodiment of the program is illustrated in which the curve length calculator 20 is that portion of the program which converts a curve into a sequence of vectors, and sums the vector lengths, so as to arrive at a sufficiently close vector approximation to the curve.
524275.doc The curve generation module 21 is that portion of the program which generates the "next curve" when requested to do so by the typeset process controller 23. In addition, a typeset process controller 23 uses the functionality of all the program portions, makes the necessary comparisons and retries, and steps the process of Fig. 6 onto the next curve and next portion or section of text.
The text-by-length fetcher 25 is that portion of the program which given a start index into the text, the text itself, and a length then applies line breaking and word hyphenation rules while measuring character widths (including any tabs) to return an amount of text which should be less than or equal to the required length. Various known line breaking and word hyphenation rules can be used. Generally a less sophisticated rule is more than adequate.
The single line typesetter 26 is that portion of the program which carries out step of Fig. 6. It includes the amended typesetting algorithm that is given a single line of text and a length, and then determines the character placement along a notional straight line.
S. The characters-onto-curve mapper 27 is that portion of the program which carries out step 11 of Fig. 6. This takes the data from the typesetter 26 and places each character at the correct point along the curve. This placement is with the correct orientation (ie rotation) and includes minor rotational corrections which will permit a character to cut corners when a character stretches from one vector to the next vector.
This portion of the program also maintains the current y) coordinates for the typesetting along a curve, this process being well known to those skilled in the art.
Turning now to Fig. 8, the method of Fig. 6 is preferably practiced using a conventional general-purpose computer system 100, such as that shown in Fig. 8 wherein the processes of Fig. 6 may be implemented as software, such as an application program executing within the computer system 100. In particular, the steps of the method of Fig. 6 are effected by instructions in the software that are carried out by the computer. The software may be divided into two separate parts; one part for carrying out the Fig. 6 methods; and another part to manage the user interface between the latter and the user.
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 from the computer readable medium, and then executed by the computer. A computer readable medium having such software or computer program recorded on it is a computer program 524275.doc -11product. The use of the computer program product in the computer preferably effects an advantageous apparatus for flexible typesetting in accordance with the embodiments of the invention.
The computer system 100 comprises a computer module 101, input devices such as a keyboard 102 and mouse 103, output devices including a printer 115 and a display device 114. A Modulator-Demodulator (Modem) transceiver device 116 is used by the computer module 101 for communicating to and from a communications network 120, for example connectable via a telephone line 121 or other functional medium. The modem 116 can be used to obtain access to the Internet, and other network systems, such as a Local Area Network (LAN) or a Wide Area Network (WAN).
The computer module 101 typically includes at least one processor unit 105, a memory unit 106, for example formed from semiconductor random access memory (RAM) and read only memory (ROM), input/output interfaces including a video interface 107, and an 10 interface 113 for the keyboard 102 and mouse 103 and optionally a joystick (not illustrated), and an interface 108 for the modem 116. A storage device 109 is provided and typically includes a hard disk drive 110 and a floppy disk drive 111. A magnetic tape drive (not illustrated) may also be used. A CD-ROM drive 112 is typically provided as a non-volatile source of data. The components 105 to 113 of the computer module 101, typically communicate via an interconnected bus 104 ooo oi and in a manner which results in a conventional mode of operation of the computer S.system 100 known to those in the relevant art. Examples of computers on which the embodiments can be practised include IBM-PC's and compatibles, Sun Sparcstations or alike computer systems evolved therefrom.
Typically, the application program of the preferred embodiment is resident on the hard disk drive 110 and read and controlled in its execution by the processor 105.
Intermediate storage of the program and any data fetched from the network 120 may be accomplished using the semiconductor memory 106, possibly in concert with the hard disk drive 110. In some instances, the application program may be supplied to the user encoded on a CD-ROM or floppy disk and read via the corresponding drive 112 or 111, or alternatively may be read by the user from the network 120 via the modem device 116.
Still further, the software can also be loaded into the computer system 100 from other computer readable medium including magnetic tape, a ROM or integrated circuit, a magneto-optical disk, a radio or infra-red transmission channel between the computer 524275.doc -12module 101 and another device, a computer readable card such as a PCMCIA card, and the Internet and Intranets including email transmissions and information recorded on websites and the like. The foregoing is merely exemplary of relevant computer readable mediums. Other computer readable mediums may be practiced without departing from the scope and spirit of the invention.
The method of Fig. 6 may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of Fig. 6. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories.
Industrial Applicability It is apparent from the above that the embodiment of the invention is applicable to the typesetting and word processing arts.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiment being illustrative and not restrictive.
In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including" and not "consisting only of'. Variations of the word comprising, such as "comprise" and "comprises" have oo•• corresponding meanings.
*oo oo *•go o 524275.doc

Claims (7)

1. A method of typesetting characters along a curve, said method comprising the steps of: calculating the length of the curve, setting a required length equal to the calculated length, requesting a string of text corresponding to the required length, typesetting the requested text on a straight line having a length corresponding to said required length, l0 placing and orienting the requested typeset text on the curve and calculating the used curve length, comparing the used curve length with the required length, if the compared lengths are not approximately equal, setting the required length to the used curve length and returning to step above, and Is if the compared lengths are approximately equal outputting the set •.requested text on the curve.
2. The method as claimed in claim 1 comprising the further step of: if the comparison in step of used curve length with the required length indicates that the used curve length is more than the required length, in step returning to step above.
3. The method as claimed in claim 1 comprising the further step of: if the comparison in step of the used curve length with the required length indicates that the used curve length is less than the required length, in step returning to step above.
4. The method as claimed in claim 1, 2 or 3 wherein comparison step (F) includes a threshold. The method as claimed in claim 4 wherein said threshold is a length corresponding to a predetermined small fraction of the length of a single character.
6. The method as claimed in any one of claims 1-5 comprising the further step of: representing said curve as a sequence of vectors and calculating said curve length by summing the lengths of said vectors, and permitting a character width to exceed a plurality of vector lengths. -I
14- 7. The method as claimed in any one of claims 1-6 wherein said characters are to be typeset on a set of curves and comprising the further step of: generating the next curve of said set of curves after each preceding curve has said characters output thereon. 8. A system for typesetting characters along a curve, said system comprising: a curve-length calculator to calculate the length of a curve and set same as a required length, a data store of text to be set, a text-by-length fetcher to fetch text from said store corresponding to said S. required length, single-line typesetter to receive said fetched text and typeset said text onto a .o straight line of said required length, a character-onto-curve mapper to place said set text onto said curve, and a typeset process controller connected to each of the above and programmed to carry out the method of claim 1. The system as claimed in claim 8 including a curve generation means to generate a plurality of curves. The system as claimed in claim 9 including a store of initial curve data connected with said curve generation means. 11. The system as claimed in any one of claims 8-10 wherein said typeset process controller compares the length of curve used by said character-onto-curve mapper with said required length. 12. A computer program product comprising first means for calculating the length of a curve along which characters are to be typeset, second means for setting the calculated length as a required length, third means for requesting a string of text corresponding to the required length, fourth means for typesetting the requested text on a straight line having a length corresponding to said required length, fifth means for placing and orienting the requested typeset text onto the curve and calculating the used curve length, sixth means for comparing the used curve length with the required length,
524275.doc seventh means to adjust the required length to the used curve length if the compared lengths are not approximately equal prior to returning program control to said fourth means, and eighth means for outputting the requested typeset text on the curve if said compared lengths are approximately equal. 13. The computer program product as claimed in claim 12 further comprises: ninth means for returning program control to said third means if said sixth means comparison indicates that the used curve length is more than the required length. 14. The computer program product as claimed in claim 12 further ;comprising: tenth means for returning program control to said third means if said sixth means comparison indicates that the used curve length is less than the required length. 15. The computer program product as claimed in any one of claims 12-14 wherein said sixth means includes a threshold in comparing the used curve length and *required length. 16. The computer program product as claimed in claim 15 wherein said threshold is a predetermined small fraction of the width of a single character. 17. The computer program product as claimed in any one of claims 12-16 S° 20 wherein said first means calculates said curve length by representing said curve as a sequence of vectors and summing the lengths of said vectors. oo••o 18. The computer program product as claimed in any one of claims 12-17 further comprising: eleventh means to generate the next curve of a set of curves of which said curve is one after each preceding curve has said characters output thereon. 19. A method of typesetting characters along a curve, said method being substantially as described with reference to Figs. 1-6 of the drawings. A system for typesetting characters along a curve, said system being substantially as described with reference to Figs. 7 and 8 of the drawings. 16- 21. A computer program product substantially as described herein with reference to Figs. 1-6 of the drawings. DATED this Thirty-first Day of October, 2000 Canon Kabushiki Kaisha Patent Attorneys for the Applicant SPRUSON FERGUSON SS S b 0S @0 6 000S 0e S 0@Sg 5* S. S 00 C S e.g. tee. S .55. C S
AU69642/00A 1999-11-02 2000-10-31 Flexible typesetting Ceased AU745125B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU69642/00A AU745125B2 (en) 1999-11-02 2000-10-31 Flexible typesetting

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
AUPQ3815 1999-11-02
AUPQ3815A AUPQ381599A0 (en) 1999-11-02 1999-11-02 Flexible typesetting
AU69642/00A AU745125B2 (en) 1999-11-02 2000-10-31 Flexible typesetting

Publications (2)

Publication Number Publication Date
AU6964200A true AU6964200A (en) 2001-05-03
AU745125B2 AU745125B2 (en) 2002-03-14

Family

ID=25636000

Family Applications (1)

Application Number Title Priority Date Filing Date
AU69642/00A Ceased AU745125B2 (en) 1999-11-02 2000-10-31 Flexible typesetting

Country Status (1)

Country Link
AU (1) AU745125B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111507527A (en) * 2020-04-17 2020-08-07 无锡雪浪数制科技有限公司 Furniture blanking typesetting optimization method considering raw material diversity and uncertainty

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55500301A (en) * 1978-05-31 1980-05-22
JPS5739963A (en) * 1980-08-22 1982-03-05 Photo Composing Mach Mfg Co Ltd Memorizing method for character, figure and the like and photocomposing device
US5579457A (en) * 1994-07-29 1996-11-26 The Harlequin Group Ltd. Image display apparatus and method using irregularly placed curving structures

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111507527A (en) * 2020-04-17 2020-08-07 无锡雪浪数制科技有限公司 Furniture blanking typesetting optimization method considering raw material diversity and uncertainty

Also Published As

Publication number Publication date
AU745125B2 (en) 2002-03-14

Similar Documents

Publication Publication Date Title
US8633930B2 (en) Non-linear text flow
US4575813A (en) Automatically balancing and vertically justifying a plurality of text/graphics-columns
US5588099A (en) Method and system for automatically resizing tables
US7197695B2 (en) Automated paragraph layout
EP0848351B1 (en) Automatically modifying document layout
KR101169088B1 (en) Method, system, and computer-readable medium for the layout of automatically-placed elements and user-placed elements in a chart
EP0117405A2 (en) Automatically balancing and vertically justifying text and/or graphics
US20080256439A1 (en) Laying out graphical elements on a page
EP0782103B1 (en) Automatic graphical pattern placement
US8584012B1 (en) Methods and systems for displaying text on a path
US6332148B1 (en) Appearance and positioning annotation text string and base text string specifying a rule that relates the formatting annotation, base text characters
US20060236230A1 (en) Automatic layout adjustment for documents containing text
US11641438B2 (en) Systems and methods for rendering a secure document with a text selection capability
US9218323B2 (en) Optimizing hyper parameters of probabilistic model for mixed text-and-graphics layout template
US20220222420A1 (en) Constructing a path for character glyphs
AU745125B2 (en) Flexible typesetting
JP4330954B2 (en) Grid tracking and character set spacing for Japanese text adjustment
CN112114786B (en) Implementation method of editor, computing device and readable storage medium
US8234571B1 (en) Predictive text composition
CN111259640A (en) Dynamic list layout method based on text content
CN113435172A (en) Processing method, device and equipment for chart positioning and storage medium
US7949951B1 (en) Selectively limiting paragraph recomposition
AU767739B2 (en) Method and apparatus for the automatic application of shape enhancement
JP3699581B2 (en) Typesetting method and typesetting apparatus, and recording medium recording a program for executing the processing
US20140372842A1 (en) Hierarchical Probabilistic Document Model Based Document Composition

Legal Events

Date Code Title Description
FGA Letters patent sealed or granted (standard patent)