2010-08-12 9 views
19

Ich versuche, ein Bild einzufügen, aber nicht die X- und Y-Koordinaten angeben möchten. Ist das möglich?Einfügen eines Bildes mit PHP und FPDF

$pdf->Image($image1, 5, 70, 33.78); 

Ich möchte die Größe (33,78) in der Lage sein zu spezifizieren, aber nicht das x und y, so dass es auf den Inhalt basierend bewegt.

$pdf->Write(70, $reportTitle); 
$pdf->Ln(45); 
$pdf->SetFont('Arial', '', 12); 
$pdf->Write(6, $reportSubtitle); 

/** 
    Create product 1 
**/ 
$pdf->Ln(10); 
$pdf->SetFont('Arial', '', 12); 
$pdf->Write(6, $prod1title); 
$pdf->Ln(30); 
$pdf->SetFont('Arial', '', 10); 
$pdf->Write(5, $prod1sub); 
$pdf->Ln(30); 
$pdf->Image($image1, 5, 70, 33.78); 

Das obige ist der Code, den ich verwende. Wenn $ reportSubtitle zwei oder drei Zeilen ist, drückt es $ prod1title und $$ prod1sub runter und unweigerlich unter das fixierte Bild. Gibt es keine Möglichkeit, dass sich das Bild wie Produkttitel und Untertitel verhält und auch nach unten gedrückt wird, während die Größe noch deklariert wird?

Antwort

39

Ich habe es herausgefunden, und es ist eigentlich ziemlich geradlinig.

Ihre Variable Set:

$image1 = "img/products/image1.jpg"; 

Dann eine Zelle ceate, positionieren Sie es, dann eher als die Einstellung, wo das Bild ist, verwenden Sie die Variable, die Sie mit der folgenden erstellt oben:

$this->Cell(40, 40, $pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false); 

Jetzt Die Zelle wird sich mit Inhalt auf und ab bewegen, wenn sich andere Zellen um sie herum bewegen.

Hoffe das hilft anderen im selben Boot.

9

Sie können $pdf->GetX() und $pdf->GetY() verwenden, um aktuelle Koordinaten zu erhalten und diese zum Einfügen von Bildern zu verwenden.

$pdf->Image($image1, 5, $pdf->GetY(), 33.78);

oder sogar

$pdf->Image($image1, 5, null, 33.78);

(obwohl in ersten Fall, dass Sie eine Nummer hinzufügen können, ein bisschen von einem Raum zu schaffen)

$pdf->Image($image1, 5, $pdf->GetY() + 5, 33.78);

-1

Sie können‘ Behandeln Sie ein PDF wie ein HTML-Dokument. Bilder können nicht in einem Dokument "schweben" und Dinge um sie herum fließen lassen oder mit dem umgebenden Text fließen. Mit FPDF können Sie HTML in einen Textblock einbetten, aber nur, weil es die Tags analysiert und <i> und <b> usw. durch Postscript-äquivalente Befehle ersetzt. Es ist nicht intelligent genug, um ein Bild dynamisch zu platzieren.

Mit anderen Worten, Sie müssen Koordinaten angeben (und wenn Sie dies nicht tun, werden die Koordinaten des aktuellen Standorts sowieso verwendet).

+0

Siehe meine Bearbeitung oben. – Carson

+0

Sie könnten höchstens versuchen, die Textgröße zu berechnen (vielleicht mit 'GetStringWidth()') und sehen, ob die Koordinaten des Bildes angepasst werden müssen. Aber wiederum können Sie ein Bild nicht ohne Angabe von Koordinaten in ein PDF einfügen kann die Koordinaten nicht basierend auf anderem Inhalt anpassen, aber Sie können nicht blind einfügen –

2
$image="img_name.jpg"; 
$pdf =new FPDF(); 
$pdf-> AddPage(); 
$pdf-> SetFont("Arial","B",10); 
$pdf-> Image('profileimage/'.$image,100,15,35,35); 
+0

Willkommen zu StackOverflow! Während Antworten immer geschätzt werden, wurde diese Frage vor 6 Jahren gestellt und hatte bereits eine akzeptierte Lösung. wenn Sie Fragen an die Spitze stoßen, indem Sie Antworten geben, es sei denn, die Frage wurde nicht bereits als gelöst markiert, oder Sie haben einen dramatisch besseren alternativen Ansatz für das Problem gefunden.Stellen Sie außerdem sicher, dass Sie den Kontext bereitstellen, um zu erklären, wie Ihr Code das Problem löst. –

+0

Es läuft gut auf FPDF 1.6 – 151291

Verwandte Themen