BlackBoard » Design, Programmierung & Entwicklung » Programmieren » Drucken unter windwos ohne Hilfslibs/komponenten » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Drucken unter windwos ohne Hilfslibs/komponenten
Beiträge zu diesem Thema Autor Datum
 Drucken unter windwos ohne Hilfslibs/komponenten CDW 01.07.2003 19:28
 RE: Drucken unter windwos ohne Hilfslibs/komponenten phlox81 01.07.2003 19:46
 RE: Drucken unter windwos ohne Hilfslibs/komponenten CDW 01.07.2003 20:18
 RE: Drucken unter windwos ohne Hilfslibs/komponenten phlox81 01.07.2003 20:46
 RE: Drucken unter windwos ohne Hilfslibs/komponenten CDW 02.07.2003 20:39
 RE: Drucken unter windwos ohne Hilfslibs/komponenten scr!pTk!d 07.07.2003 22:59
 RE: Drucken unter windwos ohne Hilfslibs/komponenten CDW 08.07.2003 18:14

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

Drucken unter windwos ohne Hilfslibs/komponenten       Zum Anfang der Seite springen

mein Problem ist: ich möchte in meinem Programm eine Druckfunktion fürs eingetippte anbieten... entweder direkt aus dem Programm oder auch mit zwischenspeichern (falls es einfacher gehen sollte). Ich kann keine Komponente wie MFC oder andere DLLs verwendent(außer die wären free), da ich weder Delphi/VB noch C++ verwende.
Kennt jemand die nötigen APIs dafür? Ich finde immer nur etweder beschreibungen in VB (document.print) oder mit MFC.
01.07.2003 19:28 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Ich weis nicht ob es dir weiterhilft, aber evtl. wäre das ganz interessant für dich:

http://www.c-plusplus.de/ubb/cgi-bin/ult...c&f=20&t=000014

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
01.07.2003 19:46 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

Themenstarter Thema begonnen von CDW
      Zum Anfang der Seite springen

@Devil, danke, das ist ein origineller Vorschlag, leider bringt er mich nicht so weiter, da ich einen USB Drucker habe und außerdem funktioniert es nicht im Netzwerk (Schule)...
Ich dachte da an so eine Methode, womit man einfach sagen kann, "druck jetzt diese Datei", die kann ich ja temporär speichern, weil Speichern eher schon implementiert wurde. Hatte mir nie gedacht, dass es solche Schwierigkeiten damit geben wird, hab schon die Druckbuttons erstellt und eingebunden großes Grinsen
01.07.2003 20:18 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

hm, such mal nach Dos Printing. vielleicht findest du was brauchbares.
Was genau willst du denn drucken ?

Devil

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
01.07.2003 20:46 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

Themenstarter Thema begonnen von CDW
      Zum Anfang der Seite springen

Einen eingetippten Quelltext.Es gibt keine Formatierungen oder so, es ist ein einfaches, mehrzeiliges Editfeld in welchem der Quellcode steht.
Ich habe jetzt was gefunden, wonach ich den Text auf eine hDC zeichnen musste (nur halt auf die Drucker hDC und nicht die des Bildschirms). Wenn jemand trotzdem eine einfachere Methode kennt, wäre ich dankbar.

PS: es gibt da einen DOS-Befehl: "Print blabla"... als notbehelf wird er wohl reichen müssen, auf dauer sollte ich aber eine vernünftige Lösung implementieren
02.07.2003 20:39 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
scr!pTk!d scr!pTk!d ist männlich
Member


Dabei seit: 10.11.2002
Beiträge: 276

      Zum Anfang der Seite springen

Vielleicht hilft dir das:

http://www.willemer.de/informatik/windows/windruck.htm

Hier ein Auszug:
Zitat:

Für die Druckerauswahl liefert Windows seit 3.1 die Funktion PrintDlg. Hier kann der Benutzer sich seinen Lieblingsdrucker auswählen. Den Programmierer interessiert in erster Linie der Device-Kontext, in den er gerne später hineinzeichnen möchte. Um diesen zu erhalten, wird vor dem Aufruf von PrintDlg das Element Flags in der Struktur PRINTDLG mit der Konstanten PD_RETURNDC angegeben. Hat der Anwender bestätigt, findet sich der gesuchte Kontext in der Strukturvariablen hDC. Der hwndOwner wird nur für den korrekten Aufbau der Dialogbox benötigt.


__________________
ceterum censeo carthaginem esse delendam
07.07.2003 22:59 scr!pTk!d ist offline E-Mail an scr!pTk!d senden Beiträge von scr!pTk!d suchen
CDW CDW ist männlich
eine Simulation


Dabei seit: 12.10.2002
Beiträge: 1.329
Herkunft: CreateRemoteThread

Themenstarter Thema begonnen von CDW
      Zum Anfang der Seite springen

@Scriptkid: danke, die Seite hab ich schon gefunden und die hat mich dann
auch weitergebracht, auch wenn ich meine grauen Zellen anstrengen
musste(aus dem Editfenster auf HDC zeichnen) und etwa 20 Blatt Papier
verschwendet hab Augenzwinkern .

vielleicht bringt das hier jemanden auch weiter:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
Quellcode_drucken proc
 	LOCAL pd:PRINTDLG
    LOCAL DocInfo:DOCINFO
    LOCAL LFont: TEXTMETRIC
    LOCAL hFont:HANDLE
   
    LOCAL buffer[129]:BYTE
    .data
      druckname db "ALI-Emulator ",169," by Eugen.R",0
      FontName db "MS Sans Serif",0
      X DWORD X_MAX
      Y DWORD Y_MAX
      Numlines dd 0
    .code 
    INVOKE PrintSetup, ADDR pd, hWin ;printerdialoginitialisierung (ausgelagert in der anderen prozedur) 
    invoke PrintDlg,addr pd ;der dialog
    .if eax==0
    	ret
    .endif  
     
     INVOKE  CreateFont,80,0,0,0,FW_LIGHT,FALSE,FALSE,FALSE,ANSI_CHARSET,0,0,DEFAULT_QUALITY,0,addr FontName ;man sollte die Fontart angeben
  
     mov hFont,eax
    
    mov eax, sizeof DOCINFO
    mov DocInfo.cbSize, eax
    mov DocInfo.lpszDocName,offset druckname 
    mov eax, offset druckname
    mov DocInfo.lpszDocName, eax
    mov DocInfo.lpszOutput, NULL
    mov DocInfo.lpszDatatype, NULL
    mov DocInfo.fwType, 0
    
    INVOKE GetTextMetrics, pd.hDC, ADDR LFont
 
        
    ;druckstarten:
    invoke StartDoc,pd.hDC,addr DocInfo 
    mov ecx,0 ;anzahl der Kopien
    PRINT_LOOP:
    push ecx
    invoke StartPage,pd.hDC; Inhalt ausgeben
    invoke SelectObject,pd.hDC,hFont
   
    invoke SendDlgItemMessage,hWin,ID_PROGRAM_INPUT,EM_GETLINECOUNT,0,0
    mov Numlines,eax
    xor ecx,ecx
   
    push ecx
    mov X,X_MAX;abstand
    mov Y,Y_MAX ;abstand
    invoke TextOut,pd.hDC,X,Y,addr druckname,25 ;copyright von mir ;)
    mov eax, Y
    add eax, LFont.tmHeight
    add eax, LFont.tmExternalLeading
    add eax, LFont.tmHeight
    mov Y, eax
    
     lea esi,buffer
     mov WORD PTR [buffer],128
    TEXT_LOOP:
        pop ecx
        push ecx
        lea esi,buffer  
        invoke SendDlgItemMessage,hWin,ID_PROGRAM_INPUT,EM_GETLINE,ecx,esi
        mov edx,eax
        lea esi,buffer
        add esi,2 ;da wir ein Word für Größe des Textes haben
        invoke TextOut,pd.hDC,X,Y,addr buffer,edx
             mov eax, Y
             add eax, LFont.tmHeight
             add eax, LFont.tmExternalLeading
             mov Y, eax
        pop ecx
        inc ecx 
        push ecx    
        cmp ecx,Numlines
        jng TEXT_LOOP
        
        pop ecx
    ;enden
    invoke EndPage,pd.hDC;
    pop ecx
    inc ecx
    cmp cx, pd.nCopies
    jg PRINT_LOOP
    
    invoke EndDoc,pd.hDC;
    invoke DeleteDC,pd.hDC
   
    .if pd.hDevMode != NULL
       invoke GlobalFree,pd.hDevMode
    .endif
    .if (pd.hDevNames != NULL) 
        invoke GlobalFree,pd.hDevNames;
 	.endif
 	ret

 Quellcode_drucken endp

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von CDW: 08.07.2003 18:16.

08.07.2003 18:14 CDW ist offline E-Mail an CDW senden Homepage von CDW Beiträge von CDW suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » Drucken unter windwos ohne Hilfslibs/komponenten

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH