2 votes

Comment écrire des codes-barres dans des cellules avec TCPDF

Je vais devoir imprimer des codes-barres et des noms sur des étiquettes (image ci-dessous). Le point est que le code-barres ne rentre jamais dans la cellule. Il est toujours à l'extérieur.

Les étiquettes adhésives. Je dois imprimer un code-barres dans chaque carré (10 par page).

Le code que j'utilise est ici.

Voici le résultat : entrer la description de l'image ici

3voto

EPB Points 1476

Comme vous voulez que le code-barres soit visuellement à l'intérieur de la cellule contenant le nom, vous devrez effectuer un petit positionnement. Les méthodes cellule et code-barres mettent à jour la position actuelle. Si vous écrivez le code-barres, puis réinitialisez la position à ce qu'elle était avant l'appel au code-barres, puis écrivez la cellule du nom, cela devrait aller quelque part à l'intérieur de la cellule du nom.

//Je fournirai la largeur de la cellule dans write1DBarcode pour centrer le code-barres.
$style['cellfitalign'] = 'C';
foreach ($pages as $pk => $p) {
    // ajouter une page
    $pdf->AddPage();
    foreach ($p as $lk => $l) {
        foreach ($l as $ck => $c) {
            //Obtenir la position d'écriture actuelle.
            $x = $pdf->GetX();
            $y = $pdf->GetY();
            // La largeur est définie comme étant la même que celle de la cellule contenant le nom.  
            // La position Y est également ajustée légèrement.
            $pdf->write1DBarcode($c->id, 'C128B', '', $y-8.5, 105, 18, 0.4, $style, 'M');
            //Réinitialiser X,Y pour que la cellule d'enroulement englobe la cellule du code-barres.
            $pdf->SetXY($x,$y);
            $pdf->Cell(105, 51, $c->nome, 1, 0, 'C', FALSE, '', 0, FALSE, 'C', 'B');
        }
        $pdf->Ln();
    }
}

Voici le résultat que j'obtiens actuellement :

C'est le résultat que j'obtiens maintenant

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X