6
sto cercando di inviare una semplice stringa ("Ciao mondo") per la stampante, ma per qualche ragione, viene stampato solo il primo carattere ("H")L'invio di testo normale alla stampante predefinita
Ecco il codice
public class CardPrinter {
public static void main(String[] args) {
try {
PrintService mPrinter = null;
Boolean bFoundPrinter = false;
PrintService[] printServices = PrinterJob.lookupPrintServices();
//
// Iterates the print services and print out its name.
//
for (PrintService printService : printServices) {
String sPrinterName = printService.getName();
if (sPrinterName.equals("DTC4000 Card Printer")) {
mPrinter = printService;
bFoundPrinter = true;
}
}
// Open the image file
String testData = "Hello World !";
InputStream is = new ByteArrayInputStream(testData.getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE ;
// Find the default service
PrintService service = PrintServiceLookup.lookupDefaultPrintService();
System.out.println(service);
// Create the print job
DocPrintJob job = service.createPrintJob();
Doc doc= new SimpleDoc(is, flavor, null);
// Monitor print job events; for the implementation of PrintJobWatcher,
PrintJobWatcher pjDone = new PrintJobWatcher(job);
// Print it
job.print(doc, null);
// Wait for the print job to be done
pjDone.waitForDone();
// It is now safe to close the input stream
is.close();
} catch (PrintException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
static class PrintJobWatcher {
// true iff it is safe to close the print job's input stream
boolean done = false;
PrintJobWatcher(DocPrintJob job) {
// Add a listener to the print 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;
PrintJobWatcher.this.notify();
}
}
});
}
public synchronized void waitForDone() {
try {
while (!done) {
wait();
}
} catch (InterruptedException e) {
}
}
}
}
Qualche idea?
Puoi controllare perché la sua non è la stampa di tutto per la mia stampante? – YumYumYum
In che modo, esattamente, è possibile controllare la stampante? :-) – Shai
Posso darti teamviewer? con la webcam? perché il codice non funziona, signore. – YumYumYum