| 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 настолько умный, что под вайном полученное имя принтера, а он его получает правильно, меняет на пустую строку ("" ;-), это в логах печатало как ''), а под виндоуз отправляет то, что получил. Как по мне, то это скорей еще одна недокументированная фича.