Forum: PC-Programmierung Visual C++ 2008: Wie in eine Datei "drucken"?


von Gerhard (Gast)


Lesenswert?

Ein Visual C++ Programm druckt auf Knopfdruck direkt in eine Datei. Das 
funktioniert insofern, dass nach dem Drücken des Buttons ein Dialog 
erscheint, der den Dateinamen entgegennimmt.

Die Frage ist nun, wie der Dateinamen direkt an das Objekt zu übergeben 
ist, um den Dialog einzusparen. Wer kann mir da weiter helfen?

von thestrangler (Gast)


Lesenswert?

"Visual C++ 2008: Wie in eine Datei "drucken"?"
"Ein Visual C++ Programm druckt auf Knopfdruck direkt in eine Datei."

Hmm... ok. Du willst also entgegen der Überschrift gar nicht wissen, wie 
man in eine Datei druckt.

> Die Frage ist nun, wie der Dateinamen direkt an das Objekt zu übergeben
> ist, um den Dialog einzusparen.

An welches Objekt? Hast du das Programm selbst geschrieben oder irgendwo 
den Source-Code runtergeladen und dann kompiliert? Ist es C++ oder 
C++/CLI (.NET)? Handelt es sich um irgendeine Komponente/Library zum 
Drucken oder läuft es direkt über GDI/GDI+? Wird der Standard-Dialog zum 
Drucken angezeigt oder - ie du schreibst - nur ein Dialog, in dem ein 
Dateiname eingegeben werden kann? Im letzteren Fall sollte man doch 
recht einfach einen Wert für den entsprechenden String einsetzen können 
(fest oder besser per Config) und den Dialog erst gar nicht anzeigen?

>Wer kann mir da weiter helfen?

Ich vermutlich eher nicht, aber da fehlen so viele Informationen, dass 
es sicher auch für andere schwierig ist, eine sinnvolle Antwort auf 
deine Frage zu finden.

von thestrangler (Gast)


Lesenswert?

"wie du schreibst" sollte es natürlich heißen.

von Gerhard (Gast)


Lesenswert?

Gemeint war: Drucken in eine Datei ohne den Umweg über den Dialog.

Verwendet wird das Objekt printDocument von Visual C++ 2008, wobei die 
Print-Methode (siehe unten) vor dem Druck den Dialog ausruft.
1
private: System::Void button3_click(System::Object^  sender, System::EventArgs^  e)
2
{
3
  printDocument1->DocumentName="BSP.XPS";
4
  printDocument1->Print();
5
}

von thestrangler (Gast)


Lesenswert?

Also .NET. Versuche mal, vor Print() die Eigenschaften von 
printDocument1 zu setzen, speziell in den PrinterSettings "PrintToFile" 
(auf true) und "PrintFileName" (Dateiname).

http://msdn.microsoft.com/de-de/library/system.drawing.printing.printdocument%28v=vs.110%29.aspx

http://msdn.microsoft.com/de-de/library/system.drawing.printing.printersettings%28v=vs.110%29.aspx

von Gerhard (Gast)


Lesenswert?

Es funktioniert! Vielen Dank.

von Takao K. (takao_k) Benutzerseite


Lesenswert?

Ja klar, dass kannst du ueberall dort zuweisen wo printDocument1 gueltig 
ist und initialisiert wurde, ggf. auch selbst initialisieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.