Actualmente estoy tratando de imprimir dos copias del mismo recibo sin usar el diálogo de impresión del navegador. Ahora, desafortunadamente, no hay forma de pasar el número de copias al cuadro de diálogo de impresión, por lo que la única solución que se me ocurrió es hacerlo en un BUCLE, ¡pero cuando se repite el comando de impresión, no funciona! mientras recorre todo el método POST funciona bien.
Aquí está el código antes de entrar en el ciclo
función de impresión
function p_print(receipt) { $('#receipt_section').html(receipt.html_content); __currency_convert_recursively($('#receipt_section')); __print_receipt('receipt_section'); }Código sin bucle
$.ajax({ method: 'POST', url: url, data: data, dataType: 'json', success: function(result) { if (result.success == 1) { if (result.mail_enabled) { window.open(result.mail_enabled); } $('#modal_payment').modal('hide'); toastr.success(result.msg); //Check if enabled or not if (result.receipt.is_enabled) { p_print(result.receipt); } } else { toastr.error(result.msg); } }, });Bucle de funcionamiento que imprime dos veces pero también PUBLICA los datos dos veces
var Count = 0; var Copies = 2; while ( Count < Copies ) { $.ajax({ method: 'POST', url: url, data: data, dataType: 'json', success: function(result) { if (result.success == 1) { if (result.mail_enabled) { window.open(result.mail_enabled); } $('#modal_pay').modal('hide'); toastr.success(result.msg); if (result.receipt.is_enabled) { p_print(result.receipt); } } else { toastr.error(result.msg); } }, }); Count ++; }; Ahora, si aplico el bucle solo en p_print(result.receipt) , no se imprimirá dos veces, solo al aplicarlo a toda la solicitud POST, se imprimirá dos veces pero también se almacenarán los datos dos veces, lo que no es una solución adecuada en absoluto.
Cualquier ayuda será muy apreciada.