U.S. patent application number 10/180764 was filed with the patent office on 2004-01-01 for system and method for users of mobile computing devices to print documents.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Wu, Zhanbing.
Application Number | 20040001217 10/180764 |
Document ID | / |
Family ID | 22661681 |
Filed Date | 2004-01-01 |
United States Patent
Application |
20040001217 |
Kind Code |
A1 |
Wu, Zhanbing |
January 1, 2004 |
System and method for users of mobile computing devices to print
documents
Abstract
A print service is provided on a network, such as the Internet
or a corporate intranet, for mobile computing devices, such as
laptops, PDA's and Web cell phones, etc., to print documents. When
the user of a mobile device wants to print a document, the mobile
device is used to access the print service and send a print request
that specifies the location the document on the network in terms of
URL. In response, the print service validates the print request,
retrieves the document, renders the document for printing, and
prints the document as requested by the user. Alternatively, the
document may be directly provided by the mobile device to the print
service.
Inventors: |
Wu, Zhanbing; (Bellevue,
WA) |
Correspondence
Address: |
LEYDIG VOIT & MAYER, LTD
TWO PRUDENTIAL PLAZA, SUITE 4900
180 NORTH STETSON AVENUE
CHICAGO
IL
60601-6780
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
22661681 |
Appl. No.: |
10/180764 |
Filed: |
June 26, 2002 |
Current U.S.
Class: |
358/1.15 ;
358/1.13 |
Current CPC
Class: |
G06F 3/1204 20130101;
G06F 3/1206 20130101; G06F 3/1247 20130101; G06F 3/1292
20130101 |
Class at
Publication: |
358/1.15 ;
358/1.13 |
International
Class: |
G06F 003/12; G06F
015/00 |
Claims
What is claimed is:
1. A computer-readable medium having computer-executable
instructions to perform steps for providing a print service on a
network, comprising: presenting a service interface for a client
communicating with the print service over the network to enter
print request data for a print request, the print request data
including data identifying a document to be printed; validating the
print request and providing feedback to the client; obtaining the
document to be printed; rendering the document into a format for
printing; and printing the rendered document in accordance with the
print request.
2. A computer-readable medium as in claim 1, wherein the network is
the Internet.
3. A computer-readable medium as in claim 2, wherein the service
interface includes a Web page via which the client enters print
request data.
4. A computer-readable medium as in claim 2, wherein the data
identifying the document to be printed include a URL of the
document to be printed, and wherein the computer-readable medium
includes further computer-executable instructions for performing
the step of retrieving the document to be printed from said
URL.
5. A computer-readable medium as in claim 4, wherein the step of
retrieving the document to be printed includes using credentials of
the user to gain access to said URL.
6. A computer-readable medium as in claim 2, wherein the step of
obtaining the document to be printed includes receiving a
transmission of the document to be printed from the client over the
Internet.
7. A computer-readable medium as in claim 1, wherein the step of
rendering includes running a local application corresponding to a
format of the document to be printed to render said document.
8. A computer-readable medium as in claim 1, wherein the step of
rendering includes invoking a remote printing rendering service to
render the document to be printed.
9. A computer-readable medium as in claim 1, wherein the step of
printing includes printing the document on a local printer of the
print service.
10. A computer-readable medium as in claim 1, wherein the step of
printing includes printing the document on a remote printer.
11. A computer-readable medium as in claim 1, wherein the network
is an intranet.
12. A method for a user of a mobile computing device to print a
document, comprising: using the mobile computing device to connect
to a network on which a print service resides; accessing a service
interface presented by the print service for receiving print
requests; entering, via the service interface, print request data
for printing the document, the print request data including data
identifying the document to be printed; and receiving a
confirmation from the print service acknowledging receipt of the
print request data.
13. A method as in claim 12, wherein the network is the
Internet.
14. A method as in claim 13, wherein the service interface includes
a Web page via which the user enters print request data.
15. A method as in claim 12, wherein the step of entering print
request data includes entering a URL of the document to be
printed.
16. A method as in claim 15, wherein the step of entering further
includes providing credentials of the user for accessing the
URL.
17. A method as in claim 12, wherein the step of entering further
includes sending the document to be printed to the print service
over the Internet.
18. A method as in claim 12, wherein the network is an
intranet.
19. A method as in claim 12, wherein the mobile computing device is
a Web cell phone.
20. A method as in claim 12, wherein the mobile computing device is
a laptop computer.
21. A method as in claim 12, wherein the mobile computing device is
a Personal Digital Assistant (PDA) device.
22. A print service system accessible through a network,
comprising: an interface component for presenting a service
interface accessible by a client over the network for the client to
enter print request data for a print request, the print request
data including data identifying a document to be printed; a request
processing component for validating the print request obtaining the
document to be printed and printing the rendered document in
accordance with the print request.
23. A print service system as in claim 22, further including a
rendering component for rendering the document into a format for
printing.
24. A print service system as in claim 23, further including at
least one application corresponding to a format of the document to
be printed and invokable by the rendering component for rendering
said document into the format for printing.
25. A print service system as in claim 23, wherein the rendering
component is programmed to invoke a remote print rendering service
to render said document into the format for printing.
26. A print service system as in claim 22, wherein the network is
the Internet, and wherein the service interface includes a Web page
via which the client enters print request data.
27. A print service system as in claim 22, wherein the service
interface is configured to receive a URL identifying a location of
the document to be printed as a parameter of the print request
data.
28. A print service system as in claim 27, wherein the request
processing component is programmed to access the URL to retrieve
the document to be printed.
29. A print service system as in claim 28, wherein the request
processing component is programmed to use credentials of the user
to gain access to said URL.
30. A print service system as in claim 22, wherein the service
interface is configured to receive the document to be printed from
the user over the network.
31. A print service system as in claim 22, further including a pool
of printers selectable for printing the document.
32. A print service system as in claim 22, further including a
logging and billing component for handling logging and billing for
processing of print requests.
Description
TECHNICAL FIELD OF THE INVENTION
[0001] This invention relates generally to computer printing, and
more particularly to a way to enable users of mobile computing
devices to print documents conveniently.
BACKGROUND OF THE INVENTION
[0002] As the Internet matures, more and more functions, such as
email, calendar, file storage, authentication, etc., have moved to
the World Wide Web on the Internet. With the increasing
availability of high-speed Internet access everywhere, customers
are shifting their priority to Internet-based mobile scenarios,
especially with wireless Internet connection. Thus, many mobile
computing devices are now equipped with wireless Internet access
capabilities, and there is a proliferation of new Internet devices
in a wide range of form factors, such Web cell phones (i.e., cell
phones with the ability to connect to the Internet wirelessly),
etc. There are now millions of on-the-go people who access their
data, documents, and e-mail from their cell phones and other
hand-held devices.
[0003] Even though mobile devices provide their users with the
freedom to access the Internet or other networks without being tied
to their desktop computers, most small mobile devices, such as
PDA's or Web cell phones, have very small display screens, and it
is somewhat inconvenient and often difficult to read regular
documents (e.g., a spread sheet) on such small screens. For this
reason, users of small mobile devices may want to print the
documents out and read the printed documents. After all, paper is a
great viewing media that is portable, easy to read, and easy to
share. In addition, it requires no power. The combination of rich
contents available on the Internet and the physical limitation of
small devices means that users would want to print the contents
from time to time at any place where they can access the
content.
[0004] Currently there is, however, no convenient way for mobile
device users to print documents when they are away from their
desktop computers. Traditionally, it is difficult even for users of
laptop computers to print documents while away from their offices.
For instance, when a user carries her laptop to a different
building of her company for a meeting, even if she can log onto the
corporate intranet and retrieve a document she needs for the
meeting, she may find that she is not able to print that document
easily. In order to print the document on a printer in that
building, she has to first discover which printers are in the
building, select a printer that is close to her, and download the
driver for that printer to her laptop. She then runs an appropriate
application (e.g., Microsoft Word, Adobe Acrobat Reader, etc.) for
that particular document format, which renders the document into a
printer-acceptable format and uses the print driver to print the
document. When the user moves to a new location and wants to print
on a different printer, she has to repeat the printer installation
process.
[0005] In comparison with printing with laptops, it is even harder
for users of small Internet devices to print documents. There is
currently a diverse set of hardware and operating system platforms
for those "thin-client" devices. Such diversity would make it very
difficult to develop a robust set of printer drivers for each
hardware/OS platform. Moreover, print rendering generally requires
intensive CPU power and memory consumption. Many small mobile
devices simply do not have the memory space to store the
applications or the printer drivers or the processing power
required for the printing operation.
[0006] Thus, what is needed is an effective solution for users of
various types of mobile devices to print documents when and where
they need the documents even if the devices are not connected
directly to any printers or do not even have the capacity or
software to handle the printing task.
SUMMARY OF THE INVENTION
[0007] In view of the foregoing, the present invention provides a
network printing service that enables mobile computing devices,
such as laptop computer, Personal Digital Assistant (PDA) devices,
Web cell phones, etc., to print documents easily even though they
are not directly connected to a printer or do not support the
applications and printer drivers for printing. When the user of a
mobile computing device wants to print a document, the mobile
device is used to access a network, such as the Internet, on which
the print service resides. The print service includes a print
service interface for interacting with the client to receive print
request data, a router component for processing the print request,
and a rendering component for converting documents from a source
document format to a target format for printing. Using the print
service interface, the user enters a print request, which
identifies the location of the document on the network (e.g., in
terms of the document's URL). Alternatively, the document may be
directly passed from the mobile device to the print service. If
applicable, the user also specifies the target printer through the
same interface. When the print service receives the request, if the
request gives the document's URL, it retrieves the document
corresponding to that URL, renders the document into an appropriate
target format, and prints the document as requested by the
user.
[0008] The network print service framework of the invention can be
implemented not only on the Internet, but also on networks of
different sizes, such as corporate intranets, home LAN or the
like.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] While the appended claims set forth the features of the
present invention with particularity, the invention, together with
its objects and advantages, may be best understood from the
following detailed description taken in conjunction with the
accompanying drawings of which:
[0010] FIG. 1 is a block diagram generally illustrating an
exemplary computer system on which the present invention may be
implemented;
[0011] FIG. 2 is a schematic diagram showing an exemplary
embodiment of a print service provided on the Internet for
processing print requests by users of mobile Internet devices;
[0012] FIG. 3 is a schematic diagram showing another exemplary
embodiment of a print service on the Internet; and
[0013] FIG. 4 is a schematic diagram showing an embodiment of a
print service gateway residing on a user's personal computer and
accessible over a corporate intranet.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENT
[0014] Turning to the drawings, wherein like reference numerals
refer to like elements, the invention is illustrated as being
implemented in a suitable computing environment. Although not
required, the invention will be described in the general context of
computer-executable instructions, such as program modules, being
executed by a personal computer. Generally, program modules include
routines, programs, objects, components, data structures, etc. that
perform particular tasks or implement particular abstract data
types. Moreover, those skilled in the art will appreciate that the
invention may be practiced with other computer system
configurations, including hand-held devices, multi-processor
systems, microprocessor-based or programmable consumer electronics,
network PCs, minicomputers, mainframe computers, and the like. The
invention may be practiced in distributed computing environments
where tasks are performed by remote processing devices that are
linked through a communications network. In a distributed computing
environment, program modules may be located in both local and
remote memory storage devices.
[0015] The following description begins with a description of a
general-purpose computing device that may be used in an exemplary
system for implementing the invention, and the invention will be
described in greater detail with reference to FIGS. 2-4. Turning
now to FIG. 1, a general purpose computing device is shown in the
form of a conventional personal computer 20, including a processing
unit 21, a system memory 22, and a system bus 23 that couples
various system components including the system memory to the
processing unit 21. The system bus 23 may be any of several types
of bus structures including a memory bus or memory controller, a
peripheral bus, and a local bus using any of a variety of bus
architectures. The system memory includes read only memory (ROM) 24
and random access memory (RAM) 25. A basic input/output system
(BIOS) 26, containing the basic routines that help to transfer
information between elements within the personal computer 20, such
as during start-up, is stored in ROM 24. The personal computer 20
further includes a hard disk drive 27 for reading from and writing
to a hard disk 60, a magnetic disk drive 28 for reading from or
writing to a removable magnetic disk 29, and an optical disk drive
30 for reading from or writing to a removable optical disk 31 such
as a CD ROM or other optical media.
[0016] The hard disk drive 27, magnetic disk drive 28, and optical
disk drive 30 are connected to the system bus 23 by a hard disk
drive interface 32, a magnetic disk drive interface 33, and an
optical disk drive interface 34, respectively. The drives and their
associated computer-readable media provide nonvolatile storage of
computer readable instructions, data structures, program modules
and other data for the personal computer 20. Although the exemplary
environment described herein employs a hard disk 60, a removable
magnetic disk 29, and a removable optical disk 31, it will be
appreciated by those skilled in the art that other types of
computer readable media which can store data that is accessible by
a computer, such as magnetic cassettes, flash memory cards, digital
video disks, Bernoulli cartridges, random access memories, read
only memories, storage area networks, and the like may also be used
in the exemplary operating environment.
[0017] A number of program modules may be stored on the hard disk
60, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including
an operating system 35, one or more applications programs 36, other
program modules 37, and program data 38. A user may enter commands
and information into the personal computer 20 through input devices
such as a keyboard 40 and a pointing device 42. Other input devices
(not shown) may include a microphone, joystick, game pad, satellite
dish, scanner, or the like. These and other input devices are often
connected to the processing unit 21 through a serial port interface
46 that is coupled to the system bus, but may be connected by other
interfaces, such as a parallel port, game port or a universal
serial bus (USB) or a network interface card. A monitor 47 or other
type of display device is also connected to the system bus 23 via
an interface, such as a video adapter 48. In addition to the
monitor, personal computers typically include other peripheral
output devices, not shown, such as speakers and printers.
[0018] The personal computer 20 may operate in a networked
environment using logical connections to one or more remote
computers, such as a remote computer 49. The remote computer 49 may
be another personal computer, a server, a router, a network PC, a
peer device or other common network node, and typically includes
many or all of the elements described above relative to the
personal computer 20, although only a memory storage device 50 has
been illustrated in FIG. 1. The logical connections depicted in
FIG. 1 include a local area network (LAN) 51 and a wide area
network (WAN) 52. Such networking environments are commonplace in
offices, enterprise-wide computer networks, intranets and the
Internet.
[0019] When used in a LAN networking environment, the personal
computer 20 is connected to the local network 51 through a network
interface or adapter 53. When used in a WAN networking environment,
the personal computer 20 typically includes a modem 54 or other
means for establishing communications over the WAN 52. The modem
54, which may be internal or external, is connected to the system
bus 23 via the serial port interface 46. In a networked
environment, program modules depicted relative to the personal
computer 20, or portions thereof, may be stored in the remote
memory storage device. It will be appreciated that the network
connections shown are exemplary and other means of establishing a
communications link between the computers may be used. For
instance, the computer may be in the form of a laptop computer and
equipped with wireless transmission and networking capabilities for
wireless connections to the Internet or other networks.
[0020] In the description that follows, the invention will be
described with reference to acts and symbolic representations of
operations that are performed by one or more computers, unless
indicated otherwise. As such, it will be understood that such acts
and operations, which are at times referred to as being
computer-executed, include the manipulation by the processing unit
of the computer of electrical signals representing data in a
structured form. This manipulation transforms the data or maintains
it at locations in the memory system of the computer, which
reconfigures or otherwise alters the operation of the computer in a
manner well understood by those skilled in the art. The data
structures where data is maintained are physical locations of the
memory that have particular properties defined by the format of the
data. However, while the invention is being described in the
foregoing context, it is not meant to be limiting as those of skill
in the art will appreciate that various of the acts and operations
described hereinafter may also be implemented in hardware.
[0021] Turning now to FIG. 2, the present invention is directed to
a print service architecture that allows the user of a mobile
computing device, such as a laptop computer, a PDA, a Web cell
phone (or "smart cell phone"), etc., to print documents even if the
mobile device has no direct connection with or control over a
printer, and even if the device has no processing power or memory
capacity for applications and printer drivers required to perform
the printing operations. In accordance with the invention, the
mobile device i's not required to handle the rendering of the
document into a format acceptable to the printer, and does not even
have to know where the printer is located. Instead, the mobile
device only has to locate a print service on a network to which the
mobile device is connected, tell the print service where the
document is or pass the document to the print service, and the
print service will control the printing operation to print the
document as requested.
[0022] FIG. 2 illustrates an embodiment in which a print service 70
is implemented as part of a Web server on the Internet 72. It will
be appreciated, however, the print service architecture according
to the invention is scalable such that it can be used in other
networks such as corporate intranets for handling print jobs, as
will be described in greater detail below. As shown in FIG. 2, the
user's mobile device, which in this embodiment may be a Web cell
phone 76, a PDA 78, a laptop 80, or any other Internet device, is
connected to the Internet 72.
[0023] By way of example, in one scenario, a user 82 named "Jane"
may carry a Web cell phone 76 when she travels. When she checks
into a hotel, she gives her "Internet credentials" to the hotel.
The hotel has a Web site 86 on the Internet that hosts a print
service 70. Later, while preparing for a meeting with clients, Jane
wants to print a document. It is assumed that her documents 92,
including the one she wants to print, are stored at a Web storage
90 on the Web. She uses her Web cell phone 76 to connect to the
Internet 72, and to access (over the Wireless Application Protocol
(WAP)) the Web site 86 of the hotel, which presents a print service
interface page 88 that includes-queries and options for a print
job. Via the interface Web page 88, Jane enters information
regarding the print job, including the location of the document,
print specification data (e.g., color or black/white, stapled or
bonded, number of copies, etc.), and any other required
information. In this example, the location of the document 94 to be
printed is specified by a Uniform Resource Locator (URL) of the
document. She may also specify whether the printed document should
be delivered to her hotel room or be sent to the front desk for her
to pick up. She then submits the print request 96, and receives via
the Web cell phone 76 a confirmation 98 from the print service of
receipt of the print request.
[0024] The print service 70 includes a component 100, hereinafter
referred to as the print service gateway (PSG), for processing
print requests from different users over the Internet. When it
receives Jane's print request 96, it verifies her hotel guest
status using the check-in information in a hotel guest database. It
also validates the print request to see whether it contains the
required information. If there is any problem, it would notify Jane
immediately via her cell phone 76. If both the user status and
print request are validated, the print service gateway 100 uses
Jane's Internet credentials to gain access to her Web storage 90
where she stores her documents, and uses the URL of the particular
document 94 to retrieve that document. After retrieving the
document, the print service gateway 100 selects a printer from a
pool of printers 106 for handling the print job, and renders the
document into a print-ready format suitable for the selected
printer. The rendering may be performed using an appropriate
application for the particular document format (e.g., Microsoft
Word ). For that purpose, the print service may maintain a
plurality of applications 110 for handling different types of
documents. Alternatively, the print service may use external
rendering services on the Internet, such as the rendering services
112, 114, 116 in FIG. 2. In that case, the applications are not
required. The rendered document is then sent to the selected
printer for printing, and the printed document is delivered as
specified in the print request.
[0025] Even though in this example the mobile device is a Web cell
phone, it will be appreciated that the particular type of mobile
device used to submit the print request is not critical, and users
of laptops and other Internet devices can use the print service 70
in the same way to print documents.
[0026] It can be seen from this example that the user's mobile
device is not required to carry the particular document to be
printed. In this example, the Web cell phone 76 may not even have
the memory capacity for storing a copy of the document. Instead,
the user only has to specify where the document may be found, and
the print service will automatically retrieve the document based on
that information and using the user's credentials necessary for
gaining access to the document. In this regard, the user's
credentials are either already available to the print service
(e.g., provided during hotel check-in) or provided in conjunction
with the print request, such as by using a certificate or an
Internet "passport."
[0027] It is possible, however, that the user's mobile device
already carries the document. This may be the case, for example,
when the user's mobile device is a "rich client" such as a laptop
computer. In that scenario, the user can transmit the document
directly from her device to the print service gateway as part of
the print request data.
[0028] It will be appreciated that the user's mobile device does
not have to do any rendering of the document or control the
printing operation. As a result, there is no need for the mobile
device to have the application (e.g., Microsoft Word or Adobe
Acrobat Reader) for the particular format of the document, and
there is no need to download the printer driver to the device. This
is an important advantage, as many mobile devices such as PDAs or
Web cell phones do not have the processing power for rendering
documents for printing or the memory capacity for holding the
applications or print drivers. Moreover, even if the mobile device
is a "rich client" such as a laptop that has substantial processing
power and storage capacity, it is a rather complicated process to
find the right driver to download to the device and then use the
device to control the operation the printer. By delegating the
print job to a print service on the network (e.g., Internet)
accessible by a lightweight mobile device, the user can use the
mobile device to print documents substantially wherever she goes
and whenever she wants (limited by the network connection), without
having to be concerned with the details of the printing
operation.
[0029] To illustrate the wide applicability of the print service
architecture of the invention, another scenario is described below
with reference to FIG. 3. In this scenario, Jane is a real-estate
agent. While on her way to meet her client, she wants to print the
up-to-date home listing from her cell phone 76. To do so, she
clicks the "find the nearest print center" function in the menu
presented on her cell phone. In this example, Jane's cell phone
provider has a Yellow Page service that includes Web links to
commercial print centers' Web pages. When she clicks on the "find
the nearest print center" function, her cell phone detects her
current location and searches its list of print centers. It
presents the top five choices in the order of increasing distance
from her current location. From this list, Jane picks a print
center 124 with the franchise name of, for example, "ABC," by
clicking on the link for that print center. She is then connected
to ABC's Web server 120 and is presented with ABC's Web page 122 to
enter her request. She then enters her print request and payment
information via the ABC Web page.
[0030] Similar to the example of FIG. 2, the ABC Print Center Web
server 120 hosts a print service gateway 126 for receiving print
requests. When the user enters the print request, the print service
gateway retrieves the document at the URL specified in the request,
renders the document for printing, and prints on a printer at the
ABC print center 124 selected by Jane. In this embodiment, since
documents are to be printed at print centers selected by customers,
the print service of ABC on the Web is not required to have local
printers.
[0031] The print service framework of the invention is scalable and
can be used in networks of different sizes. By way of example,
another mobile printing scenario is described below with reference
to FIG. 4, which illustrates an embodiment in which a print service
132 is implemented in an intranet 136 of a corporation. In this
scenario, a user 140 named "Chris" goes to a conference room in
another building in his company for a meeting, carrying his
network-connected PDA 138 with him. While in the conference room,
he realizes that he needs to print a document for the meeting. To
do so, Chris does not have to know where the shared printers are in
the building or how to install printer drivers. He uses his PDA to
access the print service gateway 142 that is hosted on his desktop
personal computer (PC) 132 in his office via the corporate intranet
136. The print service gateway 142 has access to all corporate
network printers that are otherwise available to Chris' PC 132. It
assists Chris to select a particular printer, such as via the
printer location map. Using the PDA, Chris interacts with the print
service gateway 142 and sends a print request 148 to the print
service gateway. The print request identifies the document to be
printed, which may be stored on his desktop PC or at a location on
the intranet 136, by its URL. It also identifies the target printer
based on the information such as the printer's location. Chris's
computer installs, if necessary, the needed printer drivers for the
target printer on demand. Chris then walks over to the identified
printer to pick up the printed document.
[0032] Returning to FIG. 2, in one embodiment, a print service 70
includes one or more servers each hosting a print service gateway
component 100, and a collection of applications 110 that are used
to handle various document formats. For example, the applications
may include Microsoft-Internet Explorer for HTML documents, Adobe
Acrobat Reader for ".PDF" files, and Microsoft Word for ".DOC"
documents, etc. In the illustrated embodiment, the print service
further includes a collection of printers 106 and corresponding
printer drivers that can be used by the applications to generate
print-ready output data. The collection of printer drivers varies
depending on the particular printers the service supports. For
example, a hotel print service may use the same printer model
across the board and would need only one printer driver, while an
enterprise print service may need many printer drivers due to
accumulation of different printer models.
[0033] The print service 70 includes a print service user interface
component 150 that provides user interfaces to allow users to enter
print requests and get confirmation of the requests. It may also
provide up-to-date status on the user's print requests and the
print service in general. This user interface component varies
depending on the service as well as the client (e.g., laptops vs.
PDAs with small screens). Behind the user interface is the
programming interface for print service gateway that defines how to
compose a print request to a print service and receive feedback
over the Internet (or an intranet). In one implementation, the user
interface component creates the actual print request package and
sends it to a print service gateway. In another implementation, the
client can access the print service gateway's programming interface
directly and send the print request (in XML format) directly to the
print service.
[0034] In one implementation, the content of a print request
includes the following data:
[0035] 1. The user's "Internet credentials" or Web identity. This
information is needed to authenticate the user for document access
as well as print service access. It can also be used in logging and
billing.
[0036] 2. The document's content, or its URL.
[0037] 3. Optionally, the format of the document. If this
information is not provided, the print service would determine the
format by analyzing the content, though this is generally not
efficient.
[0038] 4. Optionally, the target printer's URL and characteristics
such as the model name, PnP ID, secure access code, etc,
[0039] 5. Optionally, the criteria for selecting a target printer
(e.g., location). If this information is missing and no printer URL
is given, the print service will select a target printer based on
its own criteria, such as load balancing and priority.
[0040] 6. Optionally, the printing requirements such as color,
duplex, stapling. If this information is missing, default settings
will be used.
[0041] The content of the response generated by the print service
70 includes either a confirmation that the request is accepted or a
rejection of the request, and, if accepted, a job ID, which is used
in logging and billing. A print request could be rejected due to
any of the following and/or other reasons: the user is not
authenticated to use the print service; the print service is
offline; the document content cannot be retrieved; the document
format is not supported; the specified printer is not supported;
and the specified printing requirements cannot be satisfied (such
as color printing).
[0042] Some "rich client" devices, such as laptops, have more
processing power and broad application base. They could be more
sophisticated in terms of submitting print requests so users could
get better print quality and performance. For instance, the device
may query the list of supported document formats (e.g., in the
order of decreasing preference).
[0043] In the embodiment for mobile printing over the Internet
illustrated in FIG. 2, the print service gateway (PSG) 100 includes
a routing component 160, a rendering component 162, and a logging
and billing component 166. The routing component 160 performs the
following functions:
[0044] Parsing the incoming print requests.
[0045] Authenticating the user to use the print service.
[0046] Negotiating with the client regarding print capabilities
(ex. document formats). This would allow powerful clients to submit
preferred format for best results.
[0047] Retrieving the document content if needed. Use the provided
user credentials if the document has restricted access.
[0048] Validating the user's request and give feedback. This
includes calling the PSG Rendering component to validate if the
conversion from the given source format to the given destination
format is supported.
[0049] Spooling and scheduling the requests for further processing
(rendering and/or printing).
[0050] Redirecting the print request to another print service if
appropriate. This may be used for service branding.
[0051] For example, a hotel print service may simply pass through
all print requests to a print service contractor for actual
processing and printing.
[0052] The rendering component 162 of the print service gateway 100
is responsible for converting the source document format to a
target format, which is typically a print-ready format. It
maintains the information about mapping between supported input
formats and output formats. This includes information on what the
formats are and what application software or external rendering
service is needed to perform the specific mapping. It uses the
data-driven approach to provide the extensibility.
[0053] When format conversion is done locally, the appropriate
application software and printer drivers are installed locally. If
external dedicated print rendering services are used, then the
print service gateway simply passes through the content (e.g., PS
files) without any conversion. To increase the reliability of the
format conversion, it is very advantageous to have one canonical
intermediate format that all clients could use to submit the
document data. Such format would be device-independent. Short of a
standard format, a print service could restrict the formats to the
set that satisfies its reliability criteria.
[0054] Another component of the Web printing service is the logging
and billing component, which handles the logging and billing
operations for the servicing of the print requests. It is provided
for supporting the Internet business model, and is likely not
required if the network printing service is implemented in a
different type of network. For instance, while a hotel print
service will require the billing function, a print service on the
intranet of a corporation may not.
[0055] As described above, the print service provides a programming
interface that allows a client to submit print job requests and to
query the job status. In one implementation, there are three
mandatory methods that the web print service supports:
[0056] CreatePrintJob: allowing the client to submit a print
request.
[0057] CancelPrintJob: allowing the client to cancel a print
request that has been previously submitted.
[0058] GetPrintJobData: allowing the client to query the state of a
print request that has been previously submitted.
[0059] There are also three optional methods that a web print
service may choose to support in order to optimize the
operations:
[0060] IsFormatSupported: allow the client to find out if a
particular document format is supported by the print service. A
client may want to use this method to verify the format first,
especially when embedding the document content directly in the
print request.
[0061] GetSupportedFormats: allowing the client to get a list of
supported document formats. A client may want to use this method to
select an optimal format to submit the source document, especially
when the client (e.g., a laptop) has the capability to do some
forms of format conversion.
[0062] GetPrinterModels: allowing the client to find out the list
of printer models used by the print service and their associated
installable settings (such as duplexer installed or not). This
would enable rich clients (such as laptops) to generate
high-fidelity printer-ready data and pass through the print service
to the printer directly. Few print services are expected to support
this method, just those services that accept only printer-ready
data.
[0063] The details of each of the methods identified above are
described below. Follow the description of each method is the
"Arguments" list that details all the parameters. It has following
attributes:
[0064] Data Field: the name of the parameter. It follows the
VisualStudio.NET naming convention.
[0065] Dir: the direction of the parameter, IN, OUT or IN/OUT
(`ref` in C#).
[0066] Type: data type, as defined in C#.
[0067] M/O: indicating whether the parameter is mandatory (`M`) or
optional (`O`).
[0068] Comments: defining the meaning of the parameter and its
usage.
[0069] If the same parameter appears in multiple methods, it has
the same meaning and is defined only in one place.
[0070] Following the "Arguments" list is a list of error codes. The
error code is returned in the <SOAP:fault> element. The error
codes are derived from the IPP status codes and named following the
C# naming convention.
[0071] 1. CreatePrintJob
[0072] When CreatePrintjob is called, the print service will create
a new print job to represent the new print request and assign a
unique job ID. It updates the job data based on what the client has
provided and what can actually be supported. If a document URL link
is provided, it retrieves the document content on the user's
behalf. If everything is validated, it sets the job state to
"accepted" and responds to the client while continuing on to print
the document. The client can later query the status of a print
request, such as the estimated completion time or the actual print
settings, via GetPrintJobData. In all cases, the appropriate
operation error code is set in its response.
[0073] Note that if a print service chooses to accept print-ready
data, then it should support the parameter "jobTicket" which
encapsulates the complete set of print settings used to generate
the print-ready data. "jobTicket" is based on the standard Windows
print system schema. If the print service cannot honor all the
settings in "jobTicket", it should reject the print request and
return ClientErrorNotPossible.
[0074] Arguments:
[0075] Data Field: jobID
[0076] Dir: OUT; Type: unit; M/O: M
[0077] Comments: The unique print job identification number created
by the print service in the range of 1 to 2.sup.{circumflex over (
)}32-1. A print service may recycle job Id's while ensuring that no
two active print requests have the same Id. This Id is used for
subsequent operations such as CancelPrintjob and
GetPrintJobData.
[0078] Data Field: jobname
[0079] Dir: IN; Type: string; M/O: M
[0080] Comments: The name of the print request, such as the name of
the document to be printed.
[0081] Data Field: userName
[0082] Dir: IN; Type: string; M/O: M
[0083] Comments: The name of the user who submits the print
request.
[0084] Data Field: UserCredential
[0085] Dir: IN; Type: string; M/O: O
[0086] Comments: Encoded user Passport sign-in ID and password.
This credential will be used to authenticate the use of the print
service and for print service to retrieve the document content on
the user's behalf when the document URL is used. If a print
service, such as commercial print shops, requires the user
credential, then the client must provide this data. Otherwise, it
will receive "ClientErrorNotAuthenticated".
[0087] Data Field: docLink
[0088] Dir: IN; Type: string; M/O: O
[0089] Comments: The URL of the document to be printed. If it is
missing, the print service should assume that the client will send
the document content directly via "docContent" parameter. In most
cases, "docLink" is provided, i.e. print by reference. If a print
service supports accepting multiple documents in one job, the
client could provide multiple URL's in one CreatePrintJob
request.
[0090] Data Field: docContent
[0091] Dir: IN; Type: byte[]; M/O: O
[0092] Comments: The sequence of bytes representing the content of
the document to be printed. If this is null and "docLink" is also
null, the print service will return with the error code
"ClientErrorDocumentAccessE- rror".
[0093] Data Field: docFormat
[0094] Dir: IN; Type: string; M/O: O
[0095] Comments: The format of the document content, such as
"PostScript Level 2" or "DOC". If this parameter is not supplied,
the print service will have to parse the file name and/or the
content in order to figure out the format.
[0096] Data Field: targetprinter
[0097] Dir: IN; Type: string; M/O: O
[0098] Comments: The name of the targeted printer.
[0099] Data Field: numOfCopies
[0100] Dir: IN; Type: uint; M/O: O
[0101] Comments: The number of copies to be printed. The default is
1. All printed pages will be collated.
[0102] Data Field: duplex
[0103] Dir: IN; Type: string; M/O: O
[0104] Comments: Defining how the logical pages will be printed on
physical pages. Options include: "one-sided printing", "two-sided
printing along the long edge", and "two-sided printing along the
short edge".
[0105] Data Field: nUp
[0106] Dir: IN; Type: string; M/O: O
[0107] Comments: Defining how the logical pages will be laid out on
one side of a physical page. Choose from "1-up", "2-up", and
"4-up". The default is "1-up".
[0108] Data Field: isColor
[0109] Dir: IN; Type: bool; M/O: O
[0110] Comments: If "true," print the document in color. Otherwise,
print in Black/White. The default is Black/White.
[0111] Data Field: paperType
[0112] Dir: IN; Type: string; M/O: O
[0113] Comments: The type of paper to be used in printing the
document, such as "201b Standard White Paper". The default is set
by each print service. If it is specified by the client, it will be
verified against other job requirements. If there is conflict, the
service should pick the appropriate paper type based on its
priorities and update the job data accordingly.
[0114] Data Field: bindingType
[0115] Dir: IN; Type: string; M/O: O
[0116] Comments: The type of binding to be used, such as "none",
"coil", "comb", "stapled". The default is "none". If it is
specified by the client, it will be verified against other job
requirements. If there is conflict, the service should pick the
appropriate binding type and update the job data accordingly.
[0117] Data Field: jobTicket
[0118] Dir: IN; Type: Byte[]; M/O: O
[0119] Comments: An XML blob that describes the complete set of
print settings used to generate print-ready data. Used only when
submitting print-ready ("raw") documents. It follows the standard
Windows print system schema.
[0120] Data Field: <custom fields>
[0121] Dir: IN; Type: N/A; M/O: O
[0122] Comments: Each print service may define additional fields,
such as "promotion code."
[0123] Error Code:
[0124] Code: 0x0000; Meaning: SuccessfulOk; Usage: The operation is
successful.
[0125] Code: 0x0400; Meaning: ClientErrorBadRequest; Usage: The
request is ill-formed, such as bad parameter values.
[0126] Code: 0x0402; Meaning: ClientErrorNotAuthenticated; Usage:
The user is not authenticated to use the print service.
[0127] Code: 0x0403; Meaning: ClientErrorNotAuthorized; Usage: The
user is not authorized to create a print job.
[0128] Code: 0x0404; Meaning: ClientErrorNotPossible; Usage: The
print service cannot meet the requirements, such as not being able
to honor all settings in a jobTicket when the client submits
print-ready data.
[0129] Code: 0x040a; Meaning:
clientErrorDocumentFormatNotSupported; Usage: The source document
format is not supported.
[0130] Code: 0x0411; Meaning: ClientErrorDocumentFormatError;
Usage: The source document is ill-formed.
[0131] Code: 0x0412; Meaning: ClientErrorDocumentAccessError;
Usage: The print service cannot access the document content.
[0132] Code: 0x0500; Meaning: ServerErrorInternalError; Usage: This
is a catch-all error code for all internal errors.
[0133] Code: 0x0506; Meaning: ServerErrorNotAcceptingjobs; Usage:
The print service is not accepting new print jobs for some
reason.
[0134] Code: 0x0509; Meaning:
ServerErrorMultipleDocumentJobsNotSupported; Usage: The print
service cannot accept a print request that contains multiple
documents.
[0135] 2. CANCELPRINTJOB
[0136] The print service deletes the given print job after
verifying the user credential.
[0137] Arguments:
[0138] Data Field: jobID
[0139] Dir: IN; Type: uint; M/O: M
[0140] Comments: The unique job identification # as returned in
CreatePrintJob response.
[0141] Data Field: userCredential
[0142] Dir: IN; Type: string; M/O: O
[0143] Comments: If a job was created with the user credential,
then the same credential is required for canceling it.
[0144] Error Code:
[0145] Code: 0x0000; Code Meaning: SuccessfulOK; Usage: The job is
successfully deleted.
[0146] Code: 0x0400; Code Meaning: ClientErrorBadRequest; Usage:
The request is ill-formed, such as invalid job ID or the job has
already been canceled.
[0147] Code: 0x0402; Code Meaning: ClientErrorNotAuthenticated;
Usage: The user is not authenticated.
[0148] Code: 0x0403; Code Meaning: ClientErrorNotAuthorized; Usage:
The user is not authorized to delete the given job (ex. someone
else's job).
[0149] Code: 0x0500; Code Meaning: ServerErrorInternalError; Usage:
Catch-all error code for all internal errors.
[0150] 3. GetPrintJobData
[0151] This method returns the set of print job data associated
with the given job ID, as listed below. The job may be in any of
the state: "accepted", "printing", "cancelled", or "completed".
Each print service decides how long it will maintain the data for a
print job.
[0152] Note that when a print request involves a device-independent
document format (such as .DOC), the print settings that come with
the request are treated as "suggestions". The service may adjust
the settings in order to resolve conflicts (such as "color" AND
"two sided printing") based on its capabilities. The client can
call GetPrintJobData to find out the actual settings used in
printing and notify the user if appropriate.
[0153] Arguments:
[0154] Data Field: jobID
[0155] Dir: IN; Type: uint; M/O: M
[0156] Comments: The unique job identification # as returned in
CreatePrintJob response.
[0157] Data Field: userCredential
[0158] Dir: IN; Type: string; M/O: O
[0159] Comments: Required if the print job was created with the
user credential.
[0160] Data Field: jobstate
[0161] Dir: OUT; Type: string; M/O: M
[0162] Comments: The current status of the job: "accepted",
"printing", "cancelled", or "completed".
[0163] Data Field: timeOfSubmission
[0164] Dir: OUT; Type: string; M/O: M
[0165] Comments: Encoded time stamp of when the print job is
accepted. The format is ISO 8601. Local time is represented as
YYYYMMDDTHHMMSS, and UTC time as YYYYMMDDTHHMMSSZ.
[0166] Data Field: jobName
[0167] Dir: OUT; Type: string; M/O: M
[0168] Comments: The name of the print job.
[0169] Data Field: userName
[0170] Dir: OUT; Type: string; M/O: M
[0171] Comments: The name of the user who owns this job.
[0172] Data Field: printer
[0173] Dir: OUT; Type: string; M/O: O
[0174] Comments: The printer to which the print job is sent.
[0175] Data Field: numOfCopies
[0176] Dir: OUT; Type: uint; M/O: M
[0177] Comments: The # of copies to be printed.
[0178] Data Field: nUp
[0179] Dir: OUT; Type: string; M/O: M
[0180] Comments: The layout description. If the user has specified
a layout format when creating the print job, it may have been
modified to resolve conflicts and other constraints.
[0181] Data Field: duplex
[0182] Dir: IN; Type: string; M/O: M
[0183] Comments: The duplex setting. If the user has specified a
duplex setting when creating the print job, it may have been
modified to resolve conflicts and other constraints.
[0184] Data Field: isColor
[0185] Dir: OUT; Type: bool; M/O: M
[0186] Comments: Indicating if this is a color job or not.
[0187] Data Field: paperType
[0188] Dir: OUT; Type: string; M/O: M
[0189] Comments: The type of paper used for the print job. If the
user has specified a paper type when creating the print job, it may
have been modified to resolve conflicts and other constraints.
[0190] Data Field: bindingType
[0191] Dir: OUT; Type: string; M/O: M
[0192] Comments: The type of binding used for the print job. If the
user has specified a binding type when creating the print job, it
may have been modified to resolve conflicts and other
constraints.
[0193] Data Field: completionTime
[0194] Dir: OUT; Type: string; M/O: O
[0195] Comments: The deadline for when the print job is expected to
be completed. The format is ISO 8601. Local time is represented as
YYYYMMDDTHHMMSS, and UTC time as YYYYMMDDTHHMMSSZ.
[0196] Data Field: printingCost
[0197] Dir: OUT; Type: string; M/O: O
[0198] Comments: Used when the service is charging for
printing.
[0199] Data Field: mailingCost
[0200] Dir: OUT; Type: string; M/O: O
[0201] Comments: Used when the printed pages are mailed to the
user.
[0202] Error Code:
[0203] GetPrintJobData has the same set of error codes as
CancelPrintJob.
[0204] 4. IsFormatSupported
[0205] If a print service supports this method, it should return
true if the given document format is supported. Otherwise, return
false.
[0206] Arguments:
[0207] Data Field: docFormat
[0208] Dir: IN; Type: string; M/O: M
[0209] Comments: Document format name.
[0210] Data Field: supported
[0211] Dir: OUT; Type: bool; M/O: M
[0212] Comments: true or false.
[0213] Error Code:
[0214] Code: 0x0000; Code Meaning: SuccessfulOK; Usage: The request
is fulfilled successfully.
[0215] Code: 0x0400; Code Meaning: ClientErrorBadRequest; Usage:
The request is ill-formed, such as null `docFormat`.
[0216] Code: 0x0500; Code Meaning: ServerErrorInternalError; Usage:
Catch-all error code for all internal errors.
[0217] Code: 0x0501; Code Meaning:
ServerErrorOperationNotSupported; Usage: The print service does not
support this method.
[0218] 5. GETSUPPORTEDFORMATS
[0219] If a print service supports this method, it should return
the list of supported document formats.
[0220] Arguments:
[0221] Data Field: supportedFormats
[0222] Dir: OUT; Type: string; M/O: M
[0223] Comments: Array of doc formats.
[0224] Error Code:
[0225] It has the same set of error codes as IsFormatSupported.
Note that if the client has means (such as a special printer
driver) to do document format conversions (such as from Visio
format to PDF), it can use GetSupportedFormats to find an optimal
submission format. Otherwise, it can use IsFormatSupported to query
if the document in question can be printed. A client does not have
to call either method to validate the document format. If it
doesn't and the submitted format is not supported, the print
service would return ClientErrorDocumentFormatNotSupported error
code.
[0226] 6. GETPRINTERMODELS
[0227] If a print service supports this method, it should return
the list of printer names (such as "HP LaserJet 8000") that are
being used. This method is targeted for rich PC clients to send
printer-ready data to the print service directly for optimal print
rendering quality.
[0228] Arquments:
[0229] Data Field: printerModels
[0230] Dir: OUT; Type: string; M/O: M
[0231] Comments: Array of printer model names.
[0232] Error Code:
[0233] It has the same set of error codes as IsFormatSupported.
[0234] WSDL (WEB SERVICE DESCRIPTION LANGUAGE) DEFINITION
[0235] In accordance with a feature of an embodiment of the
invention, in order to enhance the universality of the print
service interface of Web print services on the Internet, a Web
Service Description Language (WSDL) based on the XML is provided to
describing the print service interface. It defines the message
formats that clients need to follow when exchanging messages with a
web print service. Note that for a particular implementation the
WSDL description may vary slightly in terms of the required and
optional parameters (`minOccurs`). Also, the default namespace and
the location of the print service will need to be modified.
1 <?xml version="1.0" encoding="utf-8"?> <definitions
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempur-
i.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoa-
p.org/wsdl/"> <types> <s:schema
elementFormDefault="qualified" targetNamespace="http://tempuri.org-
/"> <s:element name="CreatePrintJob">
<s:complexType> <s:sequence> <s:element
minOccurs="1" maxOccurs="1" name="jobName" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="userName"
type="s:string" /> <s:element minOccurs="0" maxOccurs="1"
name="userCredential" type="s:string" /> <s:element
minOccurs="0" maxOccurs="1" name="docLink" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="docContent"
type="s:base64Binary" /> <s:element minOccurs="0"
maxOccurs="1" name="docFormat" type="s:string" /> <s:element
minOccurs="0" maxOccurs="1" name="targetPrinter" type="s:string"
/> <s:element minOccurs="0" maxOccurs="1" name="numOfCopies"
type="s:unsignedInt" /> <s:element minOccurs="0"
maxOccurs="1" name="duplex" type="s:string" /> <s:element
minOccurs="0" maxOccurs="1" name="nUp" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="isColor"
type="s:boolean" /> <s:element minOccurs="0" maxOccurs="1"
name="paperType" type="s:string" /> <s:element minOccurs="0"
maxOccurs="1" name="bindingType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="jobTicket"
type="s:base64Binary" /> </s:sequence>
</s:complexType> </s:element> <s:element
name="CreatePrintJobResponse">- ; <s:complexType>
<s:sequence> <s:element minOccurs="1" maxOccurs="1"
name="CreatePrintJobResu- lt" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1" name="jobID"
type="s:unsignedInt" /> </s:sequence>
</s:complexType> </s:element> <s:element
name="CancelPrintJob"> <s:complexType> <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="jobID"
type="s:unsignedInt" /> <s:element minOccurs="0"
maxOccurs="1" name="userCredential" type="s:string" />
</s:sequence> </s:complexType> </s:element>
<s:element name="CancelPrintJobResponse">
<s:complexType> <s:sequence> <s:element
minOccurs="1" maxOccurs="1" name="CancelPrintJobResult"
type="s:unsignedInt" /> </s:sequence>
</s:complexType> </s:element> <s:element
name="GetPrintJobData"> <s:complexType> <s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="jobID"
type="s:unsignedInt" /> <s:element minOccurs="0"
maxOccurs="1" name="userCredential" type="s:string" />
</s:sequence> </s:complexType> </s:element>
<s:element name="GetPrintJobDataResponse"&g- t;
<s:complexType> <s:sequence> <s:element
minOccurs="1" maxOccurs="1" name="GetPrintJobDataRes- ult"
type="s:unsignedInt" /> <s:element minOccurs="1"
maxOccurs="1" name="jobState" type="s:string" /> <s:element
minOccurs="0" maxOccurs="1" name="errorCode" type="s:unsignedInt"
/> <s:element minOccurs="1" maxOccurs="1"
name="timeOfSubmission" type="s:string" /> <s:element
minOccurs="1" maxOccurs="1" name="jobName" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="userName"
type="s:string" /> <s:element minOccurs="0" maxOccurs="1"
name="printer" type="s:string" /> <s:element minOccurs="1"
maxOccurs="1" name="numOfCopies" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1" name="duplex"
type="s:string" /> <s:element minOccurs="1" maxOccurs="1"
name="nUp" type="s:string" /> <s:element minOccurs="1"
maxOccurs="1" name="isColor" type="s:boolean" /> <s:element
minOccurs="1" maxOccurs="1" name="paperType" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="bindingType"
type="s:string" /> <s:element minOccurs="0" maxOccurs="1"
name="completionTime" type="s:string" /> <s:element
minOccurs="0" maxOccurs="1" name="printingCost" type="s:string"
/> <s:element minOccurs="0" maxOccurs="1" name="mailingCost"
type="s:string" /> </s:sequence> </s:complexType>
</s:element> <s:element name="IsFormatSupported">
<s:complexType> <s:sequence> <s:element
minOccurs="1" maxOccurs="1" name="docFormat" type="s:string" />
</s:sequence> </s:complexType> </s:element>
<s:element name="IsFormatSupportedResponse">
<s:complexType> <s:sequence> <s:element
minOccurs="1" maxOccurs="1" name="IsFormatSupportedResult"
type="s:unsignedInt" /> <s:element minOccurs="1"
maxOccurs="1" name="supported" type="s:boolean" />
</s:sequence> </s:complexType> </s:element>
<s:element name="GetSupportedDocFormats"> <s:complexType
/> </s:element> <s:element
name="GetSupportedDocFormatsResp- onse"> <s:complexType>
<s:sequence> <s:element minOccurs="1" maxoccurs="1"
name="GetSupportedDocFor- matsResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1"
name="supportedDocFormats" type="s0:ArrayOfString" />
</s:sequence> </s:complexType> </s:element>
<s:complexType name="ArrayOfString"> <s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string"
nillable="true" type="s:string" /> </s:sequence>
</s:complexType> <s:element name="GetPrinterModels">
<s:complexType /> </s:element> <s:element
name="GetPrinterModelsResponse"> <s:ComplexType>
<s:sequence> <s:element minOccurs="1" maxOccurs="1"
name="GetprinterModelsResult" type="s:unsignedInt" />
<s:element minOccurs="1" maxOccurs="1" name="printerModels"
type="s0:ArrayOfString" /> </s:sequence>
</s:complexType> </s:element> <s:element
name="unsignedInt" type="s:unsignedInt" /> </s:schema>
</types> <message name="CreatePrintJobSoapIn"> <part
name="parameters" element="s0:CreatePrintJob" />
</message> <message name="CreatePrintJobSoapOut">
<part name="parameters" element="s0:CreatePrintJobResponse"
/> </message> <message name="CancelPrintJobSoapIn">
<part name="parameters" element="s0:CancelPrintJob" />
</message> <message name="CancelPrintJobSoapOut">
<part name="parameters" element="s0:CancelPrintJobResponse"
/> </message> <message name="GetPrintJobDataSoapIn">
<part name="parameters" element="s0:GetPrintJobData" />
</message> <message name="Get PrintJobDataSoapOut">
<part name="parameters" element="s0:GetPrintJobDataResp- onse"
/> </message> <message
name="IsFormatSupportedSoapIn"> <part name="parameters"
element="s0:IsFormatSupported" /> </message> <message
name="IsFormatSupportedSoapOut"> <part name="parameters"
element="s0:IsFormatSupportedResponse" /> </message>
<message name="GetSupportedDocFormatsSoap- In"> <part
name="parameters" element="s0:GetSupported- DocFormats" />
</message> <message
name="GetSupportedDocFormatsSoapOut"> <part name="parameters"
element="s0:GetSupportedDocFormatsResponse" /> </message>
<message name="GetPrinterModelsSoapIn"> <part
name="parameters" element="s0:GetPrinterModels" />
</message> <message name="GetPrinterModelsSoapOut">
<part name="parameters" element="s0:GetPrinterModelsResponse"
/> </message> <portType name="WebPrintServiceSoap">
<operation name="CreatePrintJob"> <input
message="s0:CreatePrintJobSoapIn" /> <output
message="s0:CreatePrintJobSoapOut" /> </operation>
<operation name="CancelPrintJob"> <input
message="s0:CancelPrintJobSoapIn" /> <output
message="s0:CancelPrintJobSoapOut" /> </operation>
<operation name="GetPrintJobData"> <input
message="s0:GetPrintJobDataSoapIn" /> <output
message="s0:GetPrintJobDataSoapOut" /> </operation>
<operation name="IsFormatSupported"> <input
message="s0:IsFormatSupportedSoapIn" /> <output
message="s0:IsFormatSupportedSoapOut" /> </operation>
<operation name="GetSupportedDocFormats"> <input
message="s0:GetSupportedDocFormatsSoapIn" /> <output
message="s0:GetSupportedDocFormatsSoapOut" /> </operation>
<operation name="GetPrinterModels"> <input
message="s0:GetPrinterModelsSoapIn" /> <output
message="s0:GetPrinterModelsSoapOut" /> </operation>
</portType> <binding name="WebPrintServiceSoap"
type="s0:WebPrintServiceSoap"> <soap:binding
transport="http://schemas.xmlsoap.org/soap/http" style ="document"
/> <operation name="CreatePrintJob"> <soap:operation
soapAction="http://tempuri.org/CreatePrintJob" style="document"
/> <input> <soap:body use="literal" />
</input> <output> <soap:body use="literal" />
</output> </operation> <operation
name="CancelPrintJob"> <soap:operation
soapAction="http://tempuri.org/CancelPrintJob" style="document"
/> <input> <soap:body use="literal" />
</input> <output> <soap:body use="literal" />
</output> </operation> <operation
name="GetPrintJobData"> <soap:operation
soapAction="http://tempuri.org/GetPrintJobDat- a" style="document"
/> <input> <soap:body use="literal" />
</input> <output> <soap:body use="literal" />
</output> </operation> <operation name
="IsFormatSupported"> <soap:operation
soapAction="http://tempuri.org/IsFormatSupported" style="document"
/> <input> <soap:body use="literal" />
</input> <output> <soap:body use="literal" />
</output> </operation> <operation
name="GetSupportedDocFormats"> <soap operation
soapAction="http://tempuri.org/GetSupportedDocFormats"
style="document" /> <input> <soap:body use="literal"
/> </input> <output> <soap:body use="literal"
/> </output> </operation> <operation
name="GetPrinterModels"> <soap operation
soapAction="http://tempuri.org/GetPrinterMod- els" style="document"
/> <input> <soap:body use="literal" />
</input> <output> <soap:body use="literal" />
</output> </operation> </binding> <service
name="WebPrintService"> <documentation>web print service
</documentation> <port name="WebPrintServiceSoap"
binding="s0:WebPrintServiceSoap"> <soap:address
location="http://localhost/PCPrintPortal/Web- PrintService.asm x"
/> </port> </service> </definitions>
[0236] In view of the many possible embodiments to which the
principles of this invention may be applied, it should be
recognized that the embodiment described herein with respect to the
drawing figures is meant to be illustrative only and should not be
taken as limiting the scope of invention. Therefore, the invention
as described herein contemplates all such embodiments as may come
within the scope of the following claims and equivalents
thereof.
* * * * *
References