.TH "KDK_PRINTER_GET_AVAILABLE_LIST" 3 "Fri Aug 25 2023" "Linux Programmer's Manual" \" .SH NAME kdk_printer_get_available_list - 设置打印参数 .SH SYNOPSIS .nf .B #include .sp .BI "extern void kdk_printer_set_options(int "number_up ", const char *"media ", const char *"number_up_layout ", const char *"sides ");" .sp Link with \fI\-lkyprinter\fP. .SH "Detailed Description" The main function of the interface is to set the printing parameters, each setting will clear the previous set of printing parameters, this setting is a global setting, after setting, all printers will use this parameter to print. .PP The argument .I number_up is cups properties, a piece of paper to print several pages, such as 2 4 etc. .PP The argument .I media is cups properties, paper type, such as "A4". .PP The argument .I number_up_layout is cups properties, such as "lrtb". .PP The argument .I sides is cups properties, such as "one-sided", "two-sided-long-edge", "two-sided-short-edge". .SH "RETURN VALUE" No return value .SH EXAMPLES .EX #include "libkyprinter.h" #include int main() { int index = 0; //获取打印机列表 char **printers = kdk_printer_get_available_list(); while (printers[index]) { printf("%zd: %s\n", 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 = %s\n", filename); //设置打印参数 kdk_printer_set_options(2, "A4", "lrtb", "two-sided-long-edge"); //下载 res = kdk_printer_print_download_remote_file(url, filename); printf("[%s] res = %d\n", __FUNCTION__, res); printf("[%s] filepath = %s\n", __FUNCTION__, filename); //打印 int job_id = kdk_printer_print_local_file(printers[index], filename); if (job_id == 0) { //打印失败 printf("[%s] create print job fail\n", __FUNCTION__); } else { //打印成功,等待一会获取任务状态 sleep(10); int status = kdk_printer_get_job_status(printers[index], job_id); } index++; free(filename); } kdk_printer_freeall(printers); return 0; } .SH "CONFORMING TO" These functions are as per the withdrawn POSIX.1e draft specification. The following functions are Linux extensions: .BR kdk_printer_get_list (), .BR kdk_printer_get_available_list (), .BR kdk_printer_print_download_remote_file (), .BR kdk_printer_print_local_file (), .BR kdk_printer_cancel_all_jobs (), .BR kdk_printer_get_status (), .BR kdk_printer_get_job_status (), .BR kdk_printer_get_filename () and .BR kdk_printer_freeall (). .SH "SEE ALSO" .BR kdk_printer_get_list (3), .BR kdk_printer_get_available_list (3), .BR kdk_printer_print_download_remote_file (3), .BR kdk_printer_print_local_file (3), .BR kdk_printer_cancel_all_jobs (3), .BR kdk_printer_get_status (3), .BR kdk_printer_get_job_status (3), .BR kdk_printer_get_filename (3) and .BR kdk_printer_freeall (3).