J'ai besoin d'envoyer un document pdf pour imprimer sur le côté serveur d'une application web, l'imprimante prend en charge l'impression pdf, etc., il est également connecté au serveur. Le pdf est également stocké sur le serveur.impression sur une imprimante en réseau en utilisant java
ce que je suis en train de est sur un bouton clic, imprimer le fichier pdf, j'ai actuellement le code ci-dessous:
//Server side printing
public class PrintDocument {
public void printText(String text) throws PrintException, IOException {
//Looks for all printers
//PrintService[] printServices = PrinterJob.lookupPrintServices();
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
InputStream is = new ByteArrayInputStream(text.getBytes("UTF8"));
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(new Copies(1));
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(is, flavor, null);
DocPrintJob job = service.createPrintJob();
PrintJobWatcher pjw = new PrintJobWatcher(job);
job.print(doc, pras);
pjw.waitForDone();
is.close();
}
}
class PrintJobWatcher {
boolean done = false;
PrintJobWatcher(DocPrintJob job) {
job.addPrintJobListener(new PrintJobAdapter() {
public void printJobCanceled(PrintJobEvent pje) {
allDone();
}
public void printJobCompleted(PrintJobEvent pje) {
allDone();
}
public void printJobFailed(PrintJobEvent pje) {
allDone();
}
public void printJobNoMoreEvents(PrintJobEvent pje) {
allDone();
}
void allDone() {
synchronized (PrintJobWatcher.this) {
done = true;
System.out.println("Printing has successfully completed, please collect your prints)");
PrintJobWatcher.this.notify();
}
}
});
}
public synchronized void waitForDone() {
try {
while (!done) {
wait();
}
} catch (InterruptedException e) {
}
}
}
Mais j'ai quelques questions/problèmes, comment puis-je mettre le pdf dans le flux d'entrée pour ce à imprimer, puis-je sélectionner des options telles que l'impression recto verso, et comment puis-je appeler cela de l'intérieur d'une application Web JSF
Merci
Est-ce une imprimante HP? – fvu
Oui c'est un 8600 pro plus –