Foros del Web » Programando para Internet » PHP »

FPDF enviar PDF con phpmailer

Estas en el tema de FPDF enviar PDF con phpmailer en el foro de PHP en Foros del Web. Hola, he hecho este pdf que coge los datos de la base de datos, ahora lo quiero enviar con phpmailer como un archivo adjunto. He ...
  #1 (permalink)  
Antiguo 01/01/2013, 12:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
FPDF enviar PDF con phpmailer

Hola, he hecho este pdf que coge los datos de la base de datos,
ahora lo quiero enviar con phpmailer como un archivo adjunto.
He conseguido enviar PDF hecho asi muy sencillos, pero este no logor enviar,
igual es por las imagenes. No sé si a lo mejor no se puede mandar directamente sino se debe de guardar el archivo en servidor o en base de datos.
Alguna idea como lo puedo enviar?
Código PHP:
class PDF extends FPDF
{    
function 
Header()
{
    
$this->Image('paypal/headeringles2.png',10,5,190);
    
$this->SetFont('Arial','B',17);
     
// Salto de línea
    
$this->Ln(6);
    global 
$propiedad;
    
$this->Cell(190,10,$propiedad,0,0,'C'); 
    
$this->Ln(16);  
}
function 
Footer()
{
    
$this->SetFont('Arial','',10);
    
// Número de página
    
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
  
define('EUR'iconv('UTF-8''windows-1252'"€"));
define('DEG'iconv('UTF-8''windows-1252'"º"));
define('SEP'iconv('UTF-8''windows-1252'"'"));
// Creación del objeto de la clase heredada
$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','',11); 
$pdf->SetX(20);
$pdf->Cell(170,5,'Name: ' $row->name,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Passport: ' $row->passport,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Email: ' $row->emailtrue,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Home phonenumber: ' $row->telhome,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Movile to bring on holiday: ' $row->telmobile,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Adults: ' $row->adults,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Children (2-17 years): ' $row->children,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Infants (under 2 years): ' $row->babies,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$row->propiedad str_replace(" ""_"$row->propiedad);
$casa $row->propiedad;
$result mysql_query ("SELECT Duermen_max, bond FROM Casas_alquilar where (nombre = '$casa')");
while (
$rows mysql_fetch_object($result)) {
$pdf->Cell(170,5,utf8_decode("Máx. occupacy is ") . $rows->Duermen_max ' persons excluding babies or infants who sleep in a cot for which there is',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'no extra charge.',0,0);
$pdf->Ln(12);
$pdf->SetX(20);
$pdf->Cell(170,5'Property rented: ' .$row->propiedad,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Arrival: ' $row->llegada,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Departure: ' .$row->salida,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
if (
$row->percentage=="25"){$whenpayment $whenpayment "is due 8 weeks before arrival";}
if (
$row->percentage=="50"){$whenpayment "is due on arrival";}
$pdf->Cell(170,5'Total Holiday Cost: '$row->holidaycost.EUR,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Option choosen to pay:',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'deposit ('.$row->percentage .' %) ' .$row->deposit.EUR.' balance ' .$row->balance.EUR.  ' '$whenpayment.'.',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'balance ' .$row->balance.EUR.  ' '$whenpayment.'.',0,0);
$pdf->Ln(6);
if (
$row->bond=="tarjeta"){
$pdf->SetX(20);
$pdf->Cell(170,5'A damage deposit will be paid on arrival by creditcard.',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'I have read the booking conditions and agree to abide by them.',0,0);
$pdf->Ln(12);
}
else {
$pdf->SetX(20);            
$pdf->Cell(170,5'A damage deposit of ' $row->damagedeposit.EUR' wich will be returned after inspection will be blocked on my credit',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'card or paid on arrival in cash in the currency of my choice.',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'I have read the booking conditions and agree to abide by them.',0,0);            
$pdf->Ln(12);
}
$pdf->SetX(20);
$pdf->Cell(170,5'Flight or other transport information, arriving: ' $row->transport,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Arrival and departure time at airport, trainstation or property: ',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Arrival time: ' .$row->hourarrival,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Departure time: ' .$row->hourdeparture,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Arrival flight: ' .$row->arrivalflightdetails,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Departure flight: ' .$row->departureflightdetails,0,0);
$pdf->Ln(12);
$pdf->SetX(20);
$pdf->Cell(170,5'Services required: (Air Port pickup to be paid on arrival) ',0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Taxi' .SEP.'s up to 4 persons: ' .$row->taxismall,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5,'Taxi'.SEP.'s up to 7 persons: ' .$row->taxibig,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'n'.DEG.' and group of Rent a car'.SEP.'s: ' .$row->rentacar,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'n'.DEG.' of cots (free of charge): ' .$row->cot,0,0);
$pdf->Ln(6);
$pdf->SetX(20);
$pdf->Cell(170,5'Other services: ' .$row->otherservices,0,0);
$pdf->Ln(9);
$pdf->SetFont('Arial','',8);
$pdf->SetX(20);
$pdf->Cell(170,5'All charges of bank transfers to be paid by the guest. If the option of credit or debit card payment is chosen there will be a 4%  charge to the guest.',0,0);
$pdf->Ln(4);
$pdf->Image('paypal/footeringles2.png',40,278,140);

}
$pdf->Output(); 
Gracias
  #2 (permalink)  
Antiguo 01/01/2013, 12:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: FPDF enviar PDF con phpmailer

Pues si dices que el problema está al enviar, ¿por qué muestra el script que crea el pdf y no el otro?

La clave debe estar en como envías las cosas, aunque yo si probaría guardar el archivo en disco y adjuntarlo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/01/2013, 12:43
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: FPDF enviar PDF con phpmailer

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues si dices que el problema está al enviar, ¿por qué muestra el script que crea el pdf y no el otro?

La clave debe estar en como envías las cosas, aunque yo si probaría guardar el archivo en disco y adjuntarlo.
No entiendo, te refieres al script de envio de phpmailer?
Pues lo mando asi:
$doc=$pdf->Output('Booking /' .$row->hourdeparture.'/','S');
$mail->AddStringAttachment($doc, 'Booking /' .$row->hourdeparture.'/', 'base64', 'application/pdf');
$mail->Send();

Y funciona si lo hago muy sencillo, sin imagenes ni nada, pero como esta no envia.
¿Como lo guardo en el server con un nombre diferente por cada pdf?
Es que eso no he hecho nunca y guardar el enlace en la tabla de mysql,
lo de mysql creo que lo sabré hacer, pero no guardar el pdf en el server.
Gracias.
  #4 (permalink)  
Antiguo 01/01/2013, 13:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: FPDF enviar PDF con phpmailer

Consegui guardarlo así:
$pdf->Output("bookings/filename.pdf","F");
Ahora me imagino que el nombre del archivo debe de tener fecha y hora como nombre para que no pueda haber duplicados.
Y si pongo fecha y hora como nombre como lo recupero para enviarselo y guardarlo en la base?

Gracias
Disculpa, pero estoy hasta el gorro, tanto tiempo para implantar paypal !!!!!!!!!!
  #5 (permalink)  
Antiguo 01/01/2013, 13:25
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: FPDF enviar PDF con phpmailer

Puf,
haciendo esto logro guardar el pdf en un archivo:
$pdf->Output("bookings/filename.pdf","F");
Pero si inserto lo mismo en el ipn.php que es para paypal donde esta el phpmailer
no me lo guarda.......
Ay que lio

Última edición por helenp; 01/01/2013 a las 14:24
  #6 (permalink)  
Antiguo 01/01/2013, 15:43
 
Fecha de Ingreso: noviembre-2006
Ubicación: Alicante
Mensajes: 107
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: FPDF enviar PDF con phpmailer

Prueba a poner las urls absolutas para las imágenes.
  #7 (permalink)  
Antiguo 02/01/2013, 05:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: FPDF enviar PDF con phpmailer

Puf, por fin lo tengo funcionando, y no hacia falta url exactos, si quieren lo pego.

Ahora quiero que el nombre del archivo se genere dinámicament y para evitar duplicados sea fecha+hora+un numero o nombre al azar.
No encuentro como hacerlo.

De momento declaro el archivo a enviar asi:
$pdf->Output("bookings/filename55.pdf","F");
$path = "bookings/filename55.pdf";
y lo envio con el phpmailer asi:
$asunto = "$row->propiedad, $row->llegada - $row->salida";
$mail->AddAttachment($path, $asunto, $encoding = 'base64', $type = 'application/pdf');
if(!$mail->Send())
{
echo "Message could not be sent, enter a valid e-mail. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
  #8 (permalink)  
Antiguo 02/01/2013, 08:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: FPDF enviar PDF con phpmailer

Lo tengo:
Código PHP:
$fechadate('Y-m-d:h-i-s'time());
echo 
"$fecha";
$fileuniqid(); 
$pdf->Output("bookings/".$fecha.$file."booking.pdf","F");
$path "bookings/".$fecha.$file."booking.pdf"
  #9 (permalink)  
Antiguo 02/01/2013, 09:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: FPDF enviar PDF con phpmailer

Lo que no entiendo es por qué debes guardar el archivo, si al final de enviar el correo puedes borrarlo para no usar espacio en tu servidor.

Pensaba que la idea era esa, ¿o qué sentido tiene conservar los archivos?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 02/01/2013, 11:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: FPDF enviar PDF con phpmailer

Pues, primero solo iba a enviarlo al vuelo,
pero como no me funcionó pues a guardarlo,
no sé como eliminarlo automáticamente además como tengo una socia "despistada" no está de más tener una copia en el serve, y pues no me cuesta mucho eliminarlos manualmente, tampoco me ocupa tanto sitio, que tengo bastante.
Gracias y espero que le sirva a alguien.

Etiquetas: fpdf, mysql, pdf, phpmailer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.