Wie man ein Bild aus dem Bericht durch Anklicken drucken kann

2020-04-29

Viele Benutzer von Berichtsgeneratoren benutzen Standardfunktionalität in ihrer täglichen Arbeit. Aber manchmal müssen sie sich mit nicht-trivialen Aufgaben beschäftigen, und dann kann die Suche nach einer Lösung viel Zeit und Mühe kosten. Aber vielleicht ist die beste Lösung, die Entwickler zu fragen, um die qualifizierte Hilfe zu bekommen. Diese Situation hatte ein Anwender des Generators Telerik Reporting Reports. Das Problem war, ein Bild des Objektbildes im Bericht zu drucken:

https://www.telerik.com/forums/print-a-picture-from-a-picturebox

Der Bericht kann Bilder enthalten, die nicht nur während des Entwurfs hochgeladen wurden, sondern auch solche, die binär in der Datenbank gespeichert sind. Stellen Sie sich eine Situation vor, in der Sie nur die richtigen Bilder aus einem Bericht mit vielen Seiten an Daten drucken müssen. Auf den ersten Blick ist das ein großes Problem. Sie können den Bericht nach HTML exportieren, das gewünschte Bild in den Grafikeditor kopieren und es erst dann zum Drucken schicken. Und Sie können einen interaktiven Bericht erstellen, der es Ihnen erlaubt, Bilder durch Anklicken zu drucken. Eine solche Lösung wird von den Telerik-Spezialisten angeboten, als Antwort auf die Frage eines Benutzers.

Es ist eine großartige Lösung. Schauen wir uns an, wie man dieses Problem im FastReport.Net Bericht lösen kann. In der Tat gibt es nichts Einfacheres. Alles, was Sie tun müssen, ist einen Ereignishandler für den Klick auf das Bildobjekt zu erstellen:

 

Und fügen Sie dem Berichtsskript einige Methoden hinzu 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//picture object
 public Image img;
 //printing method
 public void Print()
 {
 System.Drawing.Printing.PrintDocument picture = new System.Drawing.Printing.PrintDocument(); 
 picture.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(picture_PrintPage); 
 DialogResult result = new PrintDialog().ShowDialog();
 if (result == System.Windows.Forms.DialogResult.OK)
 {
 picture.Print();
 }
 }
 
 private void picture_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 { 
 e.Graphics.DrawImage(img, new Point(0, 0)); //picture and posirion on one page
 }
 
 private void Picture1_Click(object sender, EventArgs e)
 {
 img = (sender as PictureObject).Image; //We get the picture from the chosen object
 Print(); //execute printing
 }

Wie Sie sehen können, müssen Sie nur ein Bild des ausgewählten Objekts erhalten und den Druck ausführen. In der Methode zum Drucken haben wir der Ereignishandler “das Dokument drucken” erstellt, der das resultierende Bild verwendet. Jetzt, wenn Sie einen Bericht im Viewer anzeigen, können Sie auf das Bild klicken und es zum Drucken senden:

 

Wenn Sie aber nicht drucken, sondern nur auf einem lokalen Laufwerk speichern wollen, so können Sie ähnlich vorgehen: 

1
2
3
4
private void Picture1_Click(object sender, EventArgs e)
 {
 (sender as PictureObject).Image.Save("C:\\Temp\\image.bmp");
 }

So ist das Drucken des Bildes per Klick aus dem FastRepor.Netreport sehr einfach durchzuführen. 

9. November 2023

Bericht in C# in FastReport Cloud erstellen

In diesem Artikel zeigen wir Ihnen anhand eines Beispiels, wie Sie mit FastReport Cloud SDK Berichte erstellen und in ein beliebiges Format exportieren können.
4. Oktober 2023

Erstellen einer Bericht aus einer ASP.NET Core Anwendung mit FastReport.Core.Skia

Wir erklären Ihnen, wie Sie mit FastReport einen Bericht unter Windows und Linux erstellen.Kern.Skia und ein privater NuGet-Server.
25. September 2023

Erstellen von Preisschildern mit Produktzusammensetzungen in FastReport VCL

Ab Version 2023.3 wurde der FastReport VCL-Berichts-Engine ein weiteres leistungsfähiges Werkzeug hinzugefügt – das Reduzieren von Text im Textobjekt.
Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2024 Fast Reports Inc.