Patent Publication Number: US-9888135-B2

Title: Computing device and system supporting pull printing by using mobile terminal, and method of performing pull printing by using mobile terminal

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims the priority benefit of Korean Patent Application No. 10-2014-0112329, filed on Aug. 27, 2014, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference. 
     BACKGROUND 
     1. Field 
     One or more exemplary embodiments relate to methods of performing pull printing by using a mobile terminal, and a computing device and a system for performing pull printing by using a mobile terminal. 
     2. Description of the Related Art 
     To store content of a PC in a mobile terminal such as a smartphone and print the content in a desired situation and at a desired place, the following method may be used: first, the content is transmitted to the smartphone by connecting the PC and the smartphone together via a USB cable or the content is attached to an email on the PC and downloaded by the smartphone by accessing the email account, or the content is transmitted to a cloud server on the PC and then downloaded to the smartphone by accessing the cloud server, and then the content is transmitted from the smartphone to the printer to print the content. However, these processes are all complicated or difficult to use, and moreover, as content is rendered in a mobile app installed on the smartphone, printing quality degrades. 
     As a method of improving convenience of a print job, pull printing, in which content is stored in a server and transmitted to a desired printer to print the content, may be used. However, pull printing requires a server where the content is stored, thus resulting in the cost for purchase and maintenance of the server. 
     SUMMARY 
     One or more exemplary embodiments include methods, apparatuses, and systems for performing pull printing by using a mobile terminal instead of a server. 
     According to one or more exemplary embodiments, there is provided a computing device supporting pull printing by using an available mobile terminal, the computing device may comprise a user interface unit configured to receive an input to select a print job and a printing method; a communication unit configured to transmit or receive data; a mobile search management unit configured to search for the available mobile terminal if pull printing by using the available mobile terminal is selected as the printing method; a printer driver configured to render print data corresponding to the selected print job into a printable format file; a data transmission management unit configured to transmit the rendered print data to the available mobile terminal by using the communication unit; and a controller which controls the user interface unit, the communication unit, the mobile search management unit, the printer driver and the data transmission management unit. 
     . . . In an aspect of one or more embodiments, there is provided a computing device supporting pull printing by using one of a plurality of available mobile terminals, the computing device comprising: a user interface unit configured to receive an input to select a print job and a printing method; a communication unit configured to transmit or receive data; a mobile search management unit configured to search for available mobile terminals if pull printing by using one of the available mobile terminals is selected as the printing method; a printer driver configured to render print data corresponding to the selected print job into a printable format file; a data transmission management unit configured to transmit the rendered print data to one of the available mobile terminals by using the communication unit; and a controller which controls the user interface unit, the communication unit, the mobile search management unit, the printer driver and the data transmission management unit, wherein the mobile search management unit acquires identification information of the available mobile terminals and displays the identification information on the user interface unit, and wherein the data transmission management unit transmits the rendered print data to the one of the available mobile terminals corresponding to identification information selected by a user from among the identification information of the available mobile terminals. 
     The mobile search management unit may acquire a plurality of phone numbers, a plurality of IP addresses, and a plurality of port numbers of available mobile terminals connected to a network and display the acquired phone numbers on the user interface unit, and the data transmission management unit may transmit, by using one of the acquired IP address and one of the acquired port numbers, the rendered print data to the one of the available mobile terminals corresponding to one of the phone numbers selected by a user from among the displayed phone numbers. 
     The mobile search management unit may transmit a packet requesting the one of the phone numbers of the one of the available mobile terminals to the network by using a user datagram protocol (UDP) and receives a data packet including the one of the phone numbers of the mobile terminals from a simple network management protocol (SNMP) of the one of the available mobile terminals connected to the network. 
     If a list of previously used mobile terminals exists, the mobile search management unit may display the list of previously used mobile terminals on the user interface unit, and when one of the previously used mobile terminals is selected from the list of previously used mobile terminals, the mobile search management unit may request an SNMP agent of the selected previously used mobile terminal to determine whether the selected previously used mobile terminal is available. 
     The printer driver may render objects included in the print data into a raw image, convert the raw image to an image format file, and generate the printable format file including the image format file. 
     The user interface unit may provide a screen via which a printing option regarding the print job is set, and the printer driver may apply the set printing option set via the user interface unit to the print data and render the print data to which the set printing option is applied. 
     The printer driver may inquire the data transmission management unit whether pull printing by using the available mobile terminal is possible, and if the mobile search management unit succeeds in searching for the available mobile terminal, the data transmission management unit may respond to the printer driver that pull printing by using the available mobile terminal is possible. 
     According to one or more exemplary embodiments, there is provided a system supporting pull printing by using a mobile terminal, which may include: a computing device configured to receive a user input to select a print job and a printing method and configured to render print data corresponding to the selected print job; a mobile terminal configured to receive the rendered print data from the computing device and configured to store the rendered print data; and an image forming apparatus configured to receive the stored print data from the mobile terminal to print the print data, wherein when pull printing by using the mobile terminal is selected as the printing method, the computing device searches for the mobile terminal and renders the print data into a printable format file to transmit the rendered print data to the mobile terminal. 
     When the mobile terminal receives a print request for the stored print data, the mobile terminal may search for an available image forming apparatus and transmit the stored print data to the available image forming apparatus. 
     According to one or more exemplary embodiments, there is provided a method of performing pull printing by using an available mobile terminal which may include receiving of a user input to select a print job and pull print by using the available mobile terminal as a printing method; searching for the available mobile terminal; rendering print data corresponding to the selected print job into a printable format file; and transmitting the rendered print data to the available mobile terminal which is found during the search. 
     In an aspect of one or more embodiments, there is provided a method of performing pull printing by using one of a plurality of available mobile terminals, the method may comprise receiving a user input to select a print job and to pull print by using one of the available mobile terminals as a printing method; searching for available mobile terminals; rendering print data corresponding to the selected print job into a printable format file; and transmitting the rendered print data to one of the available mobile terminals which was found during the search, wherein the transmitting of the rendered print data to one of the available mobile terminals comprises: displaying identification information of the available mobile terminals on a screen; receiving information indicating one selected piece of identification information of the available mobile terminals; and transmitting the rendered print data to one of the available mobile terminals corresponding to the one selected piece of identification information. 
     The searching for available mobile terminals may include acquiring a plurality of phone numbers, a plurality of corresponding IP addresses and a plurality of corresponding port numbers of mobile terminals connected to a network, wherein the transmitting the rendered print data to the one of the available mobile terminals may include displaying the phone numbers of available mobile terminals on a screen of a computing device; receiving information indicating a phone number of the one of the available mobile terminals that is selected; and transmitting the rendered print data to the one of the available mobile terminals corresponding to the selected phone number by using the corresponding acquired IP address and the corresponding acquired port number. 
     The searching for available mobile terminals may include: transmitting a data packet requesting a phone number of the one of the available mobile terminals by using a user datagram protocol (UDP) to the network; and receiving a data packet including the phone number of the one of the available mobile terminals from a simple network management protocol (SNMP) of the one of the mobile terminals connected to the network. 
     The searching for an available mobile terminal may include: if a list of previously used mobile terminals exists, displaying the list of previously used mobile terminals on a user interface unit; and when one of the previously used mobile terminals of the list of previously used mobile terminals is selected, requesting an SNMP agent of the selected previously used mobile terminal to determine whether the selected previously used mobile terminal is available. 
     The rendering may include: rendering objects included in the print data into a raw image; converting the raw image into an image format file; and generating the printable format file including the image format file. 
     The receiving of the user input to select pull printing as a printing method by using the available mobile terminal may include receiving information indicating a printing option regarding the selected print job, and the rendering may include applying the set printing option to the print data and rendering the print data to which the printing option is applied. 
     In an aspect of one or more embodiments, there is provided a mobile terminal supporting pull printing which may include a communication unit configured to receive a check availability for pull printing request from a computing device and configured to transmit an available for pull printing response to the computing device; the communication unit configured to receive, store, and transmit rendered print data in a printable format file; and a display unit configured to display a user interface for selection of a list of available image forming apparatuses for printing rendered print data and for selection of rendered print data in the printable format file generated by the computing device from among printable format files. 
     In an aspect of one or more embodiments, there is provided at least one non-transitory computer readable medium storing computer readable instructions which when executed implement methods of one or more embodiments. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       These and/or other aspects will become apparent and more readily appreciated from the following description of exemplary embodiments, taken in conjunction with the accompanying drawings in which: 
         FIG. 1  illustrates an environment in which a method of performing pull printing by using a mobile terminal is performed, according to an exemplary embodiment is performed; 
         FIG. 2  is a diagram for explaining a method of performing pull printing by using a mobile terminal, according to an exemplary embodiment; 
         FIG. 3  is a flowchart of a method of performing pull printing by using a mobile terminal, according to an exemplary embodiment; 
         FIGS. 4 and 5  are diagrams for explaining a process of selecting pull printing by using a mobile terminal, from among printing methods, according to an exemplary embodiment; 
         FIGS. 6 and 7  are diagrams for explaining a process of searching for an available mobile terminal, according to an exemplary embodiment; 
         FIGS. 8 through 10  are diagrams for explaining a process of searching for available mobile terminals if a list of mobile terminals that have been used before exists, according to an exemplary embodiment; 
         FIG. 11  is a view for explaining a process of rendering print data to be transmitted to a mobile terminal, according to an exemplary embodiment; 
         FIG. 12  is a flowchart of a process of rendering print data to be transmitted to a mobile terminal according to an exemplary embodiment; 
         FIGS. 13A and 13B  are views for explaining a process of transmitting rendered print data to a mobile terminal, according to an exemplary embodiment; 
         FIG. 14  is a view for explaining a function of providing a preview before printing print data stored in a mobile terminal, according to an exemplary embodiment; 
         FIGS. 15A through 16  are views for explaining a process of performing printing by transmitting print data stored in a mobile terminal to an image forming apparatus, according to an exemplary embodiment; 
         FIGS. 17 and 18  are views for explaining a process of performing pull printing by downloading print data stored in a cloud storage to a mobile terminal, according to an exemplary embodiment; and 
         FIG. 19  illustrates a structure of a computing device according to an exemplary embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     Reference will now be made in detail to exemplary embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout. In this regard, the present exemplary embodiments may have different forms and should not be construed as being limited to the descriptions set forth herein. Accordingly, exemplary embodiments are merely described below, by referring to the figures, to explain aspects of embodiments. For clarity of description of the features of embodiments, details that are well known to one of ordinary skill in the art will be omitted. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. 
       FIG. 1  illustrates an environment in which a method of performing pull printing by using a mobile terminal, according to an exemplary embodiment, is performed. 
     Referring to  FIG. 1 , in order to perform the method of performing pull printing by using a mobile terminal, according to an exemplary embodiment of the present disclosure, a computing device  100 , a mobile terminal  200 , and an image forming apparatus  300  are involved. 
     The computing device  100  may be a desktop computer or a laptop, but is not limited thereto, and may be other various devices, to or from which print data may be transmitted or received and which include a printer driver. Also, the mobile terminal  200  may be a smartphone, a wearable digital device, a personal digital assistant, portable media player, digital camera, portable game player, or a tablet, but is not limited thereto, and may be various other terminals, to or from which print data may be transmitted or received and which include a printer driver. Also, the image forming apparatus  300  may be a printer or a multi-functional printer, but is not limited thereto, and may be other various devices, to or from which print data may be transmitted or received and which include a printer driver. 
     According to the method of performing pull printing by using a mobile terminal, according to an exemplary embodiment of the present disclosure, the computing device  100  may search for an available mobile terminal and renders print data to be transmitted to a found mobile terminal. The computing device  100  renders print data into a printable format file. For example, the computing device  100  may render print data into a PDF file, or into a format file which satisfies both conditions of a format file that a mobile terminal is able to open and of a format file that an image forming apparatus is able to print. The computing device  100  transmits the print data rendered into a printable file, to the mobile terminal  200 . A configuration of the computing device  100  will be described in detail later with reference to  FIG. 20 . 
     The mobile terminal  200  receives from the computing device  100  the print data rendered into a printable format file and stores the same, and if a print command is received, the mobile terminal  200  may transmit the stored print data to the image forming apparatus  300  to request printing. The mobile terminal  200  may search for an available image forming apparatus, and a user may select an available image forming apparatus. The mobile terminal  200  may also provide a preview of the stored print data according to a user&#39;s request. A configuration of the mobile terminal  200  will be described in detail later with reference to  FIG. 21 . 
     The image forming apparatus  300  may receive the print data from the mobile terminal  200  and prints the received print data. The image forming apparatus  300  may receive the print data from the mobile terminal  200  by using a method such as Wi-Fi, Wi-Fi Direct, Bluetooth, ZigBee, ultra wideband (UWB), infrared data association (IrDA), Bluetooth low energy (BLE), near field communication (NFC), a radio frequency (RF) or other various communication methods. 
     As described above, in pull printing by using a mobile terminal, according to an exemplary embodiment of the present disclosure, the mobile terminal  200  functions as a server of conventional pull printing, and thus, the costs for purchase and maintenance of a server may be saved. Also, as the computing device  100  is in charge of rendering print data, printing quality may be improved, compared to when the mobile terminal  200  itself performs rendering. 
       FIG. 2  is a diagram for explaining a method of performing pull printing by using a mobile terminal, according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 2 , the computing device  100  receives information indicating that pull printing by using a mobile terminal is selected as a printing method in operation  201 . Selection of a printing method will be described in detail later with reference to  FIGS. 4 and 5 . 
     In operation  202 , the computing device  100  searches for an available mobile terminal. The computing device  100  may search for a new mobile terminal or display a list of mobile terminals that have been used before, on a screen, and if a user selects any mobile terminal, the computing device  100  may check the availability of the selected mobile terminal. Searching for a mobile terminal will be described in detail later with reference to  FIGS. 6 to 10 . 
     In operation  203 , the computing device  100  performs rendering on print data. A printer driver of the computing device  100  renders print data into a file of a printable format. For example, a printer driver of the computing device  100  may render print data into a PDF file. Rendering print data will be described in detail below with reference to  FIGS. 11 and 12 . 
     In operation  204 , the computing device  100  transmits rendered print data to the mobile terminal  200 . Transmission of print data will be described in detail below with reference to  FIGS. 13A and 13B . 
     In operation  205 , the mobile terminal  200  stores received print data. 
     In operation  206 , the mobile terminal  200  searches for available image forming apparatuses and receives information indicating an image forming apparatus, which is selected by a user from among found image forming apparatuses, that is to perform printing. 
     In operation  207 , the mobile terminal  200  transmits the print data to the selected image forming apparatus  300  to request printing. 
     In operation  208 , the image forming apparatus  300  prints the received print data. 
     Searching for an image forming apparatus and printing performed by an image forming apparatus will be described in detail below with reference to  FIGS. 15A and 15B . 
       FIG. 3  is a flowchart of a method of performing pull printing by using a mobile terminal, according to an exemplary embodiment of the present disclosure. In particular, operations illustrated in the flowchart of  FIG. 3  correspond to operations performed by the computing device  100  of  FIG. 1 . 
     Referring to  FIG. 3 , when pull printing by using a mobile terminal is selected in operation  301 , the computing device  100  searches for an available mobile terminal in operation  302 . When an available mobile terminal is found, print data is rendered into a printable format file in operation  303 , and the rendered print data is transmitted to the found mobile terminal in operation  304 . 
       FIGS. 4 and 5  are diagrams for explaining a process of selecting pull printing by using a mobile terminal, as a printing method, according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 4 , a screen  400  via which printing of a print job is requested is displayed on a display unit of the computing device  100 . Here, a print job means various contents such as a document or an image which is an object to be printed. On the screen  400  of  FIG. 4 , an example in which a document generated by a document generating program is selected as a print job is illustrated. As illustrated in  FIG. 4 , when a print button  411  is selected on the screen  400 , sub-menus such as print, quick print, and printing preview are displayed, and then if print  412  is selected from the sub-menus, a popup via which a print setup is set is displayed. The popup via which a print setup is set is illustrated in  FIG. 5 . 
     Referring to  FIG. 5 , the popup via which a print setup is set is illustrated on a first screen  500   a . On the first screen  500   a , various print options such as the number of printing pages or the number of pages to be printed on a single page may be set. 
     If a ‘Properties’ button  510  is selected on the first screen  500   a , a second screen  500   b  via which other specific print options are set and a printing method is selected is displayed. Among items displayed on the second screen  500   b , “PRINT USING MY PHONE”  520  corresponds to pull printing by using a mobile phone according to an exemplary embodiment of the present disclosure. Thus, if “PRINT USING MY PHONE”  520  is selected, the computing device  100  determines that pull printing by using a mobile phone has been selected as a printing method, and starts searching for an available mobile terminal. 
       FIGS. 6 and 7  are diagrams for explaining a process of searching for an available mobile terminal, according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 6 , the computing device  100  may transmit a packet requesting a phone number to the mobile terminal  200 , and the mobile terminal  200  may transmit a response packet including the phone number to the computing device  100 . The phone number of the mobile terminal  200  is requested because phone numbers are appropriate as identification information of the mobile terminal  200 . Thus, besides phone numbers, other information that may be used as identification information of the mobile terminal  200  such as a model name of the mobile terminal  200  or a name set to the mobile terminal  200  by a user may be requested. 
       FIG. 6  illustrates a transmission record  610  of packets between the computing device  100  and the mobile terminal  200 . Referring to record No. 6 in the uppermost line of the transmission record  610 , an IP address  611  of the computing device  100  is 192.168.2.39, and the computing device  100  sets an IP address  612  of a destination to 255.255.255.255 and sends a packet requesting a phone number by using a user datagram protocol (UDP). The mobile terminal  200  generates a packet including a phone number in response to the packet received from the computing device  100  and sends the packet including the phone number to the computing device  100 . Referring to record No. 9 in the lowermost line of the transmission record  610 , an IP address  613  of the mobile terminal  200  is 192.168.2.48, and the mobile terminal  200  transmits the generated packet to the IP address of the computing device  100  set as an IP address  614  of a destination. 
     Data  620  including a phone number of the mobile terminal  200 , included in the packet transmitted by the mobile terminal  200  to the computing device  100  is illustrated in  FIG. 6 . Referring to  FIG. 6 , a phone number (01012341357) of the mobile terminal  200  is included in an area  621  of the data  620  included in the packet. 
       FIG. 7  illustrates a screen displayed while the computing device  100  searches for an available mobile terminal and a screen displayed on the computing device  100  after searching for a mobile terminal is completed. 
     Referring to  FIG. 7 , while the computing device  100  searches for an available mobile terminal, a popup message indicating that a mobile terminal is being searched for is displayed, as shown on a first screen  700   a . When the search is completed, a popup indicating a search result is displayed as shown on a second screen  700   b . Identification information  710  of the mobile terminal  200 , that is, a phone number and an IP address of the mobile terminal  200 , is displayed on the second screen  700   b.    
     Although the computing device  100  acquired only the phone number of the mobile terminal  200  in an embodiment of  FIG. 6 , the computing device  100  may further acquire an IP address or a port number of the mobile terminal  200  in addition to the phone number. Also, the acquired IP address or the acquired port number of the mobile terminal  200  may be displayed on a popup showing a search result with the phone number, or may be used when transmitting print data to the mobile terminal  200 . Also, the second screen  700   b , which is a popup showing a search result, may display other information that may identify the mobile terminal  200  besides the phone number or the IP address. 
     The user may select, on the second screen  700   b , the identification information  710  of the mobile terminal  200  that is found and select a print button to thereby request pull printing by using the found mobile terminal. 
     Alternatively, if the user wishes to search for a different mobile terminal than mobiles terminals displayed on the second screen  700   b , the user may select a search button of the second screen  700   b  again so that a mobile terminal is searched for again. 
     Information about mobile terminals used to perform pull printing before may be stored in the computing device  100 . Hereinafter, a process of displaying, if information about mobile terminals used to perform pull printing before exists in the computing device  100 , a list of mobile terminals used before, and checking the availability of a mobile terminal selected by a user will be described with reference to  FIGS. 8 through 10 . 
     Referring to  FIG. 8 , the display unit of the computing device  100  displays a list of mobile terminals used to perform pull printing before, as shown on a first screen  800 . Information regarding the mobile terminals used to perform pull printing before may be stored in a registry of the computing device  100 , as displayed on a second screen  850 . 
     When the user selects identification information  810  of one of two mobile terminals displayed on a popup on the first screen  800  of  FIG. 8  and selects a print button, the computing device  100  checks the availability of a mobile terminal corresponding to the selected identification information  810 . Here, in addition to a phone number or an IP address, a model name or a name set by the user or the like may also be used as identification information of a mobile terminal. 
     If the user wishes to search for a different mobile terminal than the mobile terminals displayed on the first screen  800 , the user may select a search button again of the first screen  800  so as to also search for mobile terminals that are connected to peripheral networks besides the mobile terminals included in the list. 
     Referring to  FIG. 9 , the computing device  100  transmits a check request to the selected mobile terminal  200  in order to check the availability of the selected mobile terminal  200 . In detail, the computing device  100  transmits a check request to a simple network management protocol (SNMP) agent of the mobile terminal  200  corresponding to the identification information  810  selected on the first screen  800  of  FIG. 8 . When a response is received from the SNMP agent of the mobile terminal  200  within a predetermined period of time, the computing device  100  determines that the mobile terminal  200  is available. However, if no response is received from the mobile terminal  200  within a predetermined period of time, the computing device  100  determines that the mobile terminal  200  is not available. 
     While the computing device  100  is waiting for a response after transmitting a check request to the SNMP agent of the mobile terminal  200 , a popup  900  including a message indicating that the availability of a mobile terminal is being checked may be displayed on a screen. 
     Referring to  FIG. 10 , upon receiving a response from the SNMP agent of the mobile terminal  200 , the computing device  100  determines that the mobile terminal  200  is available and performs a next operation. 
     On the other hand, if no response is received from the SNMP agent of the mobile terminal  200 , the computing device  100  determines that the mobile terminal  200  is not available, and may display a popup  1000  via which a search again or an end is selected. 
       FIG. 11  is a diagram for explaining a process of rendering print data to be transmitted to a mobile terminal, according to an exemplary embodiment of the present disclosure. 
     When a mobile terminal to be used to perform pull printing is determined, the computing device  100  renders print data to be transmitted to the mobile terminal. That is, a printer driver of the computing device  100  renders print data corresponding to a print job selected by the user, into a printable format file. While rendering print data, the computing device  100  may display on a screen a popup  1100  including a message indicating that print data is being generated. 
     Rendered print data is to be in an output format file in order to be immediately printable, and is to be in a document format file in order to be opened by a mobile terminal. Thus, a printer driver needs to render print data into a format file that satisfies the above two conditions, and for example, the print data may be rendered into a PDF file. A PDF file is easy to generate by a printer driver and is universal, and thus, may be easily opened by most mobile terminals. 
     In order to render print data finally into a PDF file, a printer driver converts objects included in print data into an image format file which a PDF file may include, as an intermediate process. For example, a printer driver may convert objects included in print data to a JPEG file. A JPEG file is advantageous in terms of image quality and capacity of an image. 
     In sum, the printer driver of the computing device  100  may perform rendering on print data by converting objects included in print data to an image format file and generating an output and document format file including the converted image format file. Rendering on print data will be described below in detail with reference to  FIG. 12 . 
       FIG. 12  is a flowchart of a process of rendering print data to be transmitted to a mobile terminal, according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 12 , if a print request for a document generated in an application program of the computing device  100  is received, a graphics device interface (GDI) of an operating system of the computing device  100  converts objects such as text, graphics, or an image included in a document to data that is able to be processed by a printer driver in operation  1201 , and the data is transmitted to the printer driver. 
     In operation  1202 , the printer driver of the computing device  100  renders the data obtained by converting the objects to convert the data into a rasterized raw image. 
     In operation  1203 , the printer driver converts the rasterized raw image into an image format file. For example, the printer driver may convert the raw image into a JPEG file or to other format files which may be included in an output and document format file generated as a final format file. 
     In operation  1204 , the printer driver generates a file that satisfies both conditions as an output format and a document format, including the image format file. For example, the printer driver may generate a PDF file that includes the JPEG file converted in operation  1203 , or to other format file that satisfies both conditions as an output format and a document format. 
       FIGS. 13A and 13B  are views for explaining a process of transmitting rendered print data to a mobile terminal, according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 13A , the computing device  100  may transmit rendered print data to the mobile terminal  200  by using a transmission control protocol/Internet protocol (TCP/IP). A TCP server module included in the mobile terminal  200  receives the print data transmitted by the computing device  100 . 
       FIG. 13A  illustrates an example of a packet  1310  transmitted by the computing device  100  to the mobile terminal  200 . Referring to  FIG. 13A , area A 1  of the packet  1310  includes a letter ‘SS’ of 2 bytes, indicating that the transmitted packet  1310  is for performing pull printing by using a mobile terminal. Also, a title of a document to be printed is input to area A 2  within a range of 256 bytes or less, and the rendered print data, that is, a PDF file having a size of 4 bytes or less, is input to area A 3 . Finally, the rendered print data, that is, the PDF file, is attached to area A 4 . 
     While the rendered print data is being transmitted to the mobile terminal  200 , the computing device  100  may display a popup  1300  including a message indicating that print data is being transmitted and a transmission completion rate, on a screen of the computing device  100 . 
     An embodiment in which the computing device  100  transmits the rendered print data to the mobile terminal  200  is described above only. According to another exemplary embodiment of the present disclosure, the computing device  100  may transmit print data also to other devices or servers than the mobile terminal  200 , and the mobile terminal  200  may receive the print data again from these devices or servers to perform pull printing. 
     Referring to  FIG. 13B , for example, the computing device  100  may transmit print data to a destination selected by the user from among the mobile terminal  200 , a document management server  1320 , or a cloud storage  1330 . 
     If print data is transmitted to the document management server  1320 , the document management server  1320  may transmit the print data to the mobile terminal  200  again, and the mobile terminal  200  may perform pull printing of the received print data. 
     Also, if print data is transmitted to the cloud storage  1330 , the mobile terminal  200  may access the cloud storage  1330  to download the print data, and the mobile terminal  200  may perform pull printing of the downloaded print data. 
       FIG. 14  is a view for explaining a function of providing a preview before printing print data stored in the mobile terminal  200 , according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 14 , if the mobile terminal  200  receives rendered print data from the computing device  100 , a list of received print data may be displayed on the display unit of the mobile terminal  200 , as shown on a first screen  1400   a . When a user selects one of the pieces of print data  1420  on the first screen  1400   a  from the list of print data and selects a ‘PRINT’ button, a preview  1430  of the selected print data  1420  may be displayed on the display unit of the mobile terminal  200 , as shown on a second screen  1400   b . The user may finally request printing of the selected print data  1420  by selecting the print button  1440  while the preview  1430  is displayed on the second screen  1400   b.    
     Here, the preview  1430  displayed on the second screen  1400   b  shows a printing result, and thus, the user may check the quality of the printing result and layout thereof or the like in advance by checking the preview  1430  before finally performing printing. 
     An on/off button  1410  of the first screen  1400   a  is used to activate or inactivate the mobile terminal  200  in a state where a pull printing service using a mobile terminal is available. If the on/off button  1410  is on, the mobile terminal  200  is activated in a state where the pull printing service using a mobile terminal is available, and consequently, an SNMP agent and a TCP server module included in the mobile terminal  200  are activated. 
       FIGS. 15A through 16  are views for explaining a process of performing printing by transmitting print data stored in the mobile terminal  200  to an image forming apparatus, according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 15A , the mobile terminal  200  searches for nearby available image forming apparatuses by using a SNMP. Referring to  FIG. 15A , as a result of searching for image forming apparatuses connected to a local network, by using the mobile terminal  200 , printer A  300 - 1 , printer B  300 - 2 , and printer C  300 - 3  are found. If the printer search is completed, the mobile terminal  200  displays a list of found printers on a screen thereof so that the user may select a printer to be used to print.  FIG. 15B  illustrates an example of selecting a printer to be used, from the list of found printers. 
     Referring to  FIG. 15B , a screen  1500  including the list of found printers is displayed on the display unit of the mobile terminal  200 . As illustrated in  FIG. 15B , if the user selects printer B  300 - 2  from among the found printers, rendered print data is transmitted to the selected printer B  300 - 2  to request printing. Printer B  300 - 2  that has received the rendered print data performs printing. 
       FIG. 16  illustrates sequential operations of searching for a printer and transmitting print data, performed by using a mobile terminal. 
     Referring to  FIG. 16 , in operation  1601 , the mobile terminal  200  searches for available image forming apparatuses by using a SNMP. In operation  1602 , the mobile terminal  200  displays a list of found image forming apparatuses on a screen thereof. In operation  1603 , the mobile terminal  200  receives a user input selecting one of the found image forming apparatuses. In operation  1604 , the mobile terminal  200  transmits print data to the selected image forming apparatus  300 . The transmitted print data is the print data that is received from a computing device and stored, and is rendered into a printable format tile. Finally, the image forming apparatus  300  that has received the print data performs printing in operation  1605 . 
     As described above with reference to  FIG. 13B , the computing device  100  does not directly transmit the rendered print data to the mobile terminal  200  but may transmit the same to the cloud storage  1330 , and the mobile terminal  200  may access the cloud storage  1330  to download the print data and perform pull printing. 
       FIGS. 17 and 18  are views for explaining a process of performing pull printing by downloading print data stored in the cloud storage  1330  to the mobile terminal  200 , according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 17 , the mobile terminal  200  transmits user account information input by a user to the cloud storage  1330  to log in to a cloud storage service. When login is successful, the mobile terminal  200  may receive a list of print data stored in the cloud storage  1330  and display the list of print data on a screen. When the user selects print data that the user wishes to print, by viewing the list of print data displayed on the screen of the mobile terminal  200 , the mobile terminal  200  downloads the selected print data from the cloud storage  1330 . Next, the mobile terminal  200  transmits the downloaded print data to the image forming apparatus  300  to request printing. 
     Referring to  FIG. 18 , in operation  1801 , the mobile terminal  200  transmits account information to the cloud storage  1330  to log in to a cloud storage service. In detail, when the mobile terminal  200  receives user account information regarding the cloud storage service, that is, a user ID and a password, from the user, the mobile terminal  200  transmits the received user ID and the received password to the cloud storage  1330  to log in to the cloud storage service. 
     In operation  1802 , the cloud storage  1330  transmits a list of stored print data, that is, a list of rendered print data, received from a computing device, to the mobile terminal  200 . 
     In operation  1803 , the mobile terminal  200  displays the list of print data received from the cloud storage  1330  on a screen thereof, and one of the pieces of print data is selected from the list by the user. 
     In operation  1804 , the mobile terminal  200  downloads the selected print data from the cloud storage  1330 . 
     In operation  1805 , the mobile terminal  200  searches for an available image forming apparatus by using an SNMP. 
     In operation  1806 , the mobile terminal  200  displays a list of found image forming apparatuses on the screen thereof. 
     In operation  1807 , the mobile terminal  200  receives a user input selecting one of the found image forming apparatuses. 
     In operation  1808 , the mobile terminal  200  transmits to the selected image forming apparatus the print data downloaded in operation  1804 . 
     In operation  1809 , the image forming apparatus  300  performs printing of the received print data. 
       FIG. 19  illustrates a structure of a computing device  100  according to an exemplary embodiment of the present disclosure. 
     Referring to  FIG. 19 , the computing device  100  according to an exemplary embodiment of the present disclosure may include a user interface unit (user interface)  110 , a controller  120 , a communication unit (communicator)  130 , a printer driver  140 , a data transmission management unit (data transmission manager)  150 , and a mobile search management unit (mobile search manager)  160 . 
     The user interface unit  110  is used to provide information to a user and receive a user input, and may include, for example, a monitor and a keyboard. The computing device  100  may receive information indicating a print job and a printing method selected by a user. That is, the user may, via the user interface unit  110 , select a print job such as a document or an image to be printed and select a method of printing the selected print job. In particular, the user may select pull printing by using a mobile terminal as a printing method. An operation of receiving a selection of a print job and a printing method via the user interface unit  110  is described above in detail with reference to  FIGS. 4 and 5 . 
     The controller  120  is used to control the overall operation of the computing device  100 , and is, for example, a central processing unit (CPU). 
     The communication unit  130  is used to transmit or receive data via wired or wireless communication. 
     The printer driver  140  is used to render print data. In particular, the printer driver  140  renders print data into a printable format file. In detail, the printer driver  140  renders objects included in print data into a raw image, converts the raw image into an image format file such as a JPEG file, and generates a printable format file including the image format file, such as a PDF file. 
     A printing option regarding a print job may be set via the user interface unit  110 , and the printer driver  140  may apply the set printing option to the print data and may render the print data to which the printing option is applied. 
     Examples of printing options may be a change of a layout, addition of information to each page, color setting, and printing quality setting. The printing options correspond to printing options for which information may be stored during a process, in which objects included in the print data are converted to a raw image and the raw image is converted to a general-use image format file. 
     However, if a command is provided by a printer driver to set printing options such as two-sided printing, setting of a paper feeding tray, or a type of paper, and if these options are implemented by an image forming apparatus in fact, the printing options may not be stored in an image format file or an output format tile and thus cannot be used. 
     The mobile search management unit  160  searches for a mobile terminal that may be used to perform pull printing, and the data transmission management unit  150  transmits print data rendered by using the printer driver  140  to a found mobile terminal via the communication unit  130 . 
     In detail, the mobile search management unit  160  may search for at least one mobile terminal connected to a network to acquire a phone number, an IP address, and a port number of the found mobile terminal. The mobile search management unit  160  may display the phone number of the mobile terminal among the acquired information as identification information of the mobile terminal on the user interface unit  110 . 
     When the user selects one of the phone numbers of the mobile terminals displayed on the user interface unit  110 , the data transmission management unit  150  transmits rendered print data to a mobile terminal corresponding to the selected phone number by using the IP address and the port number acquired by using the mobile search management unit  160 . 
     A process of searching for a mobile terminal performed by the mobile search management unit  160  is performed as follows: The mobile search management unit  160  transmits to a network a data packet requesting a phone number of a mobile terminal by using a UDP. A SNMP agent of a mobile terminal connected to the network generates, in response to the data packet transmitted by the mobile search management unit  160 , a data packet including the phone number of the mobile terminal and transmits the data packet to the network by using a UDP. The mobile search management unit  160  of the computing device  100  receives the data packet transmitted by the SNMP agent of the mobile terminal to acquire the phone number of the mobile terminal. The mobile search management unit  160  may also request and acquire, besides the phone number the mobile terminal, an IP address, a port number, or the like of the mobile terminal. 
     If a list of mobile terminals used before exists, the mobile search management unit  160  may display the list of mobile terminals on the user interface unit  110 . When the user selects one of the mobile terminals from the displayed list of mobile terminals, the mobile search management unit  160  requests the SNMP agent of the selected mobile terminal to determine availability. When the mobile search management unit  160  receives a response from the SNMP agent of the selected mobile terminal, the mobile search management unit  160  determines that the selected mobile terminal is available. However, if the mobile search management unit  160  does not receive a response from the SNMP agent of the selected mobile terminal, the mobile search management unit  160  determines that the selected mobile terminal is not available. 
     When a document to be printed is selected and pull printing is selected by using a mobile terminal as a printing method, via the user interface unit  110 , the printer driver  140  transmits to the data transmission management unit  150  a title of the document and a job ID to inquire whether a pull printing function can be used. The data transmission management unit  150  receiving the inquiry may instruct the mobile search management unit  160  to request for a phone number, an IP address, and a port number of a mobile terminal to which print data is to be transmitted. The mobile search management unit  160  requests a mobile terminal connected to a network for a phone number, an IP address, and a port number thereof. Upon receiving a response from the mobile terminal, the mobile search management unit  160  generates a list of available mobile terminals and displays the list of available mobile terminals on the user interface unit  110 . When the user selects one of the mobile terminals from the list of available mobile terminals, the mobile search management unit  160  transmits to the data transmission management unit  150  a phone number, an IP address, and a port number of the selected mobile terminal. The data transmission management unit  150  that has received the phone number, the IP address, and the port number from the mobile search management unit  160  responds to the printer driver  140  that a pull printing function can be used. 
     As described above, according to the one or more of the above exemplary embodiments, by performing pull printing by using a mobile terminal without a server, the costs for purchase of a server and maintaining the server may be saved. In addition, rendering content to be printed is performed not by using a mobile terminal but a computing device such as a PC, and thus, printing quality may be improved. 
     Processes, functions, methods, and/or software in apparatuses described herein may be recorded, stored, or fixed in one or more non-transitory computer-readable media (computer readable storage (recording) media) that includes program instructions (computer readable instructions) to be implemented by a computer to cause one or more processors to execute (perform or implement) the program instructions. The media may also include, alone or in combination with the program instructions, data files, data structures, and the like. The media and program instructions may be those specially designed and constructed, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of non-transitory computer-readable media include magnetic media, such as hard disks, floppy disks, and magnetic tape; optical media such as CD ROM disks and DVDs; magneto-optical media, such as optical disks; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory (ROM), random access memory (RAM), flash memory, and the like. Examples of program instructions include machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter. The program instructions may be executed by one or more processors. The described hardware devices may be configured to act as one or more software modules that are recorded, stored, or fixed in one or more non-transitory computer-readable media, in order to perform the operations and methods described above, or vice versa. In addition, a non-transitory computer-readable medium may be distributed among computer systems connected through a network and program instructions may be stored and executed in a decentralized manner. In addition, the computer-readable media may also be embodied in at least one application specific integrated circuit (ASIC) or Field Programmable Gate Array (FPGA). 
     It should be understood that exemplary embodiments described therein should be considered in a descriptive sense only and not for purposes of limitation. Descriptions of features or aspects within each exemplary embodiment should typically be considered as available for other similar features or aspects in other exemplary embodiments. 
     While one or more exemplary embodiments have been described with reference to the figures, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope as defined by the following claims and their equivalents.