2010-05-10 8 views
1

J'utilise TCPDF pour générer un fichier PDF à l'aide commande suivantecomment écrire code à barres au format html lors de l'utilisation tcpdf

$pdf->writeHTML($htmlcontent, true, 0, true, 0); 

TCPDF fournit également un moyen de créer code barre avec les commandes suivantes

$pdf->Cell(0, 0, 'C39+', 0, 1); 
$pdf->write1DBarcode('Code 39', 'C39+', '', '', 80, 15, 0.4, $style, 'N'); 
$pdf->Ln(); 

I vouloir être en mesure d'écrire le code à barres dans le cadre du code HTML ci-dessus. Y a-t-il un moyen facile? Je peux éventuellement appeler une image de code à barres dans le code writeHTML ci-dessus, mais je ne sais pas comment utiliser la fonction de code à barres ci-dessus (ou tout dans TCPDF) qui me permettrait de créer une image et de la générer en HTML.

Répondre

2

Vous pourriez mettre votre numéro de code-barres est une fausse balise HTML, puis analyser cette balise comme vous écrivez le code HTML comme dans cet exemple.

Ce serait dans votre code HTML:

some HTML.... <POSTNET>12345-1234</POSTNET> ....some more HTML 

C'est le code pour analyser la balise faux.

 // look to see if there is a POSTNET tag 
     if (strpos($letter_html, "<POSTNET>") !== false) { 
      $postnet_pre = explode("<POSTNET>", $letter_html); 
      $this->WriteHTML($postnet_pre[0], $this->line_height); 

      // write the barcode 
      $postnet_post = explode("</POSTNET>", $postnet_pre[1]); 
      $zip_code = $postnet_post[0]; 
      $this->write1DBarcode($zip_code, 'POSTNET', '', '', 80, 15, 0.4, $style, 'N'); 

      // write rest of the letter 
      $this->WriteHTML($postnet_post[1], $this->line_height); 

     } else { 

      // no POSTNET so just write the whole letter 
      $this->WriteHTML($letter_html, $this->line_height); 
     } 
+0

Le fichier ne commence pas par une erreur% PDF. pouvez-vous aider? – abel

10

Vous pouvez écrire TCPDF méthodes en HTML comme ci-dessous

<?php 
$params = $pdf->serializeTCPDFtagParameters(array('40144399300102444888207482244309', 'C128C', '', '', 0, 0, 0.2, array('position'=>'S', 'border'=>false, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>false, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>2), 'N'));  
$str='<table cellspacing="0" cellpadding="1" border="0">    
<tr> 
    <td align="left">barcode</td> 
</tr> 
<tr> 
    <td align="center" style="padding-left:5px;">'; 
    $str .= '<tcpdf method="write1DBarcode" params="'.$params.'" />'; 
    $str .='</td> 
</tr> 
</table>'; 

$pdf->writeHTML($str,true, false,false,false,'left'); 
$pdf->Output('example_049.pdf', 'I'); 
?> 

Pour référence en détail s'il vous plaît vérifier TCPDF example_049.php

+0

+1 celui-ci fonctionne – jned29

7

classes de codes à barres TCPDF contient déjà des méthodes pour exporter des codes à barres dans divers formats (SVG , PNG et HTML).

exemple 2D:

require_once(dirname(__FILE__).'/2dbarcodes.php'); 
$barcodeobj = new TCPDF2DBarcode('http://www.tcpdf.org', 'QRCODE,H'); 

// export as SVG image 
//$barcodeobj->getBarcodeSVG(3, 3, 'black'); 

// export as PNG image 
//$barcodeobj->getBarcodePNG(3, 3, array(0,128,0)); 

// export as HTML code 
echo $barcodeobj->getBarcodeHTML(3, 3, 'black'); 

exemple 1D:

require_once(dirname(__FILE__).'/barcodes.php'); 
$barcodeobj = new TCPDFBarcode('123456', 'C128'); 

// export as SVG image 
//$barcodeobj->getBarcodeSVG(2, 30, 'black'); 

// export as PNG image 
//$barcodeobj->getBarcodePNG(2, 30, array(0,128,0)); 

// export as HTML code 
echo $barcodeobj->getBarcodeHTML(2, 30, 'black'); 

Consultez la documentation et des exemples à http://www.tcpdf.org pour plus d'informations.

0

Lors de la génération d'un code à barres, assurez-vous d'avoir placé le point de livraison à 12 chiffres à l'intérieur du caractère «barre oblique». La plupart des polices POSTNET affichent le caractère barre oblique comme caractère "contrôle" avant/après la correction des valeurs du code à barres. Sans ces caractères de contrôle, le code à barres n'est pas techniquement valide. Le POSTNET barcode font en format TrueType peut être téléchargé.