PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Fpdf (https://www.php-resource.de/forum/php-developer-forum/11481-fpdf.html)

Wotan 23-09-2002 15:00

Fpdf
 
Wie binde ich die Datenbank mit an?

Das erstellen mit der FPDF-Class geht soweit, nur möchte ich jetzt mir noch aus den Datenbank einen Datensatz holen und ihn ausgeben lassen.
PHP-Code:

<?php
require('../inc/fpdf.php');
include(
'../inc/db_data.inc.php');
class 
PDF extends FPDF
    
{
    
//Page header
    
function Header()
        {
        
//Logo
        
$this->Image('lutra.png',10,8,22);
        
//Arial bold 15
        
$this->SetFont('Arial','B',15);
        
//Move to the right
        
$this->Cell(80);
        
//Title
        
$this->Cell(50,10,'Pressemitteilung',1,0,'C');
        
//Line break
        
$this->Ln(20);
        }

    
//Page footer
    
function Footer()
        {
        
//Position at 1.5 cm from bottom
        
$this->SetY(-15);
        
//Arial italic 8
        
$this->SetFont('Arial','I',8);
        
//Page number
        
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
        }
    }

$res mysql_query("SELECT * FROM presse WHERE Nummer='00101'");
while(
$row=mysql_fetch_array($res))
    {
    
$mel nl2br($row[meldung]);
    }

//Instanciation of inherited class
$pdf=new PDF();
$pdf->Open();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
$pdf->Cell(0,10,$mel);


$pdf->Output();
?>

So wird mir nur ausgegeben im PDF-Dokument das hier:
$mel

Ich möchte aber an der Stelle die Meldung haben. Wie muß ich das jetzt machen?

Wotan 23-09-2002 18:19

Geschafft!!!
 
Und so muss der Code aussehen:
PHP-Code:

<?php
require("../../inc/fpdf.php");
include(
"../../inc/db_data.inc.php");

class 
PDF extends FPDF
    
{
    
//Page header
    
function Header()
        {
        
//Logo
        
$this->Image("lutra.png",10,8,20);
        
//Arial bold 15
        
$this->SetFont("Arial","",12);
        
//Move to the right
        
$this->Cell(80);
        
//Title
        
$this->Cell(50,10,"Lutra Pressedienst",0,0,"C");
        
//Line break
        
$this->Ln(20);
        }

    
// Page body
    
function Table($sql)
        {
        
$res mysql_query($sql);
        while(
$row mysql_fetch_array($res))
            {
            
$this->SetFont("Arial","",10);
            
$this->Cell(13,6,"Nr.:",0,0,"L");
            
$this->Cell(20,6,$row["Nummer"],0,0,"L");
            
$this->Ln(5);
            
$this->Cell(13,6,"Datum:",0,0,"L");
            
$this->Cell(20,6,$row["datum"],0,0,"L");
            
$this->Ln(20);
            
$this->SetFont("Arial","B",12);
            
$this->MultiCell($w[1],6,stripslashes($row["Titel"]),0,"C");
            
$this->SetFont("Arial","",12);
            
$this->MultiCell($w[1],6,stripslashes($row["Untertitel"]),0,"C");
            
$this->Ln(10);
            
$this->MultiCell($w[2],6,stripslashes(wordwrap($row["Meldung"],90,"\n",1)),0,"J");
            }
        }

    
// Page footer
    
function Footer()
        {
        
//Position at 1.5 cm from bottom
        
$this->SetY(-15);
        
//Arial italic 8
        
$this->SetFont("Arial","I",8);
        
//Page number
        
$this->Cell(0,10,"Page ".$this->PageNo()."/{nb}",0,0,"C");
        }

    }
$pdf = new PDF();
$pdf->Open();
$pdf->AddPage();
$pdf->SetAuthor('Lutra Pressedienst');
$pdf->SetFont("Arial","",10);
$pdf->Table("SELECT *,DATE_FORMAT(Sperrfrist,'%d.%m.%Y')AS datum FROM presse WHERE Nummer='$show'");
$pdf->AliasNbPages();
$pdf->Output();
?>

Dieses Script erstellt mit der kostenfreien FPDF-Class ein PDF-Dokument was aus einer Datenbankabfrage besteht.

Die FPDF-Class findet Ihr unter www.fpdf.org zum Download

Imion 09-08-2003 08:33

Ich häng mich hier einfach mal eben drann, und zwar würd cih gern wissen wie ich bei fpdf andere Seitenformate als die standart hinbekomme, also zum beispiel 450*320 mm

Wotan 09-08-2003 09:04

Bei FPDF hast du glaube ich nicht die Möglichkeit eine andere Seitegröße anzugeben. Nimm lieber die Class von http://www.ros.co.nz/pdf und schau die mal die Datei class.ezpdf.php ab Zeile 28 an, dort kannst glaube ich was an den Seitegrößen drehen.

Imion 09-08-2003 12:13

Hey das ist gut, genau das was ich gesucht habe. Danke schön. Du hast mir echt geholfen. Hier kann man das Seitenformat Kinderleicht anpassen. *jubel*

Wotan 09-08-2003 12:28

Hilfe => Lohn (1KG Schokoeis und eine Kiste Warsteiner) *scherz*:D:D:D

Imion 09-08-2003 13:02

*In Kiste pak und verschik* aber kühlen musst du selber, übrigens das Eis liegt auf der Kiste...

Ich habe mittlerweie auch erfahren das es mit fpdf ebenfalls geht und zwar so: array(450,320)

Nur mal für alle die es vieleicht interessieren sollte. Ich werde aber sehr wahrscheinlich dennoch bei deiner hier vorgeschlagenen Klasse bleiben, nicht zuletzt weil hier bereits auch schon sonderformate wie SRA3 schon integriert sind. Und weil es grad so schön läuft und ich so wie ich das sehe nur die afm dateien von den postscriptschriften übernehemm muß und keine dateien erst umständlich erzeugen muß.

Wotan 09-08-2003 13:10

*Kiste mit Wasserschokoeis ist gerade eingetroffen. man ist die Post aber schnell.:D:D:D*

Imion 09-08-2003 13:12

:D Post EXpress halt *gz*
Ich hoffe der KAsten ist nicht all zu sehr verklebt. =)

Wotan 09-08-2003 13:17

*NöNö geht:D:D:D* So nun genug OT

Imion 09-08-2003 13:23

ok, aber manchmal muß auch das mal sein, sonst ist das alles viiiel zu trocken. :D

Aber ich hätte da noch eine frage, ich weiß das das hier nicht unbedingt rein passt und das das im Forum schon öfter mal geklärt wurde, aber ich bin da nicht durchgestiegen so wirklich.

Wie kann ich die generierte PDF per email versenden?

Wotan 09-08-2003 13:58

Du lässt erst die PDF-Erstellung durchlaufen, dann speicherst du die PDF-Datei und dann verschickst du die Mail:
PHP-Code:

//PDF als Mail-Anhang verschicken.
$file "../kunde_pdf/".$kid."-".$bid."-".$sid.".pdf";
$file_name $kid."-".$bid."-".$sid.".pdf";
$subject$m2;
$from    $sales;
$to        $beMail;
$message $maildata[body];
$boundary strtoupper(md5(uniqid(time())));
$mail_header  "From:$from(Sales)\n";
$mail_header .= "MIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format";
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$message";
$file_content fread(fopen($file,"r"),filesize($file));
$file_content chunk_split(base64_encode($file_content));
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: application/octetstream; name=\"$file_name\"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"$file_name\"";
$mail_header .= "\n\n$file_content";
$mail_header .= "\n--$boundary--";
// eMail an Käufer
mail($to,$subject,"",$mail_header); 

entnommen aus meinen Warekorb-Script.

Imion 09-08-2003 14:07

Danke :)

Aaaaber *mal wieder superdumm ist* speichern die ersten zwei zeilen die datei oder muß das woanders passieren und kann ich das in einer datei machen?

Wotan 09-08-2003 14:27

Die öffnen nur die schon gespeicherte Datei.

Gespeichert wir so:
PHP-Code:

//ausgabe des PDF-Files
$pdf_code $pdf->output();
$fp=fopen('../kunde_pdf/'.$kid.'-'.$bid.'-'.$sid.'.pdf','wb');
fwrite($fp,$pdf_code);
fclose($fp); 


Imion 09-08-2003 14:32

Super, danke, ich steh glaub ich n takken in deine rschuld =)


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:10 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG