KDK_PRINTER_GET_FILENAME(3) Library Functions Manual KDK_PRINTER_GET_FILENAME(3)

kdk_printer_get_filename - 获取当前打印任务状态(发送打印任务之后下需要等待一会再获取状态,状态不是实时更新)

#include <libkyprinter.h>

extern char* kdk_printer_get_filename(const char *url);

Link with -lkyprinter.

The main function of the interface is to obtain the file name inside the url.

The argument url is printer name, url.

On success, returns the parsed file name of type char*.

On error, return NULL.

#include "libkyprinter.h"
#include <stdio.h>
int main()
{
    int index = 0;
    //获取打印机列表
    char **printers = kdk_printer_get_available_list();
    while (printers[index])
    {
        printf("%zd: %s0, index + 1, printers[index]);
        //取消当前打印机所有打印任务
        kdk_printer_cancel_all_jobs(printers[index]);
        //获取url对应的文件名
        char *url = "http://www.cztouch.com/upfiles/soft/testpdf.pdf";
        int res = -1;
        char *filename = kdk_printer_get_filename(url); //从完整路径名中解析出文件名称,例如:/home/test/abc.txt,解析完成后为abc.txt
        printf("filename = %s0, filename);
        //设置打印参数
        kdk_printer_set_options(2, "A4", "lrtb", "two-sided-long-edge");
        //下载
        res = kdk_printer_print_download_remote_file(url, filename);
        printf("[%s] res = %d0, __FUNCTION__, res);
        printf("[%s] filepath = %s0, __FUNCTION__, filename);
        //打印
        int job_id = kdk_printer_print_local_file(printers[index], filename);
        if (job_id == 0)
        {   
            //打印失败
            printf("[%s] create print job fail0, __FUNCTION__);
        }
        else
        {
            //打印成功,等待一会获取任务状态
            sleep(10);
            int status = kdk_printer_get_job_status(printers[index], job_id);
        }
        index++;
        free(filename);
    }
    kdk_printer_freeall(printers);
    return 0;
}

These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: kdk_printer_get_list(), kdk_printer_get_available_list(), kdk_printer_set_options(), kdk_printer_print_download_remote_file(), kdk_printer_print_local_file(), kdk_printer_cancel_all_jobs(), kdk_printer_get_status(), kdk_printer_get_job_status() and kdk_printer_freeall().

kdk_printer_get_list(3), kdk_printer_get_available_list(3), kdk_printer_set_options(3), kdk_printer_print_download_remote_file(3), kdk_printer_print_local_file(3), kdk_printer_cancel_all_jobs(3), kdk_printer_get_status(3), kdk_printer_get_job_status(3) and kdk_printer_freeall(3).

Fri Aug 25 2023 Linux Programmer's Manual