Dans notre application Android, nous pouvons imprimer des images avec succès sur une imprimante P4T. Nous utilisons la commande pcx cpcl pour imprimer une image en ligne avec un autre texte de reçu. Juste avant d'imprimer le reçu, nous téléchargeons l'image dans la mémoire de l'imprimante à l'aide du zebra sdk. Nous avons zèbre d'abord convertir notre bitmap en ZebraImage et ensuite le télécharger. Sur le P4T, il en résulte un fichier .PCX que nous référençons ensuite dans notre label cpcl. Exemple:Zebra Android Impression avec des images v2.8.2148 imprimer en tant que chaîne au lieu de pixels
config imprimante:
E:signature.pcx
dans l'application Android:
static private void sendImagesToPrinter(DevicePrinter devicePrinter, List<String> imagesToSend, String rootPath) throws IOException, ConnectionException, ZebraPrinterLanguageUnknownException, ZebraIllegalArgumentException {
for(String image:imagesToSend) {
//[0] -> image path, <[1]> -> image scale factor
String[] imageParams = image.split("\\|");
double scaleFactor = imageParams.length > 1 ? parseImageScale(imageParams[1]) : 1.0d;
File file = new File(StringUtils.pathCombine(rootPath,imageParams[0]));
if(!file.exists())
throw new FileNotFoundException("Image file not found " + file.getName());
ZebraImageI zebraImage = ZebraImageFactory.getImage(BitmapFactory.decodeFile(file.getAbsolutePath()));
devicePrinter.storeImage("E:" + file.getName(), zebraImage, (int)(zebraImage.getWidth() * scaleFactor), (int)(zebraImage.getHeight() * scaleFactor));
}
}
public void storeImage(String printerFullPath, ZebraImageI zebraImage, int width, int height) throws ConnectionException, ZebraPrinterLanguageUnknownException, IOException, ZebraIllegalArgumentException {
Connection connection = null;
try {
connection = ConnectionBuilder.build(connectionString);
connection.open();
ZebraPrinter printer = ZebraPrinterFactory.getInstance(connection);
printer.storeImage(printerFullPath, zebraImage, width, height);
}
finally {
if(connection != null)
connection.close();
}
}
Le fichier format CPCL:
PCX 10 280 !<signature.pcx
Nous fixons un paramètre de mise à l'échelle pour gérer le imprimante- taille de l'image stockée. Cela imprime l'image bien sur l'imprimante P4T, mais nous avons un QLn420 qui imprime une longue représentation de la chaîne de caractères de l'image.
Les autres parties de texte du reçu s'impriment normalement sur ces périphériques.
Quelqu'un at-il rencontré ce problème et sait comment y remédier?
* Édition J'ai également essayé d'imprimer directement une image zébrée sur l'imprimante en utilisant le code suivant. Peu importe qui, je reçois toujours la chaîne (représentation base64 de l'image.)
public void printImage(ZebraImageI zebraImage, int width, int height) throws ConnectionException, ZebraPrinterLanguageUnknownException, ZebraIllegalArgumentException {
Connection connection = null;
try {
connection = ConnectionBuilder.build(connectionString);
connection.open();
ZebraPrinter printer = ZebraPrinterFactory.getInstance(connection);
printer.printImage(zebraImage, 0, 0, width, height, false);
}
finally {
if(connection != null)
connection.close();
}
}
** Modifier Sur la Qln420 l'image ne sont jamais stockées. Je m'attends à ce qu'il apparaisse à "E: sigfile.pcx" après avoir appelé storeImage() mais il ne sauve jamais. Je ne sais pas pourquoi.
Quelle est la langue de? Utilisez la commande suivante avec l'imprimante:! U1 getvar "device.languages" – banno
Où avez-vous obtenu le QLn520 qui est un nouveau modèle pour moi ... – banno
Mistype sur la partie de quelqu'un. Je ne sais pas ce que l'autre modèle est en ce moment. Il y a QL420 et peut-être un 320. – jchristof