Я разрабатываю настольное приложение с использованием php
и javascript
. Мне нужно распечатать изображение и данные человека, который входит в помещение с помощью принтера Zebra GC420t printer.
Проблема, с которой я столкнулся, - например, допустим, что А входит в помещение, я беру у него детали и распечатываю данные и его изображение. Когда B входит в помещение, когда я пытаюсь распечатать данные B, распечатываются правильно, но напечатанное изображение является изображением A, и снова мне нужно дать печать, чтобы распечатать изображение B.
Вот что происходит с моим приложением. Есть ли какое-то решение для преодоления этой проблемы
Я сослался на этот PHP код, который преобразовывает изображение RGB в изображение grf, и приведенный ниже код javascript
для отправки данных на принтер.
function sendData(photoURL)
{
var test;
$.ajax({
url: 'db/zpl.php?photo='+photoURL,
cache: false,
contentType: false,
processData: false,
type: 'GET',
success: function(data) {
test=data;
console.info("From ZPL:"+data);
}
});
var mob = "",lap = "",other = "";
if ($("#emobile").val()== = "on"){
mob = "Mobile";
}
if ($("#elaptop").val()== = "on"){
lap = "Laptop";
}
if ($("#eother").val()== = "on"){
other = "Other";
}
showLoading("Printing...");
checkPrinterStatus( function (text){
if (text == "Ready to Print")
{
selected_printer.send("^XA N ^XZ");
selected_printer.send("~DYE:SAMPLE.GRF,A,GRF,5000,030"+test+",A");
selected_printer.send("^XA^FX ^CFA,30 ^FO100,50^FDVisitor Name:"+$("#user").val()+"^FS ^FO50,80^FDCompany:"+$("#compName").val()+"^FS ^FO50,110^FDTo Meet:"+$("#toMeet").val()+"^FS ^FO50,150^FDPurpose:"+$("#reason").val()+"^FS ^FO50,190^FDAuthorise^FS ^FO50,220^FDto Carry:"+mob+" "+lap+"^FS ^FO500,70^XG R:SAMPLE.GRF,1,1^FS^XZ");
}
else
{
printerError(text);
}
});
};
Выше приведена функция javascript
, которая берет изображение из кода php
и отправляет ему функцию, а selected_printer.send()
отвечает за отправку данных на принтер.
function registration(){
var data = new FormData(document.getElementById("registration"));
$.ajax({
url: 'db/registration.php',
data: data,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function(data) {
console.info("registration URL: "+data);
sendData(data);
}
});
sendData()
вызывается в вышеуказанной функции
Ага. Он берет URL-адрес изображения и отправляет его в код php
для преобразования. У меня есть отдельная ссылка на javascript
для sendData
Я думаю, вы неправильно поняли, я спрашивал о том, что вызывает функцию, которую вы разместили выше, и какие значения ей передаются. Т.е. что-то делает sendData(photoURLdata);
. Каковы значения photoURLdata
, когда это происходит? Легкий способ увидеть - добавить console.info(photoURL);
в качестве первой строки sendData
. Похоже, либо то же самое последнее значение для photoURL
снова отправляется на sendData
, либо ваш вызов ajax возвращает тот же data
для другого URL-адреса. Ты понимаешь?
Я отредактировал вопрос. Можешь проверить вопрос @DrewReese
Строка для отправки изображения на принтер выглядит неправильно. "~ DYE: SAMPLE.GRF, A, GRF, 5000 030" + test + ", A" Я думаю, что "GRF" должно быть просто "G", и похоже, вы добавляете строку данных в "байтов в строке "параметр. Думаю, их следует разделять запятой. И избавьтесь от последней части ",". Прочтите руководство по командам zebra ZPL для команды «~ DY». Вы также можете попробовать стереть файл изображения, когда закончите с ним. Не уверен, как работает перезапись.
Что изначально называется
sendData
и с каким значением? Он отправляет старый URL-адрес фото?