Hallo zusammen. Hoffe das ich hier richtig gelandet bin.
Folgendes Problem habe ich. Ich möchte Daten aus meiner db auslesen, und in mehrere pdf schreiben. Also jeweils ein Eintrag für eine PDF. Danach die PDF serverseitig zusammenführen und zum download anbieten.
Ich habe meinen Quellcode bisher soweit:
Es funktioniert wenn ich $num auf 10 Stelle und sage er soll eben 10 PDF erstellen. Die erstellt er und bietet sie zum download an. Wenn ich jetzt allerdings die Daten aus der db abfrage und $num auf die Anzahl der Zeilen in der db setze, kommt folgender Fehler:
FPDF error: Some data has already been output, can't send PDF file
Verstehe nicht genau woran es hapert. Hat jemand eine Idee?
Vielen dank schonmal.
ERGÄNZUNG:
also mir ist klar was der Fehler bedeutet, verstehe aber nicht wo er ist?
Des weiteren ist mir auch klar das aktuell noch keine Informationen in die PDF geschrieben werden aus der db. Aber der Zugriff funktioniert ja. Leider wird irgendwas schon in den output gepackt?
Folgendes Problem habe ich. Ich möchte Daten aus meiner db auslesen, und in mehrere pdf schreiben. Also jeweils ein Eintrag für eine PDF. Danach die PDF serverseitig zusammenführen und zum download anbieten.
Ich habe meinen Quellcode bisher soweit:
PHP-Code:
<?php
define('FPDF_FONTPATH','font/');
require('fpdi.php');
require_once('fpdf.php');
require_once ('mysql.inc.php');
// db connect
$db_link = mysql_connect ( MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT );
$db_sel = mysql_select_db( MYSQL_DATENBANK )
or die("Auswahl der Datenbank fehlgeschlagen");
$sql = mysql_query("SELECT * FROM datenbankname");
// anzahl Zeilen
$num = mysql_num_rows($sql);
// ausgabe
echo '<table border="1">';
while ($zeile = mysql_fetch_array( $sql, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $zeile['id'] . "</td>";
echo "<td>". $zeile['name'] . "</td>";
echo "</tr>";
}
echo "</table>";
// ausgabe anzahl Zeilen
echo $num;
mysql_free_result( $sql );
// pdf erstellen
//$num = 10;
for($i=1; $i <= $num; $i++){
$pdf=new FPDF();
$pdf->SetFont('Arial','',12);
$pdf->AddPage();
$pdf->Cell(0,0,"Seite $i");
$pdf->Output($i.'.pdf', 'F');
}
// pdf zusammenführen
class concat_pdf extends fpdi {
var $files = array();
function concat_pdf($orientation='P',$unit='mm',$format='A4') {
parent::fpdi($orientation,$unit,$format);
}
function setFiles($files) {
$this->files = $files;
}
function concat() {
foreach($this->files AS $file) {
$pagecount = $this->setSourceFile($file);
for ($i = 1; $i <= $pagecount; $i++) {
$tplidx = $this->ImportPage($i);
$this->AddPage();
$this->useTemplate($tplidx);
}
}
}
}
$pdf= new concat_pdf();
for($j=1; $j <= $num; $j++){
$pdf->setFiles(array("$j.pdf"));
$pdf->concat();
}
$pdf->Output("NeuerName.pdf","D");
?>
FPDF error: Some data has already been output, can't send PDF file
Verstehe nicht genau woran es hapert. Hat jemand eine Idee?
Vielen dank schonmal.
ERGÄNZUNG:
also mir ist klar was der Fehler bedeutet, verstehe aber nicht wo er ist?
Des weiteren ist mir auch klar das aktuell noch keine Informationen in die PDF geschrieben werden aus der db. Aber der Zugriff funktioniert ja. Leider wird irgendwas schon in den output gepackt?

Kommentar