Forse potrà aiutarti. L'idea è di fare una pagina ogni 16 etichette. Quando faccio l'anteprima della stampa ho 1 pagina vuota in più rispetto al dovuto. E' il pagebreak dopo <table> che bisogna inibire. Mi spiace ma non ho il tempo di analizzare di più che mi devo alzare presto domattina.

Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<style id="myStyle" type="text/css">
 @page {size: 210mm 297mm; margin: 30mm;}
 table {background: none #FFF;color: #000}
 @media print {
    table {page-break-after: always;}
 }
</style>
</head>
<body>
<div class="page"> 
<div>
<?php 

function etichette($n_etichette) {
 echo
"<table {page-break-inside: avoid;} width=\"793.7007874016\" height=\"1122.519685039\" class=\"testo\" border=\"1\" cellpadding=\"1\" cellspacing=\"0\">";
 for(
$x=0$x<$n_etichette$x++){
 
//calcolo della cella pari o dispari
 
if ($x == 0$cellaPari true;
  else 
$cellaPari false;
 
//apri riga tabella
 
if ($cellaPari) echo "<tr>";
  echo 
"<td>";
   echo
"scrivo nella tabella";
    echo 
"</td>"
 
//fine contenuto cella
 
if (!$cellaPari) echo "</tr>";}
 
//controllo dopo il ciclo se c'e ancora aperta una cella
 
if ($cellaPari ) echo "</tr>";
 echo
"</table>";//chiudo la tabella  
// function etichette($n_etichette)
$n_etichette 37;
$nbpagine    = (int) ($n_etichette 16);
$resto       $n_etichette 16 $nbpagine;
if (
$resto != 0) {
 
$nbpagine++;
// if ($resto != 0)
for ($j=1;$j<=$nbpagine;$j++) {
 
etichette(16);
// for ($j=1;$j<=$nbpagine;$j++)
?>
</div>    
</div>
</body>
</html>