Laden...

Word-Steuerung: Die Methode PrintOut

Letzter Beitrag vor 19 Jahren 7 Posts 2.931 Views
Word-Steuerung: Die Methode PrintOut

Hi,

wenn ich geöffnete Word-Dokumente mit der Methode PrintOut drucken will, kann ich dann irgendwie die eventuell auftretende Dialogbox "Die Seitenränder liegen außerhalb des druckbaren Bereichs, fortsetzen?" auch unterdrücken und automatisch immer mit "ja" beantworten lassen?

MfG
Der Schnapper

Wie greifst du auf Word zu? Aus einer WinForm Anwendung oder per Webservice o.ä.

Wenn du per Webservice drauf zugreifst, dann helfen dir meine Links aus dem zweiten diesen Post.

Ansonsten kannst du z.B. per Sendkeys ne Tastenkombi senden.

vg,
John Doe

Schon als Kindern war uns klar: Jeder von uns wird ein Star, oder Millionär - das ist doch auch nicht schwer. Dem Alkohol nicht abgeneigt, war es für uns auch nicht leicht. Durch seine Hände Arbeit, wird man auch nicht gleich ein Scheich.

Nee, über die Interop-Schnittstelle von Microsoft (die PIAs)

MfG
Der Schnapper

Das mit den PIAs war mir schon klar. Meine Frage bezog sich auf den Typ der Anwendung.

Schon als Kindern war uns klar: Jeder von uns wird ein Star, oder Millionär - das ist doch auch nicht schwer. Dem Alkohol nicht abgeneigt, war es für uns auch nicht leicht. Durch seine Hände Arbeit, wird man auch nicht gleich ein Scheich.

Hmm, dann versteh ich die Frage nicht so ganz, sorry...ich erklär mal, was ich mache:

Also, meine Anwendung öffnet im Hintergrund Word, guckt sich den Inhalt gemäß verschiedener Kriterien an und druckt es dann aus, wenn verschiedene Dinge zutreffen. Die Anwendung bekommt einen Ordner mit einer großen Sammlung an Doks übergeben und iteriert die alle nacheinander durch.

MfG
Der Schnapper

Wie ich schon in meinem ersten Post geschrieben habe, kannst du über die PIA nicht die Dialoge beeinflussen. In deinem Fall heisst das dann: Entweder die Druckränder so anzupassen, das der Dialog nicht auftritt, oder das du per SendKeys o.ä. den Dialog bestätigst.

Schon als Kindern war uns klar: Jeder von uns wird ein Star, oder Millionär - das ist doch auch nicht schwer. Dem Alkohol nicht abgeneigt, war es für uns auch nicht leicht. Durch seine Hände Arbeit, wird man auch nicht gleich ein Scheich.

Ich habe eine Lösung für den "Rand-Hinweis" gefunden, der allerdings ein anderes Problem hervoruft.

Lösung für das "Rand-Hinweis-Problem"


Word._Application app = new Word.Application ();
app.Options.PrintBackground = false;
app.DisplayAlerts = wdDisplayAlertsNone;

Es werden hier keine Warnungen von Word mehr angezeigt. Leider funktioniert diese Einstellungen nur bei synchronem Drucken, deshalb muss PrintBackground false sein.
Man sollte den ursprünglichen Status beider Eigenschaften nach dem Drucken wieder zurücksetzen!

Nachteil an der Methode ist, dass ich Druck-Status-Dialoge bekomme (Seiten x von x wird gedruckt ...), was bei einem automatischem Drucken sehr stört. Gibt es da eine Lösung, dass diese Dialoge nicht angezeigt werden?
Ich hatte mir vielleicht überlegt, alle Window-Handles meines Prozesses, der Word aufruft, zu verstecken. Ich bin von dieser Lösung aber nicht sehr begeistert. Hat jemand eine bessere Idee?

Danke 🙂