2010-09-02 4 views

Répondre

-3

Qu'en est-il en utilisant dompdf:

Essayez ceci pour en-tête et pied de page:

Vous pouvez ajouter des images et des formes (ligne, rectangles, etc.) à chaque page en utilisant des 'objets' PDF. Un objet PDF capture toutes les commandes de rendu comme une sorte de modèle qui peut ensuite être ajouté à plusieurs pages:

<script type="text/php"> 

if (isset($pdf)) { 

    // Open the object: all drawing commands will 
    // go to the object instead of the current page 
    $footer = $pdf->open_object(); 

    $w = $pdf->get_width(); 
    $h = $pdf->get_height(); 

    // Draw a line along the bottom 
    $y = $h - 2 * $text_height - 24; 
    $pdf->line(16, $y, $w - 16, $y, $color, 1); 

    // Add an initals box 
    $font = Font_Metrics::get_font("helvetica", "bold"); 
    $text = "Initials:"; 
    $width = Font_Metrics::get_text_width($text, $font, $size); 
    $pdf->text($w - 16 - $width - 38, $y, $text, $font, $size, $color); 
    $pdf->rectangle($w - 16 - 36, $y - 2, 36, $text_height + 4, array(0.5,0.5,0.5), 0.5); 

    // Add a logo 
    $img_w = 2 * 72; // 2 inches, in points 
    $img_h = 1 * 72; // 1 inch, in points -- change these as required 
    $pdf->image("print_logo.png", "png", ($w - $img_w)/2.0, $y - $img_h, $img_w, $img_h); 

    // Close the object (stop capture) 
    $pdf->close_object(); 

    // Add the object to every page. You can 
    // also specify "odd" or "even" 
    $pdf->add_object($footer, "all"); 
} 

</script> 
+0

Je suis en fait en train d'utiliser la bibliothèque de création gratuite de PDF PHP de R & OS Ltd (http://php.find-info.ru/php/014/webdbapps2-CHP-13-SECT-2.html) donc je me demande si Je peux créer l'en-tête et le pied de page tout en l'utilisant. – anonymous123

+0

Ecrivez une réponse à propos de la classe R & OS PDF. La question est à ce sujet –

+0

RIP exemples lien. –

4

Vous devriez être en mesure de le faire en ouvrant un objet, la création de votre contenu, fermer l'objet , puis en ajoutant l'objet à votre PDF. Voir pages 22-23 (PDF pages 25-26) de la référence que vous avez citée pour la documentation pertinente.

Un bref exemple:

<?php 
include ('class.ezpdf.php'); 
$pdf =& new Cezpdf(); 
$pdf->selectFont('fonts/Helvetica.afm'); 

$footer = $pdf->openObject(); 
$pdf->addText(50, 50, 8, "some footer text"); 
$pdf->line(50,60,562,60); 
$pdf->closeObject(); 
$pdf->addObject($footer, "all"); 

$pdf->ezText('Hello World!',50); 
$pdf->ezStream(); 
?> 
1

90% du temps d'utiliser BrianS solution de.

Les pieds de page peuvent être bien plus compliqués si vous ne connaissez pas toujours la hauteur du contenu.

Pour un reçu avec une étiquette de remise déchirage, par exemple, quelque chose comme cela fonctionne pour moi:

$ok = 0; 
$offset = (0 - $pdf->y); 
while (!$ok) { 
    $thisPageNum = $pdf->ezPageCount; 
    $pdf->transaction('start'); 

    $offset = $offset + 1; 
    $this->ezSetDy($offset); 

    // Add your content here 

    if ($this->ezPageCount==$thisPageNum) { 
     $this->transaction('commit'); 
     $ok=1; 
    } else { 
     $this->transaction('rewind'); 
    } 
} 

Cela fera que votre contenu apparaît au bas de la dernière page.

Pour l'insertion de contenu, vous pouvez utiliser openObject et closeObject pour que seule l'insertion soit refaite pendant la boucle while.

Questions connexes