我们有一个用于计费的网络应用程序,它从浏览器提供打印。 如果我们从浏览器向dotmatrix打印机提供打印,则会出现速度问题(它非常慢)。 因此,我们计划将原始文本发送到打印机,而无需介入浏览器打印视图。
为此,我开始了解jZebra插件。它使用javascript通过java调用print。 通过jzebra教程,我可以附加一些HTML,我不能打印一些文本,工作正常。如下所示
<script>
function print() {
qz.appendHTML('<html><table style="font-size:10pt; font-face:\'Courier New\';"><tr>' +
'<td colspan="3">Company Name</td>' +
'</tr><tr>' +
'<td>TIN: number</td>' +
'<td>ADDRESS<br/>SILK SHOWROOM A/C, PADIYUR</td>' +
'<td>STD: 0000000000/td>' +
'</tr></table></html>');
// Send characters/raw commands to printer
qz.printHTML();
}
</script>
问题:
虽然在按钮点击事件中通过PHP回复某些类似HTML产品的计费购买详细信息和总金额。
如何将这些HTML附加到上述功能?
这里有一些代码示例 通过ajax调用此PHP:retail_sales_nontextile_add.php
try{
//SELECTING DATA FRO VIEW FROM VI TEMP
$stmt = $pdo->prepare("SELECT * FROM nontextile_purchase_retailsales_wholesales WHERE bill_number = '$bill_no' ORDER BY id ASC"); $stmt->execute();
$results = $stmt->fetchAll();
}
catch(Exception $e){
print_r($e->getMessage());
exit;
}
foreach($results as $result){
echo "<tr style='margin-top:-37px;' class='active'><td class='center'></td>";
echo "<td class='left'>".$result['variety']."</td>";
echo "<td class='right'>".$result['price']."</td>";
echo "<td class='center'>".$result['quantity']."</td>";
echo "<td class='right total'> ".$result['total']."</td>";
echo "<!--<td class='hidden-print center'><a id='retailsale_nontextile_edit' category ='".$result['category']."' variety='".$result['variety']."' price='".$result['price']."' commision_percent='".$result['commision_percent']."' bill_no='".$result['bill_number']."'>Edit</a></td>-->";
echo "<td class='hidden-print center'><a id='retailsale_nontextile_delete' id_to_delete='".$result['id']."' bill_no='".$result['bill_number']."'>Delete</a></td></tr>";
}
echo "</tbody>
</table>
使用上面回显的HTML如何将其附加到javascript函数中? AJAX就在这里:
$.post(
"./php/retailsale/retail_sales_nontextile_add.php",
{ bill_no: bill_no, sale_date: sale_date, category: category, variety: variety, price: price, quantity: quantity, total: total },
function(data) {
$('#print_area').html(data);
}).done(function( data ) {
});
感谢您的帮助......
答案 0 :(得分:0)
我可以想到一些可以将数据传递给print的方法。如果这两个函数总是一起运行,那么你可以从打印内部调用帖子或直接传递数据进行打印:
function print() {
$.post(
...
}).done(function( data ) {
qz.appendHTML('...' + data + '...');
});
}
或相反的方法:
$.post(
...
}).done(function( data ) {
print(data)
});
然后使用打印功能中的数据
function print(data) {
...
}
最后,如果这两个函数是独立的,你可以在函数之外创建一个全局变量,如append。
var append;
$.post(
...
}).done(function( data ) {
append = data;
});
function print() {
... + append + ...
}