2010-08-12 130 views
19

Estoy tratando de insertar una imagen, pero no quiero especificar las coordenadas x e y. ¿Es eso posible?Inserción de una imagen con PHP y FPDF

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

Quiero ser capaz de especificar el tamaño (33,78), pero no el X e Y para que se mueva basa en el contenido.

$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); 

El anterior es el código que uso. Si $ reportSubtitle es dos o tres líneas, empuja $ prod1title y $$ prod1sub hacia abajo, e inevitablemente debajo de la imagen que está arreglada. ¿No hay forma de que la imagen actúe como el título del producto y los subtítulos, y se presione también mientras se sigue declarando el tamaño?

Respuesta

39

lo he descubierto, y en realidad es bastante sencillo.

configura la variable:

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

Entonces ceate una célula, posición que, a continuación, en lugar de entorno en el que la imagen es, utilizar la variable que ha creado anteriormente con lo siguiente:

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

Ahora la celda se moverá hacia arriba y hacia abajo con contenido si otras células a su alrededor se mueven.

Espero que esto ayude a otros en el mismo barco.

9

Puede usar $pdf->GetX() y $pdf->GetY() para obtener coordenatos actuales y utilizarlos para insertar imágenes.

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

o incluso

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

(aunque en primer caso se puede añadir un número para crear un poco de espacio)

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

-1

Usted puede' Tratar un PDF como un documento HTML. Las imágenes no pueden "flotar" dentro de un documento y hacer que las cosas fluyan a su alrededor o fluyan con el texto que lo rodea. FPDF le permite incluir HTML en un bloque de texto, pero sólo porque analiza las etiquetas y reemplaza <i> y <b> y así sucesivamente con los comandos equivalentes PostScript. No es lo suficientemente inteligente como para colocar dinámicamente una imagen.

En otras palabras, usted tiene que especificar las coordenadas (y si no lo hace, de la ubicación actual coordenadas se utilizará de todos modos).

+0

Ver mi publicación más arriba. – Carson

+0

A lo sumo se podría tratar de calcular el tamaño del texto (tal vez con 'GetStringWidth()' y ver si había requiere el ajuste de las coordenadas de la imagen. Pero, de nuevo, no se puede insertar una imagen en un PDF sin proporcionar las coordenadas. Nada de lo que dice no puede ajustar las coordenadas basadas en otro contenido, pero no puede insertar a ciegas. –

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

¡Bienvenido a StackOverflow! Mientras que las respuestas siempre son apreciadas, esta pregunta fue hecha hace 6 años, y ya tenía una solución aceptada. Intente evitarla ' respondiendo a las preguntas hasta la cima al proporcionarles respuestas, a menos que la pregunta no estuviera ya marcada como resuelta, o si usted encuentra un enfoque alternativo dramáticamente mejor para el problema.También asegúrese de proporcionar un contexto para explicar en detalle cómo su código resuelve el problema en cuestión :) –

+0

Funciona bien en FPDF 1.6 – 151291

Cuestiones relacionadas