Frage

Ich versuche, das System.Drawing.printing.printerSettings-Objekt zu ändern, das ich vom System.Windows.Forms.printdialog erhalte, nachdem der Dialog dem Benutzer angezeigt wurde. Obwohl ich die Eigenschaftswerte auf dem DruckerSettingsobjekt ändern kann, wird keiner der Änderungen, die ich nach dem Dialogfeld darstellen, tatsächlich beim Drucken eines Dokuments in Betracht gezogen.

Hier ist ein Beispiel für das, was ich meine:

generasacodicetagpre.

Verwenden Sie nun das Druckerstartobjekt zum Drucken. Ich benutze die dritte Partei-DLL mit der 3. Klasse dafür, da ich das Wort drucken muss, aber das scheint das Problem nicht zu sein. Es scheint so, dass, nachdem der Dialog gezeigt wurde, alle Einstellungen, die bereits auf den Drucker eingegeben wurden, bereits auf den Drucker festgelegt und das Ändern der Druckersätze erreicht nichts. Irgendwelche Ideen, wie Sie dies zur Arbeit bringen können?

edit: Ich habe einige Problemumgehungen dafür. Was ich hier möchte, ist, eine Antwort auf diese spezifischen Fragen zu erhalten: Ist es möglich, das PrinterSettings-Objekt nach dem Zeigen des Dialogs zu ändern, und werden diese Änderungen beim Drucken berücksichtigt? Wenn jemand nur einen Weg kennt, wie dies funktionieren kann (Sie können entscheiden, welche API, die Sie zum Drucken verwenden möchten, keine Rolle spielt, solange das DruckerSettings-Objekt verwendet wird), wäre ich sehr dankbar.

War es hilfreich?

Lösung

Nicht sicher, warum Ihre Frage eine Abstimmung erhielt, erscheint mir ziemlich vernünftig ????

Wie schon, ein paar Dinge, die ich mit PrintDialog (die Ihre Frage nicht beantworten oder nicht beantworten möchte, bemerkte).

Das erste ist, dass es nur eine Wrapper-Klasse für den Windows COM-Dialog ist.

generasacodicetagpre.

und zweiter, und am wichtigsten ist mit Bezug auf Ihre Frage, denke ich: Die PrintDialog-Klasse hat diese Routine, die nach dem Schließen des PrintDLG-Anrufs aufgerufen wird

generasacodicetagpre.

. . .

generasacodicetagpre.

Es gibt auch ein ziemlich interessantes Interplay hier (beachten Sie, dass Sie Printersettings einstellen.ToPAGE):

generasacodicetagpre.

und dann

generasacodicetagpre.

Keine direkte Antwort, die ich kenne, aber ich denke, sollte Sie in die richtige Richtung zeigen, warum es nicht funktioniert. Es scheint mir, dass während des Dialogs die Einheit des Dialogs glücklich nullifizieren kann, wenn er nach Abschluss neu erstellt wird, aber wenn der Dialog abgeschlossen ist, ungüllt das Ändern der Einstellungen tatsächlich die Dokumentendruckeinstellungen ungültig, bis er erneut eingestellt ist. Es kann möglich sein, dies manuell zu erledigen, oder es kann Loch \ Ked von M $ in der üblichen internen / privaten Art sein, wie viele Einbauten sind.

Es gibt natürlich eine Option (nicht so nett, ich weiß), um den Win-API, nachdem der Anrufcode, nachdem der Anrufcode übermittelt wurde, von den oben genannten Wählgubstiften verwendet werden kann, um Ihren eigenen Wrapper bei Bedarf zu erstellen.

Viel Glück.

Andere Tipps

von der Dokumentation:

generasacodicetagpre.

Es scheint also, dass Sie das yuor-modifizierte PrinterSettings-Objekt in das Word-Dokument bestehen können, das Sie drucken möchten.Könnten Sie mir sagen, ob das funktioniert?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top