2012-03-30 1 views
0

Derzeit verfügen wir über XML-Dokumente, die XSLT-Stylesheets verwenden, um detaillierte Daten in einem Webbrowser-Steuerelement anzuzeigen. Wir können diese über den Druckdialog des Webbrowsers drucken, aber wir brauchen mehr Kontrolle. Die Hauptmerkmale, die wir brauchen, sind, die Seitenzahl des Dokuments vor dem Ausdruck irgendwie zu erhalten, und die zweite Hauptsache, die wir brauchen, ist die Kontrolle über die Druckoptionen, wie zum Beispiel, aus welchem ​​Fach das Papier gezogen werden soll. Ich kann beides tun, wenn ich andere Dokumente drucke, mit denen eine PrintDocument-Basis arbeiten kann.XML mit XSLT Drucken in .net

Wir können ohne den Druckeinstellungen Teil leben, aber wir brauchen wirklich eine Möglichkeit, die Anzahl der Seiten zu erhalten. Wir müssen das Webbrowser-Steuerelement nicht verwenden, wenn sich jemand anders damit auskennt. Derzeit verwenden wir nur das Webbrowser-Steuerelement, um die Dokumente anzuzeigen und zu drucken. Wir benötigen die Seitenzahl für einen Batch-Druckprozess, so dass der Benutzer die Dokumente während des Prozesses nicht anzeigen muss.

Hat jemand eine alternative Möglichkeit, XML mit XSLT-Dokumenten auszudrucken, die es uns ermöglichen würden, die Seitenzahl zu erhalten?

Danke,

Antwort

0

Leider ist jede Seitenanzahl Lösung gemacht HTML Beteiligung wird ein sehr „Hacky“ Gefühl zu ihm haben. Mit HTML gibt es keine Möglichkeit, eine genaue Anzahl von Seiten in 100% der Zeit beim Drucken zu bestimmen.

Alternativ gibt es einen XML-basierte Dokumentation Publishing-Standard als XSL bekannt: FO, die Sie in ähnlicher Weise zu dem, was Sie (anstelle von XML & XSLT zur Zeit tun verwenden könnten -> HTML, sein XML & XSLT -> XSL : FO), aber es erfordert in der Regel die Verwendung eines Renderers von Drittanbietern wie http://www.antennahouse.com/xslfo.htm

+0

Ja, ich weiß, es wird eine hacky Lösung, aber das ist in Ordnung. Wir müssen nur etwas zur Arbeit bringen. Mit der Druckdokumentklasse können Sie einen Druckauftrag senden, und es gibt ein Ereignis namens OnPrintPage, mit dem ich einen Zähler anheften und den Druckauftrag abbrechen kann, bevor ein Druck tatsächlich an den Drucker gesendet wird. So etwas wäre in Ordnung, aber leider gibt Microsoft Ihnen fast keine Kontrolle über das Drucken über einen Webbrowser. – kds6253

+0

Die Third-Party-Option ist derzeit keine Möglichkeit. Wir haben eine Menge Dinge, die sich auf die aktuelle Konfiguration verlassen – kds6253