2 Stimmen

Drucken von Text aus einer Silverlight-Anwendung

Ich versuche, einen Bericht (nur Text in Spalten) aus meiner Silverlight 4-Anwendung zu drucken. Die einzige Möglichkeit, die ich kenne, ist die Verwendung von PrintDocument und das Setzen von PageVisual auf ein Framework-Element, das den Bericht anzeigt. Dies führt jedoch zu einem wahnsinnig großen Druckauftrag (etwa 120 MB). Das ist nicht das, was mein Kunde will. Gibt es eine andere Lösung?

2voto

Keith Adler Punkte 20478

Das Problem mit Silverlight 4 ist, dass alles, was Sie drucken, als gerastertes Bild mit 600 DPI erzeugt wird. Dies erklärt die große Auftragsgröße, die Sie sehen. Dies ist auch der Grund, warum Text aus Silverlight sehr unscharf aussehen kann, verglichen mit dem, was Sie von Ihrer Ausgabe erwarten würden. Silverlight 5 wird dieses Problem mit Postscript-Vektor-basierter Druck Aber im Moment müssen Sie sich damit abfinden, dass Sie ohne Lösungen von Drittanbietern entweder mit den Beschränkungen der Standardlösung oder mit HTML zurechtkommen müssen.

Wenn Sie bereit sind, den Bericht aus HTML zu generieren, das serverseitig bereitgestellt wird, haben Sie vielleicht die beste Lösung, wenn man bedenkt, was Sie vorhaben. In diesem Fall müssten Sie sich zumindest nicht um Komplexitäten wie Paginierung als Teil des Drucks aus Silverlight kümmern.

Eine gute Lösung eines Drittanbieters für die Berichterstellung, die aber vielleicht mehr ist als das, was Sie brauchen, ist die Verwendung von Reporting Services in Verbindung mit diesem Produkt: http://www.perpetuumsoft.com/Silverlight-Viewer-for-Reporting-Services.aspx?lang=en

1voto

jumbo Punkte 4510

Eine einfache Lösung besteht darin, eine Webseite direkt vom Browser aus zu drucken (ich nehme an, dass Sie das nicht wollen).

Ich denke, dass PrintDocument und PageVisual die einzigen Möglichkeiten sind, um aus SL heraus zu drucken.

Ich habe auch mit großen visuellen Strukturen gedruckt, aber ich habe nicht überprüft, wie groß mein Druckauftrag ist, daher kann ich Ihnen nicht sagen, ob das normal ist oder nicht.

Sie können jedoch versuchen, das zu druckende Element nicht direkt zu drucken, sondern ein anderes, leichtgewichtiges Element zu erstellen, das nur zu Druckzwecken dient, es mit denselben Daten zu füllen und dieses leichtgewichtige Element zu drucken.

-1voto

obenjiro Punkte 3545

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X