2009-07-29 3 views
1

Unsere Anwendung ist ein Client/Server-Setup, wobei der Client eine eigenständige Java-Anwendung ist, die immer in Windows läuft und der Server in C und kann auf einem Windows- oder Unix-Computer ausgeführt werden. Darüber hinaus verwenden wir Perl für verschiedene Berichte. Im Allgemeinen arbeiten die Berichte so, dass wir entweder eine Textdatei oder eine XML-Datei auf dem Server in Perl generieren und diese dann an den Client senden. Der Client verwendet dann FOP oder ähnliches, um die XML in eine PDF zu konvertieren. Im Fall der Textdatei oder der eventuellen PDF-Datei wählt der Benutzer einen Drucker über den Java-Client aus, und die Kopie wird dann auf den ausgewählten Drucker gedruckt.Sie müssen RAW-Druckdaten entweder in ps/pdf umwandeln oder aus Java drucken

Einer unserer "Berichte" wird zum Erstellen von Barcodes verwendet. Dieser unterscheidet sich dadurch, dass Perl einige Daten aus der Datenbank holt/formatiert und dann an eine C-Anwendung sendet, die einige Raw-Druckdaten erstellt. Diese Daten werden dann direkt an den Drucker gesendet (über eine einfache Leitung in Unix oder eine benutzerdefinierte Anwendung in Windows.

Das Problem ist, dass dies in keiner Weise respektiert den vom Benutzer im Java-Client ausgewählten Drucker Englisch: www.mplayerhq.hu/DOCS/HTML/en/menc-...d-mpeg4.html Im Idealfall möchte ich in der Lage sein, die rohen Druckdaten auf dem Server (oder sogar auf dem Client) in ein ps/pdf oder ähnliches umzuwandeln und dann THAT vom Drucker an den Drucker zu senden Damit kann ich sowohl eine Vorschau anzeigen als auch tatsächlich auf den ausgewählten Drucker drucken

Wenn ich keine Vorschau erzeugen kann, auch nur die Rohdaten in einer Datei auf den Java-Client kopieren und dann senden das für den Drucker würde wahrscheinlich "gut genug" sein. Ich konnte nichts finden, was ich wirklich versuchen wollte so würde jede Hilfe natürlich geschätzt werden.

Bearbeiten: Die RAW-Daten sind im PCL-Format. Ich habe es geschafft, die Quelle mit einem PCL-Referenzhandbuch zu synchronisieren.

+0

Welches Format haben die RAW-Druckdaten? –

+0

Das ist eine gute Frage und auch eine, auf die ich die Antwort nicht weiß. Ich habe die Quelldatei, die die Daten generiert, aber ich weiß nicht genug darüber, um zu wissen, wonach ich suchen muss oder wie ich die Frage beantworten soll. – Morinar

+0

Ich öffnete die Daten im OpenPCL-Viewer ... es sah nicht ganz richtig aus, aber es war meistens da. Scheint so, als könnte ich annehmen, dass es PCL oder ähnliches ist ... – Morinar

Antwort

0

Ich habe einen Weg gefunden, die Barcodes mit XSL-FO direkt zu generieren. Dies ist die "richtige" Antwort basierend auf unserer Architektur und der Versuch, irgendetwas anderes zu tun, wäre nur ein schmutziger Hack gewesen.

0

Haben Sie sich iText angesehen?

+0

Ich habe nicht, obwohl es für mich nicht wirklich machbar ist, irgendwelche neuen Third Party Libraries hier wegen des Umfangs der aktuellen Installationsbasis einzubringen. – Morinar

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. – Jon

+0

@Jon: Scheint legitim, da es ein Zeiger auf ein Werkzeug ist, das geholfen hätte, die OP-Frage zu lösen, selbst wenn es keine tatsächliche vollständige Antwort ist. – Seki

0

Sie müssen eine Möglichkeit finden, das RAW-Format zu interpretieren. Dies ist wahrscheinlich eine Druckersprache wie PCL oder HPGL, die Sie in einem Format verwenden können. Dies wird wahrscheinlich am besten am Server gemacht.

Ein Java-basierter PCL-Interpreter kann unter http://openpcl.sourceforge.net/ gefunden werden - ich habe keine Erfahrung damit.

Verwandte Themen