Gilt ab List & Label 10
Manche Original-Brother-Druckertreiber scheinen nicht mehrere Druckjobs auf dem gleichen Device Context durchführen zu können. Das zeigt sich bei List & Label, wenn die Seitenzahl so groß wird, daß List & Label mehrere Druckjobs verwendet (siehe LL_PRNOPT_JOBPAGES) oder beim zweiten Druck aus dem Preview.Abhilfe: Entweder aktuelle Treiber von http://solutions.brother.com laden, oder entsprechenden Alternativtreiber, z.B.:
HL1240 - HP LaserJet IIP
HL1250, HL1270N - HP LaserJet 4
benutzen.
Unabhängig von List & Label reproduzierbar mit dem folgenden Code:
#include <windows.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
PRINTDLG pd = {0};
DOCINFO di = {0};
pd.lStructSize = sizeof(pd);
pd.Flags = PD_RETURNDC | PD_RETURNDEFAULT;
PrintDlg(&pd);
di.cbSize = sizeof(di);
di.lpszDocName = "test";
for (int i = 0; i < 2; ++i)
{
if (StartDoc(pd.hDC,&di) <= 0)
{
printf("error %25d, DC=%25x, err=%25x\n",i,pd.hDC,GetLastError());
break;
}
StartPage(pd.hDC);
Rectangle(pd.hDC,0,0,1000,1000);
EndPage(pd.hDC);
EndDoc(pd.hDC);
}
DeleteDC(pd.hDC);
return(0);
}
IDKBTD000619 KBTD000619