2009-04-14 4 views
3

Ich entwickle eine Asp.Net 3.5-Anwendung, und ich muss einige anwendungsgenerierte Berichte drucken.Drucken von CrystalReport-Berichten in einer Asp.Net-Anwendung ohne Verwendung von PDF

Ich war früher mit SSRS, aber ich hatte viele Probleme mit ihm Design-Funktionen. Aus diesem Grund suchen wir jetzt nach Crystal Reports als Alternative.

Als wir anfingen Crystal zu verwenden, sahen wir uns einem neuen Problem gegenüber. Wenn Sie auf die Schaltfläche Drucken in der oberen Leiste Crystal Reports klicken, wird im Bericht auf der Webseite anstelle des Standard-SO-Druckdialogs eine benutzerdefinierte Druckseite angezeigt, die den Bericht in eine PDF-Datei druckt.

Ich weiß, dass diese Lösung wahrscheinlich die meisten Szenarien für das Drucken von Berichten im Web genügt. Aber in meinem speziellen Fall kann ich nicht garantieren, dass auf den Computern des Kunden, die auf meine Web-App zugreifen, ein PDF-Reader installiert ist, wie zum Beispiel Acrobat Reader. Und ich kann nicht verlangen, dass sie es installieren, um meine Anwendung zu verwenden.

Ich bin also auf der Suche nach einer Lösung, um die Druckschaltfläche des generierten Berichts so anzuzeigen, dass der Standard-SO-Druckdialog angezeigt wird, anstatt ihn als PDF zu drucken.

Können Sie mir einen Rat geben, um dieses Problem zu lösen?

Vielen Dank.

Antwort

6

Ok, ich gehe hier für das Nekromanten-Abzeichen, also denken Sie daran, oben zu wählen, wenn Ihnen die Antwort gefällt. Ich denke, dass diese Frage für dieses Abzeichen qualifiziert ist. :)

Hier sind ein paar Links mit ein paar Ideen:

http://aspalliance.com/509

sie sagen hier, dass Sie die serverseitige ReportDocument.PrintToPrinter verwenden können, aber sie sagen, eine Einschränkung ist, dass ein Druckername muss angegeben werden. Sie empfehlen, dass Sie eine Dropdown-Liste auf der Seite haben und System.Drawing.Printing.PrinterSettings.InstalledPrinters als die Datenquelle verwenden, damit der Benutzer den Drucker auswählen kann. Ich habe das nicht versucht, aber Option 2 scheint eher das zu sein, wonach Sie suchen.

Sie sagen auch, dass Sie das cliet-side javascript window.Print-Funktion verwenden können. Dies scheint mir ein besserer Ansatz zu sein.

http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=49048

In diesem Link sie beide PrintToPrinter empfehlen, aber ich denke immer noch, dass der Client-Seite Anruf ist das, was Sie suchen.