The present invention relates to the transfer of a user defined portion of a text document with graphics to another document, particularly by a cut and paste implementation via a clipboard.
A clipboard is a conventional implementation wherein cut or copied text, graphics or other components may be temporarily scored before being moved to another location within the same application or another application within the same computer system. A problem arises when the user defined, i.e. cut, contents stored on the clipboard are to be pasted into a destination document in an application on a computer system different from the first computer system having the clipboard on which the cut contents are stored. This is particularly the case where the cut defined portion contains formatted text. It is likely that the transfer to a different computer system will at least lose the formatted structure after paste. Current solutions to this problem have been cumbersome. The user may choose to recreate the whole document and then transfer the whole document containing the defined text. However, even with document being recreated, some formatting may be lost. Transfer schemes involving the transmission of the whole clipboard including the defined portion have been considered. This would present problems in the interpretation of the clipboard format in the different destination computer system. Other solutions require strict coordination between the sending and destination computer systems.
The present invention provides an implementation for effectively transferring defined portions of native text from a document in a first computer system to an insertion into a destination native text document in a different computer system that circumvents the above-described problems. It should be noted that when a native text document is referred to herein, it is meant to include any graphics included in the text document. The present invention is also applicable to primarily graphics documents with only ancillary text.
In accordance with the present invention, a user is enabled to define a portion in a formatted native text with graphics document stored in a first computer system. This portion is encoded into encoded alphanumeric text, e.g. by using any one of several universally used encoding systems that convert files of binary data into conventional alphanumeric characters; such encoding system includes Uuencode, Base64 and Enc; encoding systems encode the data into ASCII based alphanumeric text files that will be hereinafter described in greater detail. These encoded alphanumeric text files are transmitted to the second computer system via a text transmission process where this alphanumeric text is then decoded into the defined portion of formatted native text that is inserted into a formatted native text document stored in said second computer system.
It should be noted that an important aspect of the present invention involves the marshalling of the data representative of the defined portion of native text/graphics stored in the first computer system into a contiguous block of marshalled data that in turn will be encoded fir the transfer in accordance with the invention.
Because the above-mentioned encoding systems convert files of binary data into conventional alphanumeric characters that are universally used, they are likely to be operable on both the first computer system and the different destination computer system. Accordingly, the present invention is implemented by first storing the defined portion as a block of formatted native text data on a clipboard in the first computer system. This block should be marshalled, i.e. the pieces of data, in the memory of the first computer system that represent the defined block of native text and are stored at diverse or non-collective locations in this memory, are collected into a contiguous block in memory, preferably in a memory buffer. This block is encoded into the encoded alphanumeric text, and then, after transmitting the encoded text, there is a verification that the encoded text is encoded by a format operable on the second or destination computer. Upon such verification, the encoded text is decoded back into the block of marshalled formatted native text, stored on an appropriate buffer in the second computer system. The block is then unmarshalled so that the received block is normally stored in the memory of the second computer system as represented by data at diverse locations in the memory. The transferred, decoded and unmarshalled block of native data may now be selectively inserted from the second or destination computer clipboard into a document stored in the second computer system.
The present invention will be better understood and its numerous objects and advantages will become more apparent to those skilled in the art by reference to the following drawings, in conjunction with the accompanying specification, in which:
Referring to
This encoding implementation, for the purpose of illustrating the present invention will have a “Uuencode” structure, may be any of a group of universally used coding structures or schemes including, but not limited to, “Uuencode”, “Base64”, and “yEnc” that convert native language and like text documents into ASCII text. In accordance with the illustration in
This encoded portion 16 is then transferred 17 to the different Computer System II 20 where, upon receipt, the user would store as coded portion 47 on clipboard 45. Computer System II would then verify that coded portion 47 is a text buffer that has been encoded by a scheme—in the present example Uuencode—that Computer System II has available. Consequently, using Uudecode, the encoded portion 47 will be decoded to marshalled data that was encoded prior to transmission. This marshalled data block is unmarshalled by the Computer System II 10 so that the received block is normally stored in the memory of the Computer System II as represented by data at diverse locations in the memory, wherein the original native text portion 24 on clipboard 45, which is substantially identical to native text portion 14. The text portion 14 is then pasted as portion 22 into text document 21 that may be, for example, a Microsoft Word™ document displayed on screen 23 of the second computer system 20.
It should he noted that the program of the present invention may be implemented as part of the GUI (Graphical User Interface) of Computer System I, the transferring system. If thus implemented, the GUI of Computer System I would automatically provide a menu option to the paste item, wherein the defined portion would be encoded before pasting.
The Uuencode program used in the illustration has been widely used in Unix based systems, i.e. Uuencode: “Unix-to-Unix encoding”. “Uudecode”, of course, reverses the effects of Uuencode to thereby recreate the file of native language text. The Base64 encoding/decoding scheme may also be effectively used in the practice of this invention.
With respect to
Provision is made for storing the decoded and unmarshalled block of native text on a clipboard at the second computer system, step 58. Provision is then mace for inserting the block of text from the clipboard in the second system into a selected point in a selected document stored in the second computer system, step 59.
With the implementation described above, a user at a first computer system with a defined block of native text on a clipboard supported by the first computer system is enabled to provide this same block of native text in its precise format on a clipboard supported by a second computer system that has a different platform or operating system, wherein the native text on the clipboard of the second system is ready to be pasted into a text document stored in the second computer transparently, without losing the format or any of the other attributes of the cut native text, as if it were a simple cut and paste routine on the same computer system.
A simple illustrative example of a run of the process set up in
However, if the determination at step 67 is Yes, there is a verification, then the encoded text is decoded via Uudecode and unmarshalled, as described above, to its original native text format, step 69, which is stored on a clipboard in the second computer system, step 70. At this point, a determination is made, step 71, as to whether the user has selected to insert the native text stored on the clipboard, if No, the process is branched back to step 70 via “B”, the native text is stored on the clipboard awaiting insertion. If the determination in step 71 is Yes, then the block of cut native text on the clipboard is pasted, i.e. inserted, as selected by the user into an appropriate document in the second computer system, step 72. At this time, a routine determination may be made as to whether the application run is at an end, step 73. If Yes, the application is exited. If No, the process is returned to initial step 61 via branch “C”.
Although certain preferred embodiments have been shown and described, it will be understood that many changes and modifications may be made therein without departing from the scope and intent of the appended claims.