Laden...

Text drucken aus einer WPF Anwendung heraus.

Erstellt von Gemelon vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.030 Views
Gemelon Themenstarter:in
40 Beiträge seit 2007
vor 4 Jahren
Text drucken aus einer WPF Anwendung heraus.

Ich möchte einen kurzen Text (nicht RichText) der sich in einer Stringvariablen befindet, aus einer WPF Anwendung heraus, auf einem Drucker ausgeben. Ich habe einige Beispiele im Internet gefunden, die ich aber alle nicht compilieren kann, da die Namespaces System.Windows.Controls und System.Windows.Documents fehlen. Die lassen sich auch nicht einbinden, da sie auch im Reference Manager nicht vorhanden sind. Alle Beispiele die ich gefunden habe beziehen sich auf VS2010, ich arbeite aber mit VS2017. Neuere Beispiele habe ich nicht gefunden. Ich vermute dass, sich in der Zwischenzeit beim drucken etwas geändert hat, aber ich habe nicht herausgefunden was. Gibt es in zwischen eine andere Vorgehensweise beim Ausducken? Kann jemand ein Beispiel geben?

16.807 Beiträge seit 2008
vor 4 Jahren

Beide von Dir genannten Namespaces brauchen keine Referenzen, sondern nur usings - sofern Du Dich bereits in einer WPF Anwendung befindest.

Dass Du keine aktuellen Informationen gefunden hast, das ist schwer nachzuvollziehen.
In der offiziellen Dokumentation von .NET findet man sehr viel dazu - zB. Drucken via XPS vom März 2017 anhand eines WPF Beispiels.

WPF - XPS Printing Overview
PS: gefunden in wenigen Sekunden via Google-Suche nach wpf print document

Gemelon Themenstarter:in
40 Beiträge seit 2007
vor 4 Jahren

Hallo Abt,
danke für die schnelle Antwort. Das mit dem XPS hatte ich noch nicht gefunden, da ich nicht wusste das ich nach XPS suchen muss. Das sieht schon mal gut aus.
Ich hatte nur Sachen gefunden wie die ersten 3 in deinem 2. Link. Die Beispiele beziehen sich auf FlowDocument welches in einem der beiden Namespaces zu finden gewesen wäre.
Was jetzt noch fehlt ist ein PrintDialog, der ist leider nicht in System.Printing zu finden, sondern in System.Windows.Documents welcher aber nicht existiert.
Wo bekomme ich also jetzt noch so eine Dialog her?

16.807 Beiträge seit 2008
vor 4 Jahren

Basics .NET:

Namespaces haben nicht direkt was mit der Visual Studio Version zutun, sondern mit der .NET (Framework) Version.

Namespaces wie System.Windows.Documents befinden sich nicht zwangsläufig in einer Assembly Namens "System.Windows.Documents.dll".
In der .NET Dokumentation steht aber genau, welche Assembly Du referenzieren musst, um auf einen gewissen Namespace zugreifen zu können.

Und wie der Dokumentation von PrintDialog zu entnehmen ist, lieger dieser im Namespace "System.Windows.Controls" aber in der Assembly "PresentationFramework.dll".

PrintDialog Class

Namespace: System.Windows.Controls
Assembly: PresentationFramework.dll

da ich nicht wusste das ich nach XPS suchen muss.

hab ich auch nicht:

PS: gefunden in wenigen Sekunden via
>

Und es gibt viele Arten, wie man Drucken kann.
Es gibt tausende Tutorials dazu, wenn ich die ersten Seiten bei der Trefferliste so anschau.

Gemelon Themenstarter:in
40 Beiträge seit 2007
vor 4 Jahren

Hallo Abt,
jetzt hab ichs kapiert. Es hat geklappt. Man muss aber noch einige Verweise hinzufügen die alle nicht direkt mit der Namespace Bezeichnung übereinstimmen und teilweise nicht einmal eine Verwandschaft haben. Ich habe noch

PresentationCore
PresentationFramework
ReachFramework
System.Priniting
System.Windows.Presentation
und WindowsBase

benötigt.

Vielen Dank für die Hilfe!
👍