Drucken mit der WPF

  • WPF

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von flori2212.

    Drucken mit der WPF

    Hallo,

    heute greife ich mal etwas aus einem anderen Thread auf:

    Nofear23m schrieb:

    Gehts/gings hier nur ums drucken? Wenn ja können wir die rausmachen, das geht mit der WPF mit OnBoardmittel



    Mit WPF geht Drucken mit OnBoard Mitteln.
    Wie darf ich es mir vorstellen?

    Ich habe nämlich eine Listbox, in der kann ich zwischen verschiedenen Instanzen eines Objekts auswählen. So ein Objekt hat dann mehrere Eigenschaften (wie z.B. Name, ...)

    Jetzt möchte ich diese auf eine bestimmte Weise auf einem A4 Papier anordnen und ausdrucken

    Normalerweise hätte ich mit einem Worddokument gearbeitet, wo ich Platzhalter Zeichen ersetzt hätte, allerdings muss dann halt auf jedem Computer wo das Programm läuft Word installiert sein.

    Wie sieht es jetzt unter WPF aus?

    PS: Mir reicht nur ein Ansatz, den Rest kann ich dann durch googlen oder probieren herausfinden.

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor
    Da schließ ich mich glatt an, wie man ganze Controls/Windows Druckt ist mir bereits klar, aber egal was ich bei google eingebe, finde ich bislang nichts was auf einzelne Items von ListBoxen eingeht, oder sogar die Möglichkeit bietet diese nach eigenem willen anzuordnen.
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Hallo

    Ich beschreibe es mal etwas allgemeiner.
    Du benötigst einen FlowDocumentReader. In diesem packst du ein FlowDocument.

    Anschliessend arbeitest du ähnlich wie bei einer RichTextBox mit Paragraph, InlineUIContainer, Table usw.

    z.b.:

    XML-Quellcode

    1. <FlowDocumentReader Grid.Row="0" MinZoom="40" Zoom="70" ViewingMode="Scroll" IsFindEnabled="True">
    2. <FlowDocument x:Name="flowDocument" ColumnWidth="29cm" IsColumnWidthFlexible="False" Language="de-de" PageWidth="29cm" >
    3. </FlowDocument>
    4. </FlowDocumentReader>


    Als kleine Randinfo. Hier habe ich noch keine vernünftige möglichkeit gefunden mit Binding zu Arbeiten, gerade wenn du so wie du vrschiedene Objekte hast ist es wohl besser das "Document" par Code zu "füllen".

    Zum Drucken kannst du dann z.b. in einem Button_Click folgendes machen, hier ein Beispiel:

    VB.NET-Quellcode

    1. Dim pd As New PrintDialog
    2. pd.UserPageRangeEnabled = True
    3. pd.PrintTicket.PageOrientation = System.Printing.PageOrientation.Landscape
    4. If pd.ShowDialog = True Then
    5. Me.flowDocument.PageHeight = pd.PrintableAreaHeight
    6. Me.flowDocument.PageWidth = pd.PrintableAreaWidth
    7. Dim iDokument As IDocumentPaginatorSource = DirectCast(Me.flowDocument, IDocumentPaginatorSource)
    8. pd.PrintDocument(iDokument.DocumentPaginator, "Titel des Audrucks (wird auch in der Druckerwarteschlange verwendet)")
    9. End If



    Schöne Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @flori2212 bist du mit den Infos an dein Ziel gekommen oder eher nicht?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hallo,

    da das Drucken nun doch nicht so leicht funktioniert wie ich es mir gedacht habe, und es außerdem kein Bindingsupport bietet wurde die Funktion erstmal weiter nach hinten auf meiner Featurelist für mein Programm geschoben.
    Mit deinen Informationen bekomme ich es aber, wenn es soweit ist, hin. Wenn sich nochmal Probleme auftun werde ich mich hier melden.

    Viele Grüße
    Florian
    ----

    WebApps mit C#: Blazor