Comroader Geschrieben 25. März 2002 Geschrieben 25. März 2002 Hallo, Weiss jemand von euch wie man mit ShellExecute eine Textdatei in Querformat druckt ??? Für eine schnelle Antwort wäre ich sehr dankbar !!! Zitieren
gugelhupf Geschrieben 26. März 2002 Geschrieben 26. März 2002 mit der shell weiss ichs net, aber mit der winapi gehts *ggg* Zitieren
Comroader Geschrieben 26. März 2002 Autor Geschrieben 26. März 2002 Könntest du vielleicht einmal ins Forum posten wie das mit der WINAPI geht. Es ist eigentlich egal wies funzt, Huaptsache es geht !!! THX Zitieren
gugelhupf Geschrieben 26. März 2002 Geschrieben 26. März 2002 Aus einer Applikation die bei uns läuft: ///////////////////// Drucken über Netzwerkdrucker //////////////// LOGFONT lf; lf.lfHeight=2100; lf.lfWidth=0; lf.lfEscapement=0; lf.lfOrientation=0; lf.lfWeight=FW_BOLD; lf.lfItalic=FALSE; lf.lfUnderline=FALSE; lf.lfStrikeOut=0; lf.lfCharSet=ANSI_CHARSET; lf.lfOutPrecision=OUT_DEFAULT_PRECIS; lf.lfClipPrecision=CLIP_DEFAULT_PRECIS; lf.lfQuality=DEFAULT_QUALITY; lf.lfPitchAndFamily=DEFAULT_PITCH | FF_SWISS; strcpy(lf.lfFaceName,"Courier New"); HFONT hFont=CreateFontIndirect(&lf); DOCINFO di; HDC ghdc; LPDEVMODE DruckerInfos; HANDLE hPrinter; DWORD wert; /////////////////////////// Rechnername checken ///////////////// char PC_Name[50]; AfxSocketInit(); ::gethostname(PC_Name,50); // Name ist ermittelt if(strcmp(PC_Name,"Versand8")!=0) // prüfen wer wo drucken will { // if(!(OpenPrinter("HP LaserJet 5L",&hPrinter,NULL))) if(!(OpenPrinter("\\\\EXTRA\\395_q.logistik.extra",&hPrinter,NULL))) { MessageBox("Kann Drucker nicht öffnen !"); return; } //wert=DocumentProperties(NULL,hPrinter,"HP LaserJet 5L",NULL,NULL,0); // Schritt eins wert=DocumentProperties(NULL,hPrinter,"\\\\EXTRA\\395_q.logistik.extra",NULL,NULL,0); // Schritt eins DruckerInfos=(LPDEVMODE)malloc(wert); //DocumentProperties(NULL,hPrinter,"HP LaserJet 5L",DruckerInfos,NULL,DM_OUT_BUFFER); // Schritt zwei DocumentProperties(NULL,hPrinter,"\\\\EXTRA\\395_q.logistik.extra",DruckerInfos,NULL,DM_OUT_BUFFER); // Schritt zwei DruckerInfos->dmOrientation=DMORIENT_LANDSCAPE ; //wert=DocumentProperties(NULL,hPrinter,"HP LaserJet 5L",DruckerInfos,DruckerInfos,DM_IN_BUFFER | DM_OUT_BUFFER); wert=DocumentProperties(NULL,hPrinter,"\\\\EXTRA\\395_q.logistik.extra",DruckerInfos,DruckerInfos,DM_IN_BUFFER | DM_OUT_BUFFER); if (wert != IDOK) { /* if failure, cleanup and return failure */ free(DruckerInfos); return ; } ClosePrinter(hPrinter); // if(!(ghdc=CreateDC("HP LaserJet 5L","HP LaserJet 5L","LPT1:",DruckerInfos))) if(!(ghdc=CreateDC("HP LaserJet 2100 Series PCL 6","\\\\EXTRA\\395_q.logistik.extra","\\\\EXTRA\\395_q.logistik.extra",DruckerInfos))) { MessageBox("Fail"); free(DruckerInfos); return ; } di.cbSize = sizeof(DOCINFO); di.lpszDocName = "Palettendruck"; di.lpszOutput = NULL; StartDoc (ghdc, &di); m_strWeNr.Insert(0,"WE "); for(len=0; len<atoi(m_strAnzahl); len++) // Druckanzahl { SaveDC(ghdc); StartPage (ghdc); lf.lfHeight=2100; hFont=CreateFontIndirect(&lf); SelectObject (ghdc, hFont); TextOut(ghdc,1,200,m_strArtnr,m_strArtnr.GetLength()); lf.lfHeight=600; hFont=CreateFontIndirect(&lf); SelectObject (ghdc, hFont); TextOut(ghdc,4200,3500,m_strDatum,m_strDatum.GetLength()); TextOut(ghdc,10,3500,m_strWeNr,m_strWeNr.GetLength()); EndPage (ghdc); RestoreDC(ghdc,-1); } EndDoc(ghdc); DeleteDC (ghdc); ///// !!!!!!!!!!!!!!!! free(DruckerInfos); //////////////////////////////////////////////////////////////////// LANDSCPAE ist soweit ich noch weiss die Einstellung um quer zu drucken...in der MSDN sind alle relevanten Methoden beschrieben....musst halt gucken :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.