Domanda

La nostra applicazione è un'installazione client / server, in cui il client è un'applicazione Java autonoma che viene sempre eseguita in Windows e il server è scritto in C e può essere eseguito su una macchina Windows o Unix. Inoltre, utilizziamo Perl per fare vari rapporti. In generale, il modo in cui funzionano i report è che generiamo un file di testo o un file XML sul server in Perl e quindi lo inviamo al client. Il client utilizza quindi FOP o simili per convertire l'xml in un pdf. Nel caso del file di testo o dell'eventuale pdf, l'utente seleziona una stampante tramite il client Java e quindi il file copiato sul file viene stampato sulla stampante selezionata.

Uno dei nostri "rapporti" viene utilizzato per la creazione di codici a barre. Questo è diverso in quanto utilizza Perl per recuperare / formattare alcuni dati dal database e quindi li invia a un'applicazione C che crea alcuni dati di stampa grezzi. Questi dati vengono quindi inviati direttamente alla stampante (tramite una semplice pipe in Unix o un'applicazione personalizzata in Windows.

Il problema è che ciò non rispetta in alcun modo la stampante selezionata dall'utente nel client Java. Inoltre, non siamo in grado di mostrare un'anteprima in detto client. Idealmente, mi piacerebbe poter convertire i dati di stampa grezzi in ps / pdf o simili sul server (o anche sul client) e quindi inviarli alla stampante dal client. Ciò mi consentirebbe di mostrare un'anteprima e di stampare effettivamente sulla stampante selezionata.

Se non riesco a generare un'anteprima, anche solo copiare i dati non elaborati in un file sul client Java e quindi inviarli alla stampante sarebbe probabilmente "abbastanza buono". Non sono stato in grado di trovare qualcosa che sia esattamente ciò che sto cercando di realizzare, quindi qualsiasi aiuto sarebbe ovviamente apprezzato.

Modifica: i dati RAW sono in formato PCL. Sono riuscito a conciliare l'origine con una guida di riferimento al linguaggio PCL.

È stato utile?

Soluzione 3

Ho trovato un modo per generare direttamente i codici a barre usando XSL-FO. Questo è il "corretto" risposta basata sulla nostra architettura e cercare di fare qualsiasi altra cosa sarebbe stato solo un trucco sporco.

Altri suggerimenti

Hai dato un'occhiata a iText ?

Dovrai trovare un modo per interpretare il formato RAW, che molto probabilmente è un linguaggio di stampa come PCL o HPGL in un formato che puoi usare. Probabilmente è meglio farlo sul lato server.

Un interprete PCL basato su Java è disponibile all'indirizzo http://openpcl.sourceforge.net/ - Non ho esperienza con esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top