Файл постскриптума не сортируется, когда установлены копии чашек

Наше приложение C++ использует чашки для печати файла постскриптума, сгенерированного командой XRT XrtTblVaDrawPS. Но когда я печатаю 2 копии и устанавливаю параметр подбора по чашкам, файл не распечатывается как отсортированный.


person user3416126    schedule 25.06.2015    source источник


Ответы (1)


Наш проект использует библиотеку мотивов XRT для создания файла постскриптума из макета таблицы с использованием мотива. Файл постскриптума, сгенерированный XrtTblVaDrawPS, был напечатан с использованием чашек, но во время тестирования оказалось, что опция сортировки чашек не работает, когда мы печатаем более 1 копии. Веб-поиски не дали никаких причин, по которым файл ps не сортировался, но после долгих экспериментов мы выяснили, почему cups не работает должным образом. Вызов XrtTblVaDrawPS, генерирующий файл ps, и одна из используемых опций — «XRTTBL_PS_NUM_COPIES, 2», чтобы указать, сколько копий будет распечатывать файл postscript. В нашем классе cups мы выполняли команды cupsAddOption("copies", "2",.. и cupsAddOption("Collate", "True", .. (см. примеры ниже). Получается команда cupsAddOption("copies" убивало сортировку, если она была установлена ​​​​на 2. Как и в случае с конфликтом ориентации postscript/cups, вам нужно установить значение копий cups равным 1, чтобы сортировка работала Файл postscript уже знает, что он будет распечатан, например, 2 копии. Если вы не хотите, чтобы он сортировался, установите количество копий cups равным 2. Если вы создаете файл postscript каким-либо другим способом, эта проблема может не возникать с вами, но это происходит, если вы используете вызов XrtTblVaDrawPS.

pgs = XrtTblVaDrawPS(myTable, fp, XRTTBL_PS_NUM_COPIES, num, ‹= set to 2 XRTTBL_PS_CELL_RANGE, rng, XRTTBL_PS_COLOR, clr, XRTTBL_PS_ORIENTATION, ornt, XRTTBL_PS_SCALE, FIT_TO_PAGE_HEIGHT, XRTTBL_PS_SHOW_ROW_LABELS, XRTTBL_PS_ALL, XRTTBL_PS_SHOW_FROZEN_ROWS, XRTTBL_PS_ALL, XRTTBL_PS_SHOW_COL_LABELS, XRTTBL_PS_ALL, XRTTBL_PS_SHOW_FROZEN_COLS, XRTTBL_PS_ALL, XRTTBL_PS_PAPERSIZE_WIDTH , media_sz.width, XRTTBL_PS_PAPERSIZE_HEIGHT, media_sz.length, XRTTBL_PS_MARGIN_LEFT, 1.00, XRTTBL_PS_MARGIN_RIGHT, 1.00, XRTTBL_PS_MARGIN_TOP, 0.75, XRTTBL_PS_MARGIN_BOTTOM, 0.75, XRTTBL_PS_HEADER_FONT, "Adobe 10", XRTTBL_PS_HEADER, hdr, XRTTBL_PS_HEADER_MARGIN, 0.55, XRTTBL_PS_FOOTER_FONT, "Adobe 10", XRTTBL_PS_FOOTER , "Страница №", XRTTBL_PS_FOOTER_MARGIN, 0,25, NULL);

myNumOptions = cupsAddOption("Разобрать", "True", myNumOptions, &myOptions); myNumOptions = cupsAddOption("copies", oss.str().c_str(), myNumOptions, &myOptions);

oss.str().c_str() равно "2", и сопоставление не выполняется, и я получаю (1-1-2-2) oss.str().c_str() равно "1", и сопоставление работает, и я получаю (1- 2-1-2) oss.str().c_str() равно "2", а для Cups Collate установлено значение "False", я получаю (1-1-2-2), как и ожидалось.

person user3416126    schedule 25.06.2015