Methods and systems for automatically detecting the source of the content of a scanned document

Methods, systems and computer-readable storage media for scanning a document to detect a source of the document. The document can be scanned to obtain content from the document. An automatic search of an electronic network can be then performed to determine if there is an exact match or a partial match between the content of the document and the results of search automatic search. If an exact match or a partial match is generated as a result of automatically searching the electronic network, a user can be presented with various selection options via a GUI for retrieving, viewing and printing search results of the automatic search.

TECHNICAL FIELD

Embodiments are generally related to the field of scanned documents and image processing. Embodiments further relate to OCR (Optical Character Recognition). Embodiments further relate to methods and systems for automatically identifying the source of a scanned document.

BACKGROUND

In some cases a user may have an entire document or even a portion of a document and may need to find out if the identical content contained in the document is available elsewhere, such as on the Internet. This may be necessary to determine if the document was plagiarized or is lacking in key citations. Conventionally, determining the source of a scanned document involves manually performing an Internet search (e.g., using a search engine such as Google, Bing, Yahoo, etc.) and then comparing the results (e.g., the URL) word by word to determine if the scanned document originated from an online source. This can be a slow and tedious process and even a slight mistake in manually entering the exact content into a search engine may skew the results.

BRIEF SUMMARY

It is, therefore, one aspect of the disclosed embodiments to provide methods and systems for scanning a document and detecting the source or origin of the scanned document.

It is another aspect to provide for OCR (Optical Character Recognition) of a scanned document and the use of the OCR document content in an automatic Internet search.

It is another aspect of the disclosed embodiments to provide for methods and systems for comparing the content of a scanned document to the results of an automatic Internet search based on a query that includes the exact content of the scanned document.

The aforementioned aspects and other objectives and advantages can now be achieved as described herein. Methods, systems and computer-readable storage media are disclosed for scanning a document to detect a source of the document. The document can be scanned to obtain content from the document. An automatic search of an electronic network can be then performed to determine if there is an exact match or a partial match between the content of the document and the results of search automatic search. If an exact match or a partial match is generated as a result of automatically searching the electronic network, a user can be presented with various selection options via a GUI for retrieving, viewing and printing search results of the automatic search.

DETAILED DESCRIPTION

Throughout the specification and claims, terms may have nuanced meanings suggested or implied in context beyond an explicitly stated meaning. Likewise, phrases such as “in one embodiment” or “in an example embodiment” and variations thereof as utilized herein do not necessarily refer to the same embodiment and the phrase “in another embodiment” or “in another example embodiment” and variations thereof as utilized herein may or may not necessarily refer to a different embodiment. It is intended, for example, that claimed subject matter include combinations of example embodiments in whole or in part.

Several aspects of data-processing systems will now be presented with reference to various systems and methods. These systems and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, modules, components, circuits, steps, processes, algorithms, engines, applications etc. (which can be individually or collectively referred to as “elements”). These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.

Definitions of one or more terms that will be used in this disclosure are described below without limitations. For a person skilled in the art, it is understood that the definitions are provided just for the sake of clarity, and are intended to include more examples than just provided below.

The term “document” as utilized herein can refer to an input document provided for scanning. The input document can be any document having text, graphics, mathematical formulas, charts, graphs, bar codes, QR codes, and so on. Examples of an input document can include, but are not limited to, a book, article, publication, a passport, an identification statement, an invoice, a bank statement, a computerized receipt, a business card, etc.

The term “scanned image” as utilized herein can refer to an image generated upon either scanning the document, or taking a picture of the document. The scanned image may also be referred to as a digital image.

The term “scanning device” as utilized can refer to an electronic device that receives and scans the document to generate a digital image of the document. The digital image may be of format such as pdf, jpeg, mpeg, etc. Examples of the scanning device include, but are not limited to an optical scanner, a facsimile, a digital camera, a mobile phone with camera, and a multi-function device. The scanning device may also be interchangeably used with the phrase “scanner” or “scanning module.”

The term “multi-function device” as utilized herein can to a device or a combination of multiple devices configured to perform one or more functions, but not limited to, scanning, printing, copying, imaging, and so forth. The multi-function device includes software, hardware, firmware, or combination thereof. In the context of the current disclosure, a multi-function device can include, for example, a scanning device.

The term “computing device” as utilized herein generally refers to a device that includes a processor/microcontroller and/or any other digital components, for performing one or more operations according to one or more programming instructions. In other words, the computing device has image processing capability, e.g., generating a document in the context of the current disclosure. Also, such a computing device can communicate with a scanning device as and when required. A few examples of a computing device include but are not limited to a server, a desktop PC, a notebook, a workstation, a personal digital assistant (PDA), a mainframe computer, a mobile computing device (e.g., a mobile phone, a tablet, etc.), an internet appliance, and so on. In some instances the term “data-processing system” can be utilized interchangeably with the term “computing device”.

“Optical character recognition (OCR)” as utilized herein refers to the conversion of text content (e.g., handwritten, typewritten, or printed) in an image, such as a scanned document or an image of a document, into machine-encoded text for generating an electronic document of the image. In an embodiment, the electronic document generated after performing the OCR on the image can be edited electronically.

An “electronic document” as utilized herein refers to information recorded in a manner that requires a computing device or any other electronic device to display, interpret, and process it. In an embodiment, the electronic document includes OCR text of an image. In an embodiment, the electronic document may comprise text content (i.e., OCR text), which can be edited electronically.

FIG. 1illustrates an exemplary block diagram illustrating a system100for scanning and identifying the source or origin of a document101, in accordance with an example embodiment. As depicted in the exemplary embodiment shown inFIG. 1, the system100includes a scanning device102(or a multi-function device), having a scanning module104, a memory106, and a searching and matching module108. Each of the modules104,106,108can communicate with each other and are coupled via a conventional bus or a later developed protocol. An example of such a bus is the bus110shown inFIG. 7.

Note that in some cases, the search and matching module108may be implemented as a software module that is actually stored in the memory106and subject to processing by a processor (not shown inFIG. 1). In some example embodiments, the search and matching module108may be implemented as a combination of hardware and software.

Examples of the scanning device102include, but are not limited to an optical scanner, a facsimile, a digital camera, a mobile phone with camera, a multi-function device and others. The scanning device102may have other modules (although not shown) required for implementing the disclosed embodiments but such modules should not interfere in the implementation of the disclosed embodiments. A few examples include a feeder unit, a processor, or the like.

The input document101is typically provided as a hard copy of physical document to the scanning device102. Note that once the scanning device102scans the document101, the resulting digital document or digital image may be considered to be an electronic document, which can be further subject to image processing operations such as OCR operation.

The input document101can be received in some embodiments via a feeder unit for scanning and passes the input document101to the scanning module104as indicated by the arrow103inFIG. 1labeled document input. Here, the input document101can be, for example, a page of written text and/or graphics, an article or portion of an article, a report, an invoice, a passport, an invoice, a bank statement, a computerized receipt, a business card, a mail, legal document, phone bill, forms and so on. These are just few examples but there can be many other types of documents for implementing the disclosed embodiments. The input document103is the actual hard copy. The input document101can include content such as graphics, text information, charts, graphics and so on.

The scanning module104receives the input document as provided by a user. Upon receiving, the scanning module104scans the input document to generate a digital or a scanned image of the input document. The scanned image as generated by the scanning module104represents a digital file of any format such as, but not limited to, pdf, jpg, txt, word, etc. The process of generating the scanned image from the hard copy is known in the art and thus, any additional details are not needed for the discussion of the current disclosure. The scanning module can be configured in some example embodiments to implement OCR operations and in fact may include an OCR engine that performs an OCR operation with respect to the scanned document. In an alternative example embodiment, the OCR engine may be a separate module contained in the scanning device102or in the memory106and which the scanning module104communicates with to facilitate OCR operations.

The scanning device102may include a Graphical User Interface (GUI, although not shown) for enabling a user to provide instructions/input for scanning the input document101. For example, the instructions may be scan a document using OCR options. The GUI further displays the digital image of the input document upon completion of the scanning process or in between.

Sometimes a user may possess a whole or a part of a document and needs to know if the same content is available via the Internet. Conventionally, the only way to determine if such content is already available via the Internet is to manually search the Internet (i.e., via a search engine) and compare the URLs presented in the search word for word to determine if the content is derived from an online search.

The approach shown inFIG. 1allows for scanning of a document (e.g., such as the input document101) via the scanning module and OCR operation with respect to the content contained in the document. The search and matching module108provides for operations involving an automatic search of the Internet based on the content contained in the scanned document101. If an exact (i.e., 100 percent) match is made with respect to the scanned content, then the user is presented with different options, which are discussed in greater detail. The user can also be presented with various options if a partial match is made. The results of the aforementioned automatic search can be provided as output as indicated by arrow105, which can be displayed for a user via the GUI discussed previously and/or manipulated by the user via the GUI. The various options discussed above can also be presented to the user through such a GUI.

The scanning module104can be configured to receive the digital input of the input document101, and also configured to convert the digital image into a binary form, and in some cases remove all lines from the digital image and perform an OCR of, for example, text and other images (e.g., graphics, charts, figures, bar codes, QR codes, etc) contained in the scanned document. The aforementioned OCR operation provided by the scanning module104can also involve rendering the digital image as a document that is an editable and searchable document of a pre-defined format such as for example, PDF. The search and matching module108performs its searching and matching operations with respect to the digital image and the contained therein.

Once the digital image is generated via the scanning module104and then the searching and matching operation performed via the search and matching module, the resulting data (e.g., search and matching results) can be provided as output data (see arrow105) and displayed in a GUI for the user. In some situations, the results can be sent to the user via email. The user can provide his email details using the GUI of the scanning device102. The user can also access the search and matching using any device such as a mobile device (e.g., smartphone), Personal Digital Assistant (PDA), tablet, laptop, computer, or any other device of the user.

Note that the memory106can store the input document101, the digital image of the input document, and the searching and matching results (generated by the search and matching module108) corresponding to the digital image of the input document101. Such information can be stored in any desired format. Any other data associated with the input document at intermediate stages may also be stored in the memory106for further retrieval or otherwise.

In the embodiment ofFIG. 1and elsewhere herein, the functionalities related to creating an OCR document can be performed at/by the scanning device102itself, while the functionalities can be performed by an external device such as a computing device400as shown inFIG. 2. Various examples of computing device include but are not limited to a server, a desktop PC, a notebook, a workstation, a personal digital assistant (PDA), a mainframe computer, a mobile computing device (e.g., a mobile phone, a tablet, etc.), an internet appliance, and so on.

FIG. 2illustrates another block diagram illustrating a system102for scanning and identifying the source or origin of a document, in accordance with an alternative example embodiment. Note that inFIGS. 1-2and throughout the specification, identical parts or elements are generally indicated by identical reference numerals.

Thus, as shown inFIG. 2, a computing device400includes a memory342, the search and matching module108and a processor341. In the example shown inFIG. 2, the search and matching module108may be contained as part of the computing device400instead of the scanning module102. In other embodiments, however, a search and scanning module108may be contained both the scanning device102and computing device400. In any event, in the scenario depicted inFIG. 2, the scanning device102can scan the input document101as discussed previously with respect toFIG. 1and then the scanned document (i.e., the digital image of the scanned document) can be provided to the computing device400, which then performs the search and matching operation via the search and matching module108as discussed previously. The module108in some embodiments can be stored as computer instructions in memory342and then processed by the processor341.

Note that the search and matching module108can search an electronic network110such as, for example, the Internet, via a search engine to determine if a match exists between the scanned content and Internet search results. Note that the term “search engine” as utilized herein generally refers to a system that executes a search and retrieves stored data. The search engine may form part of the search and matching module (e.g., a sub-module of the module108) or may be a separate application accessible by the search and matching module. The search performed by the search engine is performed automatically. Such a search engine can be configured to identify search results responsive to a query composed of, for example, the content contained in the scanned document101(e.g., after being subject to an OCR operation).

The term “Internet” as utilized herein refers to the global computer network providing a variety of information and communication facilities, consisting of interconnected networks using standardized communication protocols. Electronic communication between the computing device400and the electronic network110is indicated by arrow107inFIG. 2and may be implemented via wireless and/or wireline communications.

FIG. 2thus another exemplary system120including the scanning device102and a computing device400. The details of the scanning device102remain the same as discussed above (i.e.,FIG. 1) and thus need not be discussed again. The scanning device102may not include a search and matching module or may communicate with the computing device400for generating the OCR document containing the content to be utilized as part of the automatic Internet search and matching operation. In the particular embodiment ofFIG. 2, the computing device400generates the OCR document. The scanning device102is in communication with the computing device400through a wired or wireless network (although not shown).

Such a network may be a wireless network, a wired network, or a combination thereof. The network may also be an individual network or a collection of many such individual networks, interconnected with each other and functioning as a single large network, for example, the Internet or an intranet. The network may be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the Internet, near field communication (NFC), and such. The network may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols. Further, the network may include network devices, such as network switches, hubs, routers, HBAs, for providing a communication link between the scanning device102and other connected devices/systems.

As shown inFIG. 2, the computing device400receives the scanned image from the scanning device102. While in other embodiments, the computing device400may receive the scanned/digital image of the input document101from other sources. For example, the computing device400may download the digital image from a server, or receive the digital image from a user through email, USB transfer, Bluetooth transfer or the like.

Upon receiving, the digital image is stored in a memory342of the computing device400and is sent to the search and matching module234for further processing, i.e., for searching the Internet and comparing search results against the content of the scanned document (i.e., the digital image). The details of the module108remains similar to the module108as discussed above with respect toFIG. 1and hence the details can be referred to. In this manner, the OCR document can be generated by the computing device400rather than by the scanning module104.

Assuming that an exact match is found as a result of the aforementioned Internet search (i.e., performed by the system100or the alternative system120), the user can be presented via the aforementioned GUI with several options to select from. A user can select from one or more of the following options. First, the user can be presented with an option to request that the URL associated with the matched content be sent to his or her email for reading rather than printing the document (i.e., the matched document). This is a “greener” option because it eliminates the need to print the whole document. Second, if the user has only part of the document, the user can choose to print the rest of the content from the online source. Third, the user can be presented with an option that allows the user to annotate the scanned document with the URL (e.g., to potentially identify plagiarism wherein the exact content of scanned document has been found on the Internet as a result of the Internet search) and then print the document with the URL(s) embedded in the document.

FIG. 3illustrates a block diagram illustrating another system130for scanning and identifying the source or origin of a document, in accordance with an example embodiment. The system130is a slightly different version of the system100shown inFIG. 1. In the arrangement shown inFIG. 3, the search and matching module is stored in memory106and can be retrieved and processed by a processor (not shown inFIG. 1).

FIG. 4illustrates an additional block diagram illustrating yet another system140for scanning and identifying the source or origin of a document, in accordance with an alternative example embodiment. The system140is a slightly different version of the system120shown inFIG. 2. In the configuration shown inFIG. 4, the module108is shown as stored in memory108and may be processed via the processor341resulting in output indicated by arrow105.

FIG. 5illustrates a high-level flow of operations depicting logical operation steps of a method180for scanning and identifying the source or origin of a document, in accordance with an example embodiment. As shown at block181, the method180can be initiated. As shown next at block182, a step, operation or instruction can be implemented wherein the scanning device102can receive a document such as input document101. Next, as indicated at block184, a step, operation or instruction can be implemented in which the document101is actually scanned via the scanning device102. The scanning module104discussed previously can facilitate this operation.

Thereafter, as depicted at block186, a step, operation or instruction can be processed in which the digital image of the scanned document is generated. Then, as illustrated at block188, the digital image can be subject to an OCR operation. The operations shown at blocks186and188may be facilitated by the scanning module104or another module such as, for example, a separate module for generating the digital image and/or a separate module for performing the OCR operation. Such modules may communicate with one another and in some cases may be stored in, for example, the memory106and/or memory342.

In any event, once the OCR operation is complete, an Internet search can be automatically performed as depicted at block190to search for the exact content or even partial contained in the OCR document. Such an Internet search can be automatically performed based on the document content and optionally based on search options selected by a user. There are a number of possible search options that can be selected by a user. These options can be presented for the user in the context of an interactive GUI. The user can make his or her selections through a GUI associated with, for example, the various systems and devices previously discussed herein. Examples of such search options are summarized below:

a) The user can request that the search be performed via the Internet or limited to a specified server (e.g., by name or ip address);

b) The user may request that he or she be notified only on a 100 percent match or on a partial match;

c) On a match, the user can specify that he or she only wants the URLS or the content to be downloaded as well;

d) The user can use a scanned document or insert a soft copy of the document or type text on the local interface;

e) The user can select to exclude/include URLs/pictures within the document (as there could have a hyper link inside a hyperlink) for the search; and

f) The user can limit the search to a particular geographical region.

A search engine as discussed may facilitate this search. If an exact or a partial search is not found (e.g., no match is found at all) as shown at decision block192, the process then ends as depicted at block196. If an exact search is found as indicated at decision block192, the user can be presented with various selection options via a GUI, as shown at block194. The process then terminates, as indicated at block195. Note that the steps, instructions or operations shown at blocks190,192and194can be implemented by, for example, the search and matching module108.

FIG. 6illustrates a high-level flow of operations depicting logical operation steps of a method200for providing a user with additional options if a match is found as a result of an Internet search, in accordance with an example embodiment. These additional options can be provided for the user via a GUI. Assuming that a match was found as a result of the operations shown in, for example,FIG. 5, options can be presented to the user as shown at block202via the GUI discussed previously. These options are generally outlined in the various steps, operations or instructions shown in blocks204,206,208. As shown at block204, a step, operation or instruction can be implemented which presents the user (e.g., via a GUI) with an option to choose to request that the URL be send via an email to his or her email address for reading rather than printing of the document. As discussed previously, this is a “greener” option because it eliminates the need to print the whole document.

As shown at block206, a step, operation or instruction can be implemented which presents the user with an option to print part of the document from the online source. That is, if the user only has a part of the document, the user can choose to print the rest of the content from the online source (i.e., the online source identified as a result of the previously discussed searching and matching operation). A shown at block208, a step, operation or instruction can be implemented with presents the user with an option to choose to annotate the scanned content with the URL (e.g., to identify plagiarism) and then print the document with URLs embedded in the document. The process can then end, as shown at block210.

It should be appreciated that the order of the various steps, operations instructions shown at the various blocks inFIGS. 5-6can be arranged or implemented in a different order or with fewer or more steps, operations and instructions. In other words, the ordering show inFIGS. 5-6is not a limiting feature of the disclosed embodiments.

As can be appreciated by one skilled in the art, example embodiments can be implemented in the context of a method, data-processing system, or computer program product. Accordingly, some embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects all generally referred to herein as a “circuit” or a “module.” Furthermore, embodiments may in some cases take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, USB Flash Drives, DVDs, CD-ROMs, optical storage devices, magnetic storage devices, server storage, databases, and so on.

Computer program code for carrying out operations of the present invention may be written in an object oriented programming language (e.g., Java, C++, etc.). The computer program code, however, for carrying out operations of particular embodiments may also be written in conventional procedural programming languages, such as the “C” programming language or in a visually oriented programming environment, such as, for example, Visual Basic.

The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer. In the latter scenario, the remote computer may be connected to a user's computer through a local area network (LAN) or a wide area network (WAN), wireless data network e.g., Wi-Fi, Wimax, 802.xx, and cellular network or the connection may be made to an external computer via most third party supported networks (for example, through the Internet utilizing an Internet Service Provider).

To be clear, the disclosed embodiments can be implemented in the context of, for example a special-purpose computer or a general-purpose computer, or other programmable data processing apparatus or system. For example, in some example embodiments, a data processing apparatus or system can be implemented as a combination of a special-purpose computer and a general-purpose computer.

The aforementioned computer program instructions may also be stored in a computer-readable memory (e.g., such as memory342, memory106and so on) that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the various block or blocks, flowcharts, and other architecture illustrated and described herein.

As illustrated inFIG. 7, some embodiments may be implemented in the context of a data-processing system400that can include, for example, one or more processors such as a processor341(e.g., a CPU (Central Processing Unit) and/or other microprocessors), a memory342, a controller343, additional memory such as ROM/RAM332(i.e. ROM and/or RAM), a peripheral USB (Universal Serial Bus) connection347, a keyboard344and/or another input device345(e.g., a pointing device, such as a mouse, track ball, pen device, etc.), a display346(e.g., a monitor, touch screen display, etc) and/or other peripheral connections and components.

The system bus110serves as the main electronic information highway interconnecting the other illustrated components of the hardware of data-processing system400. In some embodiments, the processor341may be a CPU that functions as the central processing unit of the data-processing system400, performing calculations and logic operations required to execute a program. Such a CPU, alone or in conjunction with one or more of the other elements disclosed inFIG. 4, is an example of a production device, computing device or processor. Read only memory (ROM) and random access memory (RAM) of the ROM/RAM344constitute examples of non-transitory computer-readable storage media.

The controller343can interface with one or more optional non-transitory computer-readable storage media to the system bus110. These storage media may include, for example, an external or internal DVD drive, a CD ROM drive, a hard drive, flash memory, a USB drive or the like. These various drives and controllers can be optional devices. Program instructions, software or interactive modules for providing an interface and performing any querying or analysis associated with one or more data sets may be stored in, for example, ROM and/or RAM344. Optionally, the program instructions may be stored on a tangible, non-transitory computer-readable medium such as a compact disk, a digital disk, flash memory, a memory card, a USB drive, an optical disc storage medium and/or other recording medium

As illustrated, the various components of data-processing system400can communicate electronically through a system bus351or similar architecture. The system bus351may be, for example, a subsystem that transfers data between, for example, computer components within data-processing system400or to and from other data-processing devices, components, computers, etc. The data-processing system400may be implemented in some embodiments as, for example, a server in a client-server based network (e.g., the Internet) or in the context of a client and a server (i.e., where aspects are practiced on the client and the server). The network110discussed previously can be implemented as, for example, a client-server based network.

In some example embodiments, the data-processing system400may be, for example, a standalone desktop computer, a laptop computer, a Smartphone, a pad computing device and so on, wherein each such device is operably connected to and/or in communication with a client-server based network or other types of networks (e.g., cellular networks, Wi-Fi, etc).

FIG. 8illustrates a computer software system450for directing the operation of the data-processing system400depicted inFIG. 7. The software application454, stored for example in memory342and/or another memory, generally includes one or more modules such as module452. The computer software system450also includes a kernel or operating system451and a shell or interface453. One or more application programs, such as software application454, may be “loaded” (i.e., transferred from, for example, mass storage or another memory location into the memory342) for execution by the data-processing system400. The data-processing system400can receive user commands and data through the interface453; these inputs may then be acted upon by the data-processing system400in accordance with instructions from operating system451and/or software application454. The interface453in some embodiments can serve to display results, whereupon a user459may supply additional inputs or terminate a session. The software application454can include module(s)452, which can, for example, implement instructions or operations such as discussed herein. Examples of module453include but are not limited to modules such as the scanning module104and the search and matching module108discussed previously.

The following discussion is intended to provide a brief, general description of suitable computing environments in which the system and method may be implemented. Although not required, the disclosed embodiments will be described in the general context of computer-executable instructions, such as program modules, being executed by a single computer. In most instances, a “module” can constitute a software application, but can also be implemented as both software and hardware (i.e., a combination of software and hardware).

FIGS. 7-8are thus intended as examples and not as architectural limitations of disclosed embodiments. Additionally, such embodiments are not limited to any particular application or computing or data processing environment. Instead, those skilled in the art will appreciate that the disclosed approach may be advantageously applied to a variety of systems and application software. Moreover, the disclosed embodiments can be embodied on a variety of different computing platforms and/or operating systems, including, for example, Macintosh/Apple (e.g., Mac OSx, iOS), UNIX, LINUX, Windows, Android, and so on.

FIG. 9illustrates a high-level flow of operations depicting logical operation steps of a method220for scanning and identifying the source or origin of a document, in accordance with another example embodiment. The method220shown inFIG. 9is an alternative version of the method180discussed previously with respect toFIG. 5. Thus, inFIGS. 5 and 9, identical or similar operations, steps or instructions are indicated by identical reference numerals. Thus, the operations shown at blocks181,182,184,186,188and so on inFIG. 9are identical or similar to the same blocks depicted inFIG. 5.

The method220shown inFIG. 9provides some additional steps or operations than those show inFIG. 5. For example, following OCR operation depicted at block188, the user can be provided with an option to edit the document prior to the actual search operation. This option can be selected through a GUI as discussed previously. Thus, if a user elects to edit the document as shown at decision block189, then the user is provided with application tools for editing the document and the document can undergo user editing, as depicted at block193. Thus, a user may edit the document after the document has been subject to OCR.

The user can thus be presented with an option to edit the document to, for example, remove any diagrams, URLs, etc., or to add or remove text and so on. The resulting search as shown at block190can be based on the edited document. The user may also choose not to edit the document as indicated at decision block189and the search can be performed, as shown at block190, based on the contents of the unedited document.

Following an exact or partial match, as shown at block195, the user can be presented with a number of selection options as discussed previously but specifically, the user can request that the resulting content (matched content) be downloaded directly for the user (e.g., downloaded through a Web browser) or the URL or URLs associated with the matched content be sent only by email to the user's email address.

It is understood that the specific order or hierarchy of steps, operations, or instructions in the processes or methods disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of such steps, operation or instructions in the processes or methods discussed and illustrated herein may be rearranged. The accompanying claims, for example, present elements of the various steps, operations or instructions in a sample order, and are not meant to be limited to the specific order or hierarchy presented.

Based on the foregoing, it can be appreciated that a number of preferred and alternative embodiments are disclosed herein. In a preferred embodiment, for example, a method for scanning a document to detect the source of the document, can be implemented. Such a method can include steps, operations or instructions such as, for example: scanning a document to obtain content from the document; automatically searching an electronic network to determine if there is an exact match or a partial match between the content of the document and results of search automatic search; and if an exact match or a partial match is generated as a result of the automatically searching the electronic network, presenting a user with at least one option for retrieving, viewing and printing search results of the automatic search.

In some example embodiments, the aforementioned scanning of the document to obtain the content from the document, can further involve a step, operation or instruction of obtaining the content from the document utilizing OCR. In yet another example embodiment, the at least one option for retrieving, viewing and printing search results of the automatic search, can further involve a step, operation, or instruction of allowing a user to request that at least one URL associated with the results of the automatic search be sent by email to an email address associated with the user.

In still another example embodiment, the at least one option for retrieving, viewing and printing search results of the automatic search, can further involve a step, operation, or instruction of: if a user possesses only a portion of a matched document contained in the results of the automatic search, permitting the user to select a remainder of content of the matched document from an online source contained in the results of the automatic search.

In yet another example embodiment, the at least one option for retrieving, viewing and printing search results of the automatic search, can further involve a step, instruction or operation of: if the exact match or the partial match is generated, allowing a user to request that at least one URL associated with the results of the automatic search be sent by email to an email address associated with the user.

In another example embodiment, the at least one option for retrieving, viewing and printing search results of the automatic search, can further include a step, instruction or operation of: if the exact match or the partial match is generated, allowing a user to request that content associated with the results of the automatic search be automatically downloaded for the user.

In yet another example embodiment, the at least one option for retrieving, viewing and printing search results of the automatic search, comprises: allowing a user to annotate the scanned document with at least one URL contained in the search results and to print the scanned document with the at least one URL embedded in the scanned document.

In still another example embodiment, a step, operation or instruction can be implemented for allowing a user to edit the content of the document after the document is scanned and prior to automatically searching the electronic network to determine if there is an exact match or a partial match between the content of the document and the results of search automatic search.

In another example embodiment, a system for scanning a document to detect a source of the document can be implemented, which includes: at least one processor, and a memory storing one or more applications that, when executed on the at least one processor, performs an operation, the operation comprising: scanning a document to obtain content from the document; automatically searching an electronic network to determine if there is an exact match or a partial match between the content of the document and results of search automatic search; and if an exact match or a partial match is generated as a result of the automatically searching the electronic network, presenting a user with at least one option for retrieving, viewing and printing search results of the automatic search.

In yet another example embodiment, a non-transitory computer-readable storage medium contains instructions that, when executed by one or more processors, can be implemented, performs an operation for scanning a document to detect a source of the document, the operation comprising: scanning a document to obtain content from the document; automatically searching an electronic network to determine if there is an exact match or a partial match between the content of the document and results of search automatic search; and if an exact match or a partial match is generated as a result of the automatically searching the electronic network, presenting a user with at least one option for retrieving, viewing and printing search results of the automatic search.