在Ubuntu上用cups api实现打印功能 |
您所在的位置:网站首页 › linux系统打印机驱动放在啥地方打印 › 在Ubuntu上用cups api实现打印功能 |
最近由于工作需要,要写一套打印相关的接口。 Linux上一般自带一套管理打印机的通用工具,叫cups。 它提供了打印机的连接,配置,打印等等功能,因此我这次选择用cups的api来实现打印相关的内容。 cups本身提供了一系列命令行工具方便用户使用,我们接下来会使用一些命令行来测试。 文章目录 @[toc]配置环境连接打印机获取当前打印机列表设置打印参数打印 配置环境 sudo apt install libcups2-dev 连接打印机当我们将打印机开机并正确连接到电脑上之后,进入设置->打印机页面会看到当前连接的打印机。 比如我现在连接的是惠普的501dn打印机。 Ubuntu预装了cups相关的内容,打印机连接不需要手动配置,系统会自动进行配置。 当只连接一台打印机的时候,Ubuntu会将当前打印机自动设置为默认打印机。 #查看当前的默认打印机 lpstat -t我们这个时候还需要打印一次文件,来测试一下打印机的连接无误,以及打印机本身可以正常使用。 #打印文件,我这里打印的是之前准备好的pdf lp fork.pdf如果打印成功,那就可以进行接下来的步骤啦! 如果打印的有问题,请根据打印机的提示解决问题后再进行下一步操作。 获取当前打印机列表为了要先获取当前打印机列表呢?这是因为打印的api的入参需要打印机名,因此需要获取打印机列表,来获取打印机名。 打印机名是可以修改的,但是一般系统都会自动配置,因此我们下需要获取一下才能知道就具体的打印机名是什么。 int get_printer_list() { printf("[%s] Start\n", __FUNCTION__); cups_dest_t *dests = NULL; int num_dests = 0; int i = 0; num_dests = cupsGetDests(&dests); if (num_dests == 0 && (cupsLastError() == IPP_STATUS_ERROR_BAD_REQUEST || cupsLastError() == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED)) { #ifdef PRT_DEBUG _cupsLangPrintf(stderr, "Printer: Error - add '/version=1.1' to server name."); #endif return NULL; } for (i = 0; i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |