2009-04-29 6 views
0

Wir haben eine Anwendung in klassischen ASP, mit dem Benutzer Dateien an Informationen "anhängen" können. Dies können PDFs, Tabellenkalkulationen, Word-Dokumente usw. sein.Wie druckt man externe Dateien (XLS, PDF, DOCX, etc) aus ASP.NET?

In der neuen ASP.NET-Version war eine angeforderte Option für ein "Print All" (ein Benutzer hat eine Situation, in der 34 Dateien angehängt sind und in der derzeitiges System muss sie einzeln öffnen und drucken).

Die Dateien werden in einem separaten Verzeichnis gespeichert - nicht in der Datenbank eingebettet. Die Datenbank enthält einfach eine ID-Nummer und die Dateierweiterung, so dass die Anwendung dann "2182.xls" öffnen und öffnen würde, wenn der Benutzer sie sehen wollte (was in diesem Fall ein Excel-Fenster öffnen würde).

Gibt es eine Möglichkeit, eine Datei an einen Drucker zu senden, wenn Sie nur den vollständig qualifizierten Dateinamen haben? (Was ich vermutlich 34 Mal im obigen Beispiel wiederholen konnte)

Vielen Dank im Voraus.

Antwort

1

Denken Sie daran, dass Ihr asp.net-Code auf dem Webserver ausgeführt wird. Es läuft nicht auf dem Client-Computer und hat keine Kenntnis darüber, welche Drucker (falls vorhanden!) Dort installiert sind. So funktioniert das Web. Von der Web-App kann nur der Druckdialog für die aktuelle Seite geöffnet werden. Alles andere, und Hacker würden unsere Webbrowser für die gleiche Art von Spam verwenden, die Sie an einem Faxgerät erhalten.

Das heißt, könnte es einige Dinge, die Sie tun können:

  • In ein ActiveX-Steuerelement, Flash-app, Silverlight-Anwendung, Firefox-Plugin oder andere Plugin-Code um die Funktion zu unterstützen.
  • Rendern Sie alle Anhänge auf dem Server in ein HTML-Dokument mit entsprechenden Stilen und Javascript, damit es korrekt gedruckt wird und den Benutzer beim Laden auffordert.
  • Wenn dies für eine lokale Intranet-Site (im Gegensatz zum öffentlichen Internet), wo Sie spezielle Kenntnisse darüber haben, welche Drucker für den aktuellen Benutzer verfügbar sind, können Sie alle Drucker auf Ihrem Server einrichten und es an den richtigen Speicherort drucken im Auftrag des Benutzers.
+0

Während die Website SOMEWHAT public ist, würde nur lokalen "Intranet" -Benutzern die Möglichkeit zum automatisierten Drucken gewährt werden. Ich beginne zu denken, dass eine "begleitende Desktop-Anwendung" der richtige Weg sein könnte. Auf diese Weise kann ich lokale Instanzen von Word/Excel/Adobe öffnen und für jede Datei das Äquivalent eines ".Print" machen. – David

Verwandte Themen