Bien al grano, estoy con un pequeño problema; a continuación doy detalle de ello:
Tengo hecho un módulo de impresiones de boletas mecanizadas, es decir preformateadas, ya esta impreso todo el diseño,la serie y las grillas, también ya esta precortado el papel, se debe generar con un patrón de 3 horizontales por 4 verticales, un total de 12 boletas por hoja en papel continuo de 210mm * 305mm, con una impresora EPSON dfx9000.
Lo que hace el módulo es generar los números consecutivos, tomar clientes al azar de una base de datos que -pertenecen a una determinada serie- y genera para todas las boletas la misma descripción y monto.
Aca el código
Formulario de toma de datos: (se toma la serie que se desea imprimir, la fecha y la cantidad de boletas.)
Código PHP:
<?php include_once 'extra/conexion.php';?>
<html>
<head>
<title>Impresiones Mecanizadas, Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="css/estilo.css" type="text/css">
<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#serie").change(function(){
$.post("cargaultimafac.php",{ id:$(this).val() },function(data){$("#fini").val(data);})
});
})
</script>
</head>
<body>
<div id="container">
<div id="header">
<span id="logo">Alfagas</span><br>
<span id="sublogo">Líderes en Calidad</span>
</div>
<form name="frmMec" action="imprimir.php" method="post">
<fieldset>
<legend>Fecha</legend>
<label for="mes">Mes: <select name="mes">
<option value="01">Enero</option>
<option value="02">Febrero</option>
<option value="03">Marzo</option>
<option value="04">Abril</option>
<option value="05">Mayo</option>
<option value="06">Junio</option>
<option value="07">Julio</option>
<option value="08">Agosto</option>
<option value="09">Setiembre</option>
<option value="10">Octubre</option>
<option value="11">Noviembre</option>
<option value="12">Diciembre</option>
</select>
</label><br/>
<label for="ano">Año: <input name="ano" size="4" maxlength="4" value="<?= date("Y")?>"></label>
</fieldset>
<fieldset>
<legend>Datos de Impresión</legend>
<label for="serie">Serie: <select name="serie" id="serie">
<option value= 0 >Seleccione</option>
<?php
$rs = mysql_query("select * from serie");
while($row = mysql_fetch_array($rs)){
?>
<option value="<?=$row['cod_serie']?>"><?=$row['cod_serie']?></option>
<?
}
?>
</select></label> <br/>
<label for="facini">Factura Inicial: <input name="fini" id="fini" ></label><br/>
<label for="cantidad">Cantidad: <input name="cantidad" id="cantidad" size="4"></label><br/>
</fieldset>
<input type="submit" name="enviar">
<input type="button" name="reiniciar" id="reiniciar" value="Reinicializar Serie">
</form>
</div>
</body>
</html>
y esta es la página que recibe los datos:
Código PHP:
<?php
include_once 'extra/conexion.php';
$mes = $_POST['mes'];
$ano = $_POST['ano'];
$fini = $_POST['fini'];
$serie = $_POST['serie'];
$cantidad = $_POST['cantidad'];
?>
<html>
<head>
<title>Imprimir boletas Mecanizadas</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="css/estilo.css" type="text/css">
<script src="js/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<div id="contenido" class="sinespacio">
<table id="master" cellpadding="0" cellspacing="0">
<tr>
<?
for($i=1;$i<$cantidad+1;$i++){
$listac = mysql_query("select * from cliente where cod_serie = $serie ");
$n = mysql_num_rows($listac);
$num = ceil((rand(0, ($n-1))));
$rs = mysql_query("select * from cliente where cod_serie = $serie limit $num ,1");
$fila = mysql_fetch_array($rs);
?>
<td>
<div id="main">
<span id="numero"><?=$fini;?></span>
<span id="nombres"><?=$fila['nombres'];?></span>
<span id="fecha"><?="25/".$mes."/".$ano?></span>
<span id="cantidadu">1</span><span id="descripcion">Cilin 10 Kgs.</span><span id="preciounitario"><?php
$costors = mysql_query("select * from serie where cod_serie=$serie");
$fcosto = mysql_fetch_array($costors);
echo $fcosto['precio'];
?></span><span id="importe"><?=$fcosto['precio']?></span>
<span id="importetotal"><?=$fcosto['precio']?></span>
</div>
</td>
<?
$fini++;
if($i%3==0 && $i != 0){
echo "</tr>";
echo "<tr>";
}
}
?>
</table>
</div>
</body>
</html>
De hecho he usado solo estilos para impresion , por eso solo puse <link.....media=print..>
Y aca el CSS:
Código CSS:
Ver original
body{padding: 0px;margin: 0px;} #container{width:300px;padding: 200px 0px 0px 500px;font-family: 'Arial Narrow', sans-serif;} #header{padding:0px 0px 30px 0px;} #header span#logo{font-size: 5em;font-family: "Trebuchet MS"; font-style: italic;color: #666666} #header span#sublogo{font-size: 0.7em;font-family: "Trebuchet MS"; text-transform: uppercase;} /*Pagina de Impresión*/ .sinespacio{top: 0;left: 0; padding: 0px;margin: 0px;} #contenido{display: block;} /* #contenido table#cabecera{vertical-align: top; width: 270px;margin-top: 10px; font-size:inherit;} #contenido table#cuerpo{vertical-align: bottom; width: 270px;margin-top: 3px; font-size:inherit;} */ #contenido table#master{padding: 0px; margin: 0px;} #contenido div#main{border: 0px solid #333333; width: 7.5cm; height: 75mm; padding: 0px; font-size:8pt ; font-family: 'Courier New',Courier,monospace} #numero{position:absolute; margin: 1.5cm 0cm 0cm 5cm;} #nombres{position:absolute; margin: 2.3cm 0cm 0cm 1.5cm; } #fecha{position:absolute; margin: 3.2cm 0cm 0cm 5.1cm; } #cantidadu{position:absolute; margin: 4.4cm 0cm 0cm 0.3cm; } #descripcion{position:absolute; margin: 4.4cm 0cm 0cm 1.7cm; } #preciounitario{position:absolute; margin: 4.4cm 0cm 0cm 4.7cm; } #importe{position:absolute; margin: 4.4cm 0cm 0cm 6.1cm; } #importetotal{position:absolute; margin: 6cm 0cm 0cm 6.1cm; }
ACÁ EL PROBLEMA:
he tenido muchos problemas con los navegadores, ya que el requerimiento era de no imprimir ni el titulo ni la fecha ni la url, es por ello que decidí usar FireFox para imprimir las boletas, pero el hecho es que FireFox solo me reconoce la primera hoja que genera el módulo, las otras miles de hojas que genera las toma como en blanco, me doy cuenta de eso por que FF tiene la opción de Vista Preliminar y por que claro ya mande a imprimir con la Impresora de Matriz y nada, POR FAVOR AGRADECERÍA ALCANCES SOBRE ESTE TEMA!!!
A continuación les dejo un link con el módulo andando.
[URL="http://www.drywallperu.com/impmec"]http://www.drywallperu.com/impmec[/URL]
Si te animas a usarlo para rastrear el problema, selecciona solo la serie 31, pues es la única que tiene clientes asignados, por motivos de prueba.
Muchas Gracias por leer mi testamento de Post.!!
y espero tener alguna solución al respecto!