Используя библиотеку CUPS, я хочу проверить, доступна ли конкретная опция для принтера.
Я делал следующее:
ppd_file_t *ppdFile = ppdOpenFile(cupsGetPPD(dest->name));
bool can_duplex = ppdFindOption(ppdFile, "Duplex");
ppdClose(ppdFile);
Пока это работает правильно. Но: API PPD помечен как устаревший. Насколько я понимаю документы, следующий «правильный» способ сделать это:
cups_dinfo_t *info = cupsCopyDestInfo(CUPS_HTTP_DEFAULT, dest);
bool can_duplex = cupsCheckDestSupported(CUPS_HTTP_DEFAULT,
dest, info, "Duplex", NULL);
cupsFreeDestInfo(info);
Но это не работает, результат всегда 0
, хотя принтер поддерживает двустороннюю печать.
Что мне не хватает? Спасибо за любые ответы!
Задача ещё не решена.
Других решений пока нет …