L'envoi de données à une imprimante en Java
Le code ci-dessous envoie des données à une imprimante cependant, tandis qu'il atteint la file d'attente d'impression, il revient avec un Unable to convert PostScript file.
j'ai pensé que cela pourrait être surmonté par la spécification de la saveur, mais ce n'est pas le cas
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.PrintServiceAttribute;
import javax.print.attribute.standard.PrinterName;
public class New1 {
public static void main(String[] args) {
try {
String s = "Hello";
//byte[] by = s.getBytes();
DocFlavor flavor = DocFlavor.STRING.TEXT_PLAIN;
PrintService pservice = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = pservice.createPrintJob();
Doc doc = new SimpleDoc(s, flavor, null);
job.print(doc, null);
} catch (PrintException e) {
e.printStackTrace();
}
}
}
- Avez-vous essayé d'utiliser un
DocFlavor.INPUT_STREAM.AUTOSENSE
et unStringInputStream
à la place? - Je vais avoir le même problème et DocFlavor.INPUT_STREAM.AUTOSENSE n'aide pas.
Vous devez vous connecter pour publier un commentaire.
En utilisant uniquement des JPS vous avez des problèmes avec Mac.
Ma suggestion est d'utiliser Java 2 Imprimer + API Java de Services d'Impression.
Java 2 Imprimer API est quelque chose comme 1990 style. Pour éviter de créer votre code à l'aide de Java 2 Imprimer API vous pouvez utiliser PDFBox http://pdfbox.apache.org comme un cadre.
Avec PDFBox vous pouvez créer un document PDF (http://pdfbox.apache.org/1.8/cookbook/documentcreation.html) mais au lieu de l'enregistrer, l'imprimer à l'aide de ce code:
Il fonctionne très bien dans mon Mac.