Summary: | Не печатает на принтере, если указывать пустое имя принтера | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Vitaly Lipatov <lav> |
Component: | Общее | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P5 | CC: | kondratyuk |
Version: | 1.0.8 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 584 | ||
Attachments: | Патч 2005 года от Serge Ryabchun |
Created attachment 149 [details]
Патч 2005 года от Serge Ryabchun
Простой тест вида: hDC = CreateDC("WINSPOOL","",NULL,NULL); if (!hDC) printf ("Printer error!\n") стабильно даёт Printer error! как в wine, так и в Windows. Никаких хитрых замен windows не делает, и ничего не печатает. > Пример программы - mbread.exe
Программа нормально печатает. Возможно, всё дело в невыбранном принтере по умолчанию.
Другой причины, по которой может передаваться пустая строка, не вижу.
Приложен патч вида if (!psCmd[0] && !strncmp("LPR:",pszOutput,4)) sprintf(psCmd,"|lpr -P'%s'",pszOutput+4); + else + if (*pszOutput == '\0') + strcpy( psCmd,"|lpr"); будет в сборке 1.0.8 *** Bug 842 has been marked as a duplicate of this bug. *** Собственно проблема не устранена, данное исправление просто её маскирует, вводя расширенное поведение (печать через lpr без указания принтера). Date: Fri, 11 Jan 2008 10:44:25 +0200 From: "Serge Ryabchun" To: "Mike Shigorin" Subject: Re: [Bug 12369] Problem with printing from specific program (CUPS) Cc: lav@ Посмотрев на патч, вспомнил в чем проблема ;-) Delphi, а та программа на нем писана, для дефолтного принтера использует пустую строку, а WINE считает, что must be "LPR:", а по комменту понятно, что нужно еще таким же образом на кнопку свойств реагировать - подставить "LPR:" вместо пустой строки. Хм, может и не Delphi виноват, а тот компонент, в котором отчет готовится. Но в любом случае, WINE тоже виновен ибо работает в этой ситуации не так, как это делает Windoze |
Есть программа, написанная на Дельфи, по видимому 6, использует QReport из поставки, из постороннего кажется только что-то из RX. Проблема в том, что QR на экран выводит, но при попытке распечатать тихо сглатывает, причем молча. Разборки показали, что он выбирает принтер, считает, что принтер по умолчанию и отравляет строку '', в виндовсе это прокатывает, потому что он таки как-то печатает, а wine на такое реагирует просто - нет имени, нет печати. Пример программы - mbread.exe > То есть я правильно понимаю, что Windows, получая название > принтера '', печатает на принтере по умолчанию, а WINE молча > проглатывает задание? Да, точнее, думаю, что да, я не думаю, что QR настолько умный, что под вайном полученное имя принтера, а он его получает правильно, меняет на пустую строку ("" ;-), это в логах печатало как ''), а под виндоуз отправляет то, что получил. Как по мне, то это скорей еще одна недокументированная фича.