Printer selected is not valid как исправить

от admin

Ошибки «Операция не поддерживается» и «Выбран недопустимый принтер» при печати

Надеюсь, кто-нибудь сможет помочь. В моем приложении Delphi 7 небольшой процент пользователей сообщает об ошибках при печати, и я пытаюсь решить эту проблему с последним из них. Я немного ограничен, когда дело доходит до тестирования (поскольку пользователь физически удален, и мы работаем по электронной почте), но я получаю некоторую дополнительную информацию от EurekaLog.

Во всяком случае, первая ошибка, которую он получил, это «Операция не поддерживается на выбранном принтере», в этой строке кода:

Итак, я предположил, что его принтер не поддерживает ориентацию (я никогда не слышал об этом, но, думаю, это возможно) и попробовал без этой строки кода. Но теперь он получает «Выбран недопустимый принтер» в этой строке:

Насколько я знаю, принтер выбран правильно (это Canon Pixma iP1500, но у других пользователей другие модели, струйные или лазерные), и он уже пытался обновить драйвера. ОС тоже различается — от XP до Vista SP1).

Я предложил ему попробовать другой принтер, но что бы он ни ответил, я не знаю, куда смотреть дальше. Поиск в гугле не дал никаких полезных результатов (по крайней мере, для меня). У кого-нибудь есть идея?

"Operation not supported" and "Printer selected is not valid" errors while printing

Hopefully somebody will be able to help. In my Delphi 7 application small percentage of users report errors when printing and I’m trying to resolve this with last of them. I’m slightly limited when it comes to testing (as user is physically distant and we are working it out via e-mail), but I get some additional information from EurekaLog.

Anyway, first error that he got is «Operation not supported on selected printer», at this line of code:

So, I assumed that his printer doesn’t support Orientation (I never heard of this, but I guess it’s possible) and tried without this line of code. But now he gets «Printer selected is not valid» at this line:

As far as I know, printer is correctly selected (it’s Canon Pixma iP1500, but other users have other models, inkjet or laser), and he already tried to update drivers. OS also varies — from XP to Vista SP1).

I suggested to him to try with another printer, but whatever he responds, I don’t know where to look next. Google search didn’t give any useful results (for me, at least). Does anyone have an idea?

Читать:
Что делает тайм аут в дискорде

Исправил баг 'printer Selected Is Not Valid' при печати на сетевом принтере

Исключение "Printer selected is not valid" вылетает при попытке печати на сетевом принтере. Возникает не у всех и не всегда. Вот код, который (в моем случае) исправил баг:

<!—fonto:Courier New—><span style="font-family:Courier New"><!—/fonto—>procedure TfrxPrinter.UpdateDeviceCaps;
begin

FDPI := Point(GetDeviceCaps(FDC, LOGPIXELSX), GetDeviceCaps(FDC, LOGPIXELSY));

if (FDPI.X = 0) or (FDPI.Y = 0) then
raise Exception.Create(‘Printer selected is not valid’);

FPaperHeight := Round(GetDeviceCaps(FDC, PHYSICALHEIGHT) / FDPI.Y * 25.4);
FPaperWidth := Round(GetDeviceCaps(FDC, PHYSICALWIDTH) / FDPI.X * 25.4);
FLeftMargin := Round(GetDeviceCaps(FDC, PHYSICALOFFSETX) / FDPI.X * 25.4);
FTopMargin := Round(GetDeviceCaps(FDC, PHYSICALOFFSETY) / FDPI.Y * 25.4);
FRightMargin := FPaperWidth — Round(GetDeviceCaps(FDC, HORZRES) / FDPI.X * 25.4) — FLeftMargin;
FBottomMargin := FPaperHeight — Round(GetDeviceCaps(FDC, VERTRES) / FDPI.Y * 25.4) — FTopMargin;

Printer selected is not valid как исправить

Привет всем жителям Королевства!

Решил обойтись без обычного диалога выбора принтера и его установок.
Задаю значение Printer.PrinterIndex, используя TComboBox. Как только доходит до Printer.BeginDoc, выдается сообщение «Printer selected is not valid». Может быть, нужно задать еще какие-то установки? Не знает ли кто-нибудь, как эта проблема решается?

Вот такой код у меня:

Printer.PrinterIndex := frmGraphPrintSettings.cmbPrinters.ItemIndex;
Printer.Orientation := poLandscape;
Printer.BeginDoc; // Ошибка
chrtMax.PrintPartial(GraphPrintArea1);
Printer.EndDoc;

Отслеживать ответы на этот вопрос по RSS

04-11-2006 13:26 | Сообщение от автора вопроса

Выхода за пределы списка принтеров нет. У меня Printer.Printers.Count = 4, только один настоящий, а другие виртуальные (Acrobat Distiller и ему подобные). Пробовал выбирать настоящий принтер frmGraphPrintSettings.cmbPrinters.ItemIndex = 0, Acrobat Distiller (frmGraphPrintSettings.cmbPrinters.ItemIndex = 3). Настоящий пишет «Printer selected is not valid», а Acrobat Distiller отказывается тоже печатать, советуя выключить в установках опцию «Do not send fonts to Distiller».

04-11-2006 12:38
А чему у Вас равен frmGraphPrintSettings.cmbPrinters.ItemIndex и Printer.Printers.Count .

Страница избранных вопросов Круглого стола.

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Похожие статьи