Ээээ... тут фильтры вообще не при чем. Я же специально напрямую печатаю, без всяких фильтров, raw называется. Контрольные символы отвечающие за перенос страницы вставляет именно фильтр. Если фильтрование опустить (а именно для того и существует raw) то переносить страницу (как и строку) будет некому кроме как программе формирующей исходные данные.Беда в том что любой спулер работает на уровне страниц, а не строк.Исходя из того что я накопал, предполагаю, что спулер занимается исключительно фильтрованием документа и передачей его на принтер, а что и как там напечатается зависит всецело от формата (т.е. исходных данных и конкретного фильтра, в случае raw фильтр отсутствует)Спулер занимается в первую очередь выстраиванием в очередь заданий от разных пользователей/процессов. То есть его основная задача заключается в том, чтобы предотвратить перемешивание на одном листе бумаги разных текстовА если страницами обозвать строки?. Тогда не будет никакой разницы :) Подозреваю, что где-нибудь в фильтрах это можно сделать.
Кстати, у меня все довольно мило запахало через системный вызов: char* print_buff = "printing printing printing"; char* print_comm = "lpr -l"; char buf[200]; sprintf(buf, "echo \"%s\" | %s", print_buf, print_comm); system(buf);Единственное что напрягает, это потенциальное переполнение буффера, но это поправимо. Кроме того остается нерешенным, что делать с теряющимися первыми буквами первой строчким, от одного до трех символов, остальное печатается нормально (жить можно, но некрасиво получается), если распечатка запускается пока принтер выключен. Кстати, вроде бы это происходит только при печати в raw.