2016-05-15 16 views
0

Ich möchte Image in Header mit TCPDF hinzufügen. Ich verwende TCPDF in meinem Magento-Shop.Wie Bild in TCPDF hinzufügen

Derzeit ich wie unten tue:

$tcpdf = new TCPDF_TCPDF(); 
$img = file_get_contents(Mage::getBaseDir('media') . '/dhl/logo.jpg'); 

$PDF_HEADER_LOGO = $tcpdf->Image('@' . $img);//any image file. check correct path. 
$PDF_HEADER_LOGO_WIDTH = "20"; 
$PDF_HEADER_TITLE = "This is my Title"; 
$PDF_HEADER_STRING = "This is Header Part"; 

$tcpdf->SetHeaderData($PDF_HEADER_LOGO, $PDF_HEADER_LOGO_WIDTH, $PDF_HEADER_TITLE, $PDF_HEADER_STRING); 

$tcpdf->Output('report_per_route_'.time().'.pdf', 'I'); 

Bitte leite mich auch, wenn ich meinen Shopnamen hinzufügen möchten (links) und das Logo (rechts) in der Fußzeile dann, welche Schritte ich muss folgen .

Bitte helfen Sie mir.

Antwort

0

Ok. Zunächst einmal soll $PDF_HEADER_LOGO ein Bilddateiname sein, keine Bilddaten - wie bei der Standardimplementierung der Header() -Funktion. Es gibt jedoch eine wichtige Sache zu erinnern, genaue Position hängt von K_PATH_IMAGES Konstante ab, die Pfad zum Bilderordner enthalten sollte. Wenn die zuvor definierte TCPDF-Bibliothek in Ordnung ist, prüft TCPDF einige Standardpfade und wird zuerst als Bilderverzeichnis verwendet. Diese Verzeichnisse sind:

  • ./examples/images/
  • ./images/
  • /usr/share/doc/php-tcpdf/examples/images/
  • /usr/share/doc/tcpdf/examples/images/
  • /usr/share/doc/php/tcpdf/examples/images/
  • /var/www/tcpdf/images/
  • /var/www/html/tcpdf/images/
  • /Usr/local/apache2/htdocs/tcpdf/images/
  • K_PATH_MAIN (die Wurzel tcpdf Ordner)

Also entweder definieren konstant vor, oder einem der oben genannten Verzeichnisse setzen Sie Ihre Datei, und dann nur passieren Dateiname als erstes Argument zu SetHeaderData und es sollte funktionieren.

Um etwas ähnliches für Footer zu haben, müssen Sie die Basis-Klasse TCPDF_TCPDF erweitern und die Footer-Methode überschreiben.

Beispiel:

class MYPDF extends TCPDF_TCPDF { 

    // Page footer 
    public function Footer() { 
     // Position at 15 mm from bottom 
     $this->SetY(-15); 
     // Set font 
     $this->SetFont('helvetica', 'I', 8); 
     // Page number 
     $this->Cell(0, 10, 'COMPANY NAME', 0, false, 'C', 0, '', 0, false, 'T', 'M'); 
     $this->Image('/path/to/image.jpg', 500) 
    } 
} 

Sie wahrscheinlich genauen Koordinaten erarbeiten müssen. Vor allem in Image hängt es von Ihren Dimensionen ab, Sie können einen weiteren Parameter zur Image-Funktion hinzufügen, die y-Koordinate ist, und zwei andere - Breite und Höhe des Bildes.

Und vor allem empfehle ich Überprüfung großartige Beispiele Abschnitt TCPDF Seite:

http://www.tcpdf.org/examples.php

+0

Haben Sie eine Idee, wo diese Klasse in magento zu verlängern? – Aliana

+0

Ich empfehle die Verwendung von lib, wahrscheinlich verwenden Sie es sowieso für TCPDF. Erstellen Sie dort einen Ordner und fügen Sie Ihre erweiterte Klasse in eine Datei ein. Darin enthalten auch TCPDF, so dass eine Bibliothek die andere enthält. Dann in der createPdf (oder irgendeiner) -Methode, in welchem ​​Controller/Beobachter/Modell Sie auch verwenden, schließen Sie es einfach ein: 'require (Mage :: getBaseDir ('lib'). '/mypdf/mypdf.php'); ' – Deus777