设为首页 - 加入收藏 - 联系我们 - 广告合作 QQ 技术群1:29388706 群2:6069689(每月清理潜水用户)┆繁體中文
  PC外设之家
 首 页  文章中心 下载中心 经销商 用户交流 新版测试 网上商城
 打印文章: 导购指南 | 专业评测 | 产品资料 | 基础知识 | 办公耗材 | 应用技巧 | 解决方案 | 连续供墨 | 维护保养 | 维修技术
 资源下载: 打印机驱动 | 一体机驱动 | 专业打印驱动 | 打印机手册 | 一体机手册 | 专业打印手册 | 固件升级 | 打印管理 | 维修软件
HP打印机 HP笔记本 HP墨盒 扫描仪 投影灯 MP3播放器 维护电脑 激光打印机
打印机墨水 打印机价格 喷墨打印机 投影屏幕 网上兼职 炒股软件 同城交友 网上交友
 
 
   
   
 
您当前的位置:办公打印之家 -> 应用技巧 -> 文章内容  
高级查找
 
课堂Windows打印管理在Linux平台实现
作者:佚名  来源:办公打印之家整理  发布时间:2006-11-21 1:12:23  发布人:admin

减小字体 增大字体

5.1建立 HTTP 连接

    使用 CUPS 获取打印机名称,打印机端口和打印机型号信息首先需要开启 IPP 和HTTP 服务。开启服务的第一步是建立一个 HTTP 连接来和 CUPS 服务器取得联系。在下面的代码中,cupsServer() 将返回指向默认 CUPS 服务器名称的指针;ippPort() 将返回 IPP 请求的默认端口号;cupsEncryption() 将返回当前 CUPS 请求的默认加密设置。

    将这些返回值作为参数传递给函数 httpConnectEncrypt() 就可以建立一个 HTTP 连接。如果 HTTP 连接建立成功,即 httpConnectEncrypt() 的返回值pHTTPConnection 有效,那么就可以基于这个连接进行下一步 IPP 请求。

http_t *pHTTPConnection = httpConnectEncrypt( cupsServer(),                                             ippPort(),                                             cupsEncryption() );    if (!pHTTPConnection)    {        g_print("Cannot connect to CUPS server\n");        return 0;    }   
 
5.2建立 IPP 请求

    建立一个新的 IPP 请求是通过 IPP 调用 ippNew() 来实现的。在此,operation_id 被设置为 CUPS_GET_PRINTERS,其语义是当前 IPP 请求要获取和打印机相关的信息。同时,request_id 被设置为 1,这是 IPP 协议所规定的。

ipp_t *pIPPReq = ippNew();    pIPPReq->request.op.operation_id = CUPS_GET_PRINTERS;    pIPPReq->request.op.request_id = 1;
 
5.3设置 IPP 请求

    以下是进一步设置当前 IPP 请求 pIPPReq 的细节。需要指出的是,在和 CUPS 服务器进行交互的过程中,很多信息是通过字符串来传递的。这就涉及到了文字语言编码表示的问题。

    函数 cupsLangDefault() 就是用来获取 CUPS 服务器的默认语言设置。cupsLangDefault() 的返回值 pDefLang 还将作为参数传递给其它函数来完成对 IPP 请求的进一步设置。

    根据 IPP 协议,对 IPP 请求的设置要从设置参数 "attributes-charset"(字符集)和"attributes-natural-language"(自然语言)开始。下列代码分别用系统默认字符集和CUPS 默认语言来设置这两个参数。完成这两项规定设置后,用户就可以根据需求对需要的信息提出请求。此处需要获得的信息是打印机名称,端口号和打印机型号。

    在 IPP 协议中,这三项对应的IPP请求关键字分别是 "printer-name", "device-uri" 和 "printer-make-and-model"。下列代码定义了数组 pReqAttrs 来存储上述关键字,然后通过请求参数 "requested-attributes" 来设置这些 IPP 请求。

cups_lang_t *pDefLang = cupsLangDefault();    if (!pDefLang)    {        g_print("Cannot get default language\n");        return 0;    }    ippAddString(pIPPReq,                 IPP_TAG_OPERATION,                 IPP_TAG_CHARSET,                 "attributes-charset",                 NULL,                 cupsLangEncoding(pDefLang));    ippAddString(pIPPReq,                 IPP_TAG_OPERATION,                 IPP_TAG_LANGUAGE,                 "attributes-natural-language",                 NULL,                 pDefLang->language);static const char *pReqAttrs[] = {"printer-name", "device-uri","printer-make-and-model"};    ippAddStrings(pIPPReq,                  IPP_TAG_OPERATION,                  IPP_TAG_KEYWORD,                  "requested-attributes",                  3,                     NULL,                  pReqAttrs);  

上一页  [1] [2] [3] [4]  下一页

收藏到网摘: 新浪ViVi 搜狐网摘 365Key网摘 天极网摘 我摘 POCO网摘 博采网摘 添加到百度搜藏YouNote网摘 和讯网摘 博拉网 igooi网摘 I2Key网摘 Google书签 Del.icio.us Yahoo书签 diigo it 提交新发现,Dig it DIGG this story

复制本文网址|保留收藏或推荐给QQ/MSN上的好友共享^_^:
[ ] [返回上一页] [打 印] [收 藏]
上一篇文章:
下一篇文章:
      Solaris 8 设置打印设备       全面了解喷墨打印机的“血液”—墨水
发表评论:
用户名
分 值 100分 85分 70分 55分 40分 25分 10分 0分
说 明
  (注“”为必填内容。)
 
 
栏目导航
· 导购指南 · 专业评测
· 产品资料 · 基础知识
· 办公耗材 · 应用技巧
· 解决方案 · 连续供墨
· 维护保养 · 维修技术
热门下载
热门文章
· 挖掘HP3325喷墨打印机的潜..
· HP LaserJet 5000LE打印机..
· HP 2605系列打印机如何安装..
· 跟我学寸照排版打印 十步搞..
· Star AR3200打印歪斜的校正..
· HP惠普 专用网络打印服务器..
· 解决Epson LQ-570+指示灯不..
· 几款虚拟打印机的奇妙用途..
· 数码照片打印前的快捷曲线..
· 数码照片打印前的魔术处理..
· 数码照片打印前 Photoshop..
· 虚拟打印机使用手册
· 安装EPSON针式打印机要用操..
· 教您安装HP激光打印机硒鼓..
· 佳能LBP-660、LBP-800激打..
· HP 1125c打印机为何如此慢..
· 喷墨打印机之色彩校正-显示..
· 减少EPSON LQ-1600K打印机..
· 教你 HP LaserJet1022打印..
· 如何安装及更换打印机色带..
相关文章
· 必修课堂的经典技巧三则—..
查看更多与课堂Windows打印管理在Linux平台实现相关内容
 
 
Copyright © 2002-2008 办公打印之家. All Rights Reserved .
湘ICP备06012912号
 
在线客服: 点击这里给我发消息
点击这里给我发消息
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 -网站地图