Benutzer mit den meisten Antworten
WPF Fensterinhalt in ein Word Dokument speichern

Frage
Antworten
-
Hallo Carl-Heinz,
für einen Test habe ich eine Form mit einem Button, einer TextBox und einem Image Control (letzteres "Image1") erstellt.
Mit dem folgenden Code wird der Inhalt des Formulars gerendert und dem Image Control zugewiesen.
Private Sub Button_Click(sender As Object , e As RoutedEventArgs) Dim bmp As New RenderTargetBitmap( 400, 200, 72, 72, New System.Windows.Media.PixelFormat() ) bmp.Render( Me ) Me.Image1.Source = bmp End Sub
D.h. die ersten beiden Zeilen wären das, was Du für die Erzeugung der Grafik brauchst.
Wie Du die jetzt in Word oder PDF bekommst, hängt - wie gesagt - davon ab, wie Du auf Word oder Pdf zugreifst. Da es da viele Möglichkeiten gibt, beschreib bitte zuerst, wie deine Zugriffe hier aussehen oder such dir eine Möglichkeit aus. Es gibt kostenlose (meist nicht ganz so einfach nutzbare) als auch kostenpflichtige (oft einfacher nutzbare, teils aber recht teure) Möglichkeiten.
Word Automation setzt auf jedem Ziel PC eine passende Word Installation (in der erwarteten Version) voraus. Falls das nicht gegeben ist, müsstest Du das Dokument auf anderem Weg erzeugen.
https://www.google.de/?gws_rd=ssl#q=.net+word+document
https://www.google.de/?gws_rd=ssl#q=.net+pdf+document
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan Falz Freitag, 10. Februar 2017 11:58
- Als Antwort vorgeschlagen Holger M. Rößler Freitag, 10. Februar 2017 13:54
- Als Antwort markiert Carl-Heinz Robert Dienstag, 14. Februar 2017 11:36
Alle Antworten
-
Hallo Carl-Heinz,
was genau ist bei dir der "Inhalt" des WPF Fensters?
Die gesamte Anwendungsoberfläche, also eine Grafik? Oder nur den Text? Falls ja, welchen bzw. aus welcher Art von Controls? ...?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Carl-Heinz,
letztendlich kannst Du das nur als eine große Grafik einfügen. Also ein Image vom Fenster erzeugen und das dann als Grafik in Word oder in ein PDF Dokument einfügen.
Die Grafik aus dem Fenster erzeugen sollte über
möglich sein. Das Einfügen in Word oder PDF hängt davon ab, ob Du Word Automation oder bspw. eine Komponente wie Aspose.PDF einsetzt.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Carl-Heinz,
für einen Test habe ich eine Form mit einem Button, einer TextBox und einem Image Control (letzteres "Image1") erstellt.
Mit dem folgenden Code wird der Inhalt des Formulars gerendert und dem Image Control zugewiesen.
Private Sub Button_Click(sender As Object , e As RoutedEventArgs) Dim bmp As New RenderTargetBitmap( 400, 200, 72, 72, New System.Windows.Media.PixelFormat() ) bmp.Render( Me ) Me.Image1.Source = bmp End Sub
D.h. die ersten beiden Zeilen wären das, was Du für die Erzeugung der Grafik brauchst.
Wie Du die jetzt in Word oder PDF bekommst, hängt - wie gesagt - davon ab, wie Du auf Word oder Pdf zugreifst. Da es da viele Möglichkeiten gibt, beschreib bitte zuerst, wie deine Zugriffe hier aussehen oder such dir eine Möglichkeit aus. Es gibt kostenlose (meist nicht ganz so einfach nutzbare) als auch kostenpflichtige (oft einfacher nutzbare, teils aber recht teure) Möglichkeiten.
Word Automation setzt auf jedem Ziel PC eine passende Word Installation (in der erwarteten Version) voraus. Falls das nicht gegeben ist, müsstest Du das Dokument auf anderem Weg erzeugen.
https://www.google.de/?gws_rd=ssl#q=.net+word+document
https://www.google.de/?gws_rd=ssl#q=.net+pdf+document
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan Falz Freitag, 10. Februar 2017 11:58
- Als Antwort vorgeschlagen Holger M. Rößler Freitag, 10. Februar 2017 13:54
- Als Antwort markiert Carl-Heinz Robert Dienstag, 14. Februar 2017 11:36
-
Hallo Carl-Heiz,
für Word nutze ich OpenXML. Eingearbeitet habe ich mich in ca. 1 Tag. Der Vorteil gegenüber PDF ist das Du nicht darauf achten musst wann eine Seite voll ist. Zudem kannst man sehr einfach mit einer Vorlage arbeiten und Platzhalter definieren. Ich erstelle damit gern Rechnungen. Hier auch etwas Code
WordprocessingDocument doc = WordprocessingDocument.Open(filepath, true); #region Empfänger var adresszeile1 = string.Empty; var adresszeile2 = string.Empty; var adresszeile3 = user.Table_UserData.StraßeNr; var adresszeile4 = user.Table_UserData.PLZ + " " + user.Table_UserData.Ort; var adresszeile5 = user.Table_UserData.Land; if (String.IsNullOrWhiteSpace(user.Table_UserData.Firma)) { adresszeile1 = "Frau/Herr"; adresszeile2 = user.Table_UserData.Vorname + " " + user.Table_UserData.Nachname; } else { adresszeile1 = "Firma"; adresszeile2 = user.Table_UserData.Firma; } var resEmpfänger = doc.MainDocumentPart.Document.Body.Descendants<BookmarkStart>().Where(n => n.Name == "Empfänger").FirstOrDefault(); Paragraph Empfänger = new Paragraph( new Run(new Text(adresszeile1)), new Run(new Break()), new Run(new Text(adresszeile2)), new Run(new Break()), new Run(new Text(adresszeile3)), new Run(new Break()), new Run(new Text(adresszeile4)), new Run(new Break()), new Run(new Text(adresszeile5)) ); resEmpfänger.Parent.InsertAfterSelf(Empfänger); #endregion
Gruß, Thomas
Sage nie, ich kann es nicht - sage nur, ich kann es noch nicht!