0
使用PHP(Zend Framework)。但问题是我有这个,它只有基于Javascript的锻炼,还没有找到任何PHP。所以我正在做这样的事情。PHP - 从PHP如何触发JavaScript将标签打印到打印机?
步骤1:
A)PHP控制器
class TestController extends Zend_Controller_Action {
public function fastAction() {
$this->_helper->layout()->disableLayout();
//$this->_helper->viewRenderer->setNoRender();
}
}
B)试验/ fast.phtml:为HTML和JavaScript视图触发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>OnLoad Trigger PRint</title>
<script src = "http://labelwriter.com/software/dls/sdk/js/DYMO.Label.Framework.latest.js" type="text/javascript" charset="UTF-8"> </script>
<script type="text/javascript" charset="UTF-8">
(function() {
function onload() {
/*
"Nmbr.: {$data->badgeid}"
$data->name
$data->firstname
$data->company
$data->person
$data->number
*/
//var textTextArea = 'BadgeID\nName\nFirstname\nCmpany\nPerson\nNumber';
function printnow(textTextArea) {
try {
var labelXml = '<DieCutLabel Version="8.0" Units="twips"><PaperOrientation>Landscape</PaperOrientation><Id>Address</Id><PaperName>30252 Address</PaperName><DrawCommands/><ObjectInfo><TextObject><Name>Text</Name><ForeColor Alpha="255" Red="0" Green="0" Blue="0" /><BackColor Alpha="0" Red="255" Green="255" Blue="255" /><LinkedObjectName></LinkedObjectName><Rotation>Rotation0</Rotation><IsMirrored>False</IsMirrored><IsVariable>True</IsVariable><HorizontalAlignment>Left</HorizontalAlignment><VerticalAlignment>Middle</VerticalAlignment><TextFitMode>ShrinkToFit</TextFitMode><UseFullFontHeight>True</UseFullFontHeight><Verticalized>False</Verticalized><StyledText/></TextObject><Bounds X="332" Y="150" Width="4455" Height="1260" /></ObjectInfo></DieCutLabel>';
var label = dymo.label.framework.openLabelXml(labelXml);
label.setObjectText("Text", textTextArea);
var printers = dymo.label.framework.getPrinters();
if (printers.length == 0)
throw "No DYMO printers are installed. Install DYMO printers.";
var printerName = "";
for (var i = 0; i < printers.length; ++i) {
var printer = printers[i];
if (printer.printerType == "LabelWriterPrinter") {
printerName = printer.name;
break;
}
}
if (printerName == "")
throw "No LabelWriter printers found. Install LabelWriter printer";
label.print(printerName);
} catch(e) {
alert(e.message || e);
}
}
printnow('1234\nName\nFirstname\nCmpany\nPerson\nNumber');
};
// register onload event
if (window.addEventListener)
window.addEventListener("load", onload, false);
else if (window.attachEvent)
window.attachEvent("onload", onload);
else
window.onload = onload;
}());
</script>
</head>
<body>
</body>
</html>
第2步:
google-chrome "http://unittest:80/test/fast"
第3步: OK - 结果,打印超出
但问题是,我该怎么办这件事(直)从PHP?
(默默导致其触摸屏和打印,我不能弹出了这个步骤1,2,3到最终用户体验)
任何想法吗?