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. 

.NET FastReport Interactivity Report Printing .NET FastReport Interactivity Report Printing
22. April 2025

Umgang mit XML- und JSON-Formaten in FastScript

In diesem Artikel werden wir genauer untersuchen, wie man mit JSON und XML in FastReport arbeitet, welche Eigenschaften und Methoden darin enthalten sind, und Berichte aus dem Code mit Skripten erstellen.
22. April 2025

Umgang mit der TfrShellTreeView-Komponente in FastReport VCL

In diesem Artikel werden wir uns die TfrShellTreeView-Komponente ansehen. Es dient zur Anzeige von Dateisystemelementen und ist teilweise analog zu den Komponenten TDirectoryListBox, TDirectoryOutline und TShellTreeView.
8. April 2025

Einrichten der Verbindung mit Apache Ignite in FastReport .NET

In diesem Artikel werden wir untersuchen, wie Sie eine Verbindung zu Apache Ignite in FastReport .NET konfigurieren. Sie lernen die notwendigen Schritte, um das Plugin über Code und den Berichtsdesigner zu verbinden.
Fast Reports
  • 800-985-8986 (Englisch, USA)
  • +31 97 01025-8466 (Englisch, EU)
  • +49 30 56837-3928 (Deutsch, DE)
  • +55 19 98147-8148 (Portugiesisch, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.