从应用程序打印到 URL
从应用程序的角度来看,打印到 URL 标识的打印队列与打印到 UNC 标识的打印队列相同。 应用程序通常不知道打印队列是通过 URL 访问的。
通过 查看打印网页,用户可以安装并连接到 URL 标识的打印队列。 发生这种情况时,会为打印队列分配与打印服务器上相同的“友好名称”,并且此友好名称将列在用户的打印文件夹中。
应用程序通常通过友好名称来引用打印队列,就像对 UNC 标识的打印队列一样。 在本地打印提供程序中调用 OpenPrinter 函数 (由应用程序) 进行 GDI 调用引起的,包括友好名称。 本地打印提供程序又调用 HTTP 打印提供程序 (Inetpp.dll) 中的 OpenPrinter ,指定打印队列的 URL。
通过友好名称引用打印队列的应用程序通常不知道打印队列是本地还是网络上,或者网络协议是 RPC、SMB 还是 HTTP。 但是,如有必要,应用程序可以直接调用 OpenPrinter ,并指定 URL。 指定 OpenPrinter 的 URL 时,必须使用以下 URL 格式:
https://< ServerName>/printers/<ShareName>/.printer
其中<,ServerName> 是服务器名称 (Internet 连接的 DNS 名称或 intranet 连接的 WINS 名称) ,“printer”表示服务器上的虚拟目录,ShareName <> 是打印队列的属性表中指定的共享名称。 Microsoft Windows SDK文档中讨论了 (虚拟目录。)
当客户端后台处理程序组件或应用程序调用 OpenPrinter 并指定 URL 时,后续调用后台处理程序函数(如 StartDocPrinter、 WritePrinter 等)将由客户端的 HTTP 打印提供程序处理。 HTTP 打印提供程序将参数追加到 URL,并将生成的 URL 字符串发送到打印服务器。
要使 Microsoft Windows 2000 打印服务器接受包含 URL 的打印请求,它必须运行以下任一操作:
Windows 2000 Server 软件与 Microsoft Internet Information Server (IIS) ,或
Windows 2000 专业版软件与 Microsoft 对等 Web 服务器
要使 Windows XP 打印服务器接受包含 URL 的打印请求,它必须运行以下任一操作:
Microsoft Windows Server 2003 软件与 Microsoft Internet Information Server (IIS) ,或
Windows XP Professional 软件与 Microsoft Peer Web Server
注意 Windows XP Home Edition 打印服务器不能接受包含 URL 的请求。
在打印服务器上,IIS 或对等 Web 服务器接收 URL 字符串。 通过在客户端系统上Inetpp.dll追加到字符串的参数会导致服务器调用 HTTP 打印服务器,该服务器包含在Msw3prt.dll中。 HTTP 打印服务器接受 RAW 格式的打印机数据,并将其发送到本地打印后台处理程序。
打印机数据使用 Internet 打印协议 (IPP 1.0) 从客户端发送到服务器,该协议由 Internet 工程任务组 (IETF) 的打印机工作组 (PWG) 定义。
下图演示了当客户端打印到 URL 标识的打印队列时,打印数据从客户端应用程序到打印服务器后台处理程序的路径。
如果客户端和服务器都是 Windows 2000 或更高版本的系统(如图所示),则 RPC 协议通常 (但并不总是) 用于客户端-服务器通信。 (有关详细信息,请参阅 从网页安装打印驱动程序。) 如果客户端和服务器不是 Windows 2000 或更高版本的系统,则使用 HTTP。 HTTP 还用于包含内部网卡和支持 IPP 1.0 的打印机,因此未连接到服务器。
打印服务器安全性由 IIS 提供,IIS 在打印服务器上执行。 IIS 资源指南中介绍了 IIS 支持的安全机制,该 指南包含在 ** 中
Microsoft Windows 2000 服务器资源工具包。 此外,资源工具包还专门介绍了系统管理员如何控制与打印到 URL 相关的安全方法。