在Ubuntu上用cups api实现打印功能

您所在的位置:网站首页 linux系统打印机驱动放在啥地方打印 在Ubuntu上用cups api实现打印功能

在Ubuntu上用cups api实现打印功能

2024-07-11 15:07| 来源: 网络整理| 查看: 265

​ 最近由于工作需要,要写一套打印相关的接口。

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