anzeige

FPDF fehler


Seite: 1 2
Autor Beitrag
compinfo
13.02.10 - 13:53:47 Uhr

Hi,

Ich wollte mal ein paar PDFs erstellen mit php code. Also hab ich mir im internet was passendes gesucht -> fpdf.

Ich hab mir dort die instal-datei durchgelsen.
Dort steht, dass man den pfad anpassen muss - das is ja kein Problem. Und dann habe ich versucht eine Seite zu erzeugen mit Hello Word:

  1. <?php  
  2.  
  3. // das hier musste man anpassen (instal-datei)  
  4. define('FPDF_FONTPATH','font/');  
  5. require('fpdf.php');  
  6. // bis hier  
  7.  
  8. // code von tutorial bei fpdf.org  
  9. $pdf=new FPDF();  
  10. $pdf->AddPage();  
  11. $pdf->SetFont('Helvetica','B',32);  
  12. $pdf->Cell(40,10,'Hello World!');  
  13. $pdf->Output();  
  14.  
  15. ?>  


Die pdftest.php wird im Browser aufgerufen (Code oben) und befindet sich im gleichen Verzeichnis wie die fpdf.php. Die ordner font und doc sind ebenfalls im gleichen Verzeichnis.

Jetzt kommt aber immer folgender Fehler:
"The file is damaged and could not be repared" - hat da das Programm ne Macke, oder hab ich was falsch gemacht?

Falls es am FPDF liegt wäre ich froh über alternativen.

Gruss,

Compinfo
Achtzig
13.02.10 - 15:50:05 Uhr

Habe das eben mal runter geladen aber nicht installiert. Laut install.txt muß der Pfad zum Font-Verzeichnis absolut sein. Ob das der Fehlergrund ist, weiß ich allerdings nicht. Was ist denn, wenn Du bei Output mit den Parametern experimentierst? Beispielsweise in eine Datei schreibst.

(Kennst Du wahrscheinlich schon aber dennoch: http://wiki.pytalhost.de/pywiki/Absoluter_Pfad)
feuerfuchs
13.02.10 - 16:18:56 Uhr

Ich bin mir nicht sicher, aber bisher habe ich bei FPDF den Font-Path noch nie angegeben. Versuche mal, es einfach wegzulassen.
______________
PyChat
PyFix
Pytal-RSS-Feed
compinfo
13.02.10 - 22:39:59 Uhr

Danke für die Antworten.

Leider scheint es nicht an dem absoluten Pfad zu liegen.
Auch mit weglassen der define funzt es nicht.

Was ich mir noch vorstellen könnte -> Adons von Adobe Reader sind fehlerhaft oder das Programm hat nen Bug...

Könnte jemand das mal auf seinem Space versuchen? Dann könnte man sagen ob es an meiner Unfähigkeit liegt oder am Programm.

Gruss,

Compinfo
SammysHP
13.02.10 - 22:49:16 Uhr

Vielleicht wird ein falscher Header gesendet? Obwohl... dann würde ja der Adobe-Reader nicht mehr gestartet...

_________________
www.sammyshp.de
compinfo
13.02.10 - 22:56:24 Uhr

Ne, am header kanns net liegen.

Der Witz der Geschichte ist eben, dass das bei einer früheren Version meiner Seite gefunzt hat.
Leider hab ich von der library inklusive testfile keine backups mehr.

Soviel ich weiss hab ich es genau so gemacht wie letztes mal.

Ich denke ein Test (wie oben erwähnt) könnte helfen, falls jemand das auf sich nehmen würde (die Installation is ne
Sache von 2 min)
Achtzig
13.02.10 - 22:58:08 Uhr

Wenn sich keiner findet, kann ich das morgen machen. Heute habe ich keine Lust mehr
compinfo
14.02.10 - 00:33:10 Uhr

Hey, so, hab den Fehler gefunden.

So hab ich den gefunden:
Bin auf einen Thread im www gestossen wo einer geschrieben hat das man exit am schluss anhängen soll.

Gesagt getan kam nun ein Download-Fenster (anders als zuvor) dann konnte man das runterladen gab aber probleme mit öffnen.

Dann hab ich mir gedacht ich öffne das mal mit notepad. Und oh Wunder sehe ich dort diese Fehlermeldung:

  1. <br />  
  2. <b>Warning</b>:  ini_set() has been disabled for security reasons in <b>/srv/www/httpd/phost/c/com/pytalhost/compinfo/web/pdf/fpdf.php</b> on line <b>1024</b><br />  
  3. %PDF-1.3  
  4. 3 0 obj  
  5. <</Type /Page  
  6. /Parent 1 0 R  
  7. /Resources 2 0 R  
  8. /Contents 4 0 R>>  
  9. endobj  
  10. 4 0 obj  
  11. <</Filter /FlateDecode /Length 72>>  
  12. stream  
  13. xœ3Rðâ2Ð35W(çr  
  14. QÐw3T04Ó30P?ISp  
  15. ? ??ê?Z*˜[š€?…¤(hx¤æää+„ç?å¤(j*„dÔ?  


Der Fehler lag in der fpdf.php datei. Nämlich weil dort bei Zeile 1024 ein ini_set verwendet wird und das ist bei Pytal nicht erlaubt.

Einfach ein @ zur unterdrückung hinschreiben - schon gehts wie Butter

=> exit und den Fontpfad brauchts nicht.

Gruss,

Compinfo
Achtzig
14.02.10 - 00:56:13 Uhr

Gratulation
compinfo
15.02.10 - 12:45:43 Uhr

Moin,

Hab nochmals ein Problem - ich hab mal den ganzen PDF Code in eine erweiterte Klasse gesteckt.

Doch ich bekomm immer so einen unsinnigen Fehler:
"Undefined Font helvetica B"

Obschon ich diese Font niemals verwendet habe im Code.
Dummerweise zeigt die Fehlermeldung keine Zeilen Nr.

Die Synthax für die SetFont lautet: SetFont(family,style,size)

Vielleicht findet jemand den Fehler. Ich habe das dumpfe Gefühl, (wo ich die PDF statisch gemacht habe gings einwandfrei) dass etwas mit der Klasse evt. irgendwo nicht stimmt und es nicht an diesem SetFont liegt.

Zur Info:
Ich habe zuerst ohne Klasse gearbeitet (also nur für die funktionen pdf extends FPDF verwendet) und alle Texte reingetippt.

Dann wollte ich die PDF, dynamisch, per construct des pdf, als extention von FPDF mit Variabeln füttern, die dann dementsprechend eingefügt werden.

Leider hat das bis anhin nicht gefunzt.

Hier mal meinen Code dazu:
Link entfernt.

Hier die synthax aus dem fpdf.php (template):

  1. <?php  
  2.  
  3. function SetFont($family$style=''$size=0)  
  4. {  
  5.     //Select a font; size given in points  
  6.     global $fpdf_charwidths;  
  7.  
  8.     $family=strtolower($family);  
  9.     if($family=='')  
  10.         $family=$this->FontFamily;  
  11.     if($family=='arial')  
  12.         $family='helvetica';  
  13.     elseif($family=='symbol' || $family=='zapfdingbats')  
  14.         $style='';  
  15.     $style=strtoupper($style);  
  16.     if(strpos($style,'U')!==false)  
  17.     {  
  18.         $this->underline=true;  
  19.         $style=str_replace('U','',$style);  
  20.     }  
  21.     else  
  22.         $this->underline=false;  
  23.     if($style=='IB')  
  24.         $style='BI';  
  25.     if($size==0)  
  26.         $size=$this->FontSizePt;  
  27.     //Test if font is already selected  
  28.     if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size)  
  29.         return;  
  30.     //Test if used for the first time  
  31.     $fontkey=$family.$style;  
  32.     if(!isset($this->fonts[$fontkey]))  
  33.     {  
  34.         //Check if one of the standard fonts  
  35.         if(isset($this->CoreFonts[$fontkey]))  
  36.         {  
  37.             if(!isset($fpdf_charwidths[$fontkey]))  
  38.             {  
  39.                 //Load metric file  
  40.                 $file=$family;  
  41.                 if($family=='times' || $family=='helvetica')  
  42.                     $file.=strtolower($style);  
  43.                 include($this->_getfontpath().$file.'.php');  
  44.                 if(!isset($fpdf_charwidths[$fontkey]))  
  45.                     $this->Error('Could not include font metric file');  
  46.             }  
  47.             $i=count($this->fonts)+1;  
  48.             $name=$this->CoreFonts[$fontkey];  
  49.             $cw=$fpdf_charwidths[$fontkey];  
  50.             $this->fonts[$fontkey]=array('i'=>$i'type'=>'core''name'=>$name'up'=>-100'ut'=>50'cw'=>$cw);  
  51.         }  
  52.         else  
  53.             $this->Error('Undefined font: '.$family.' '.$style);  
  54.     }  
  55.     //Select it  
  56.     $this->FontFamily=$family;  
  57.     $this->FontStyle=$style;  
  58.     $this->FontSizePt=$size;  
  59.     $this->FontSize=$size/$this->k;  
  60.     $this->CurrentFont=&$this->fonts[$fontkey];  
  61.     if($this->page>0)  
  62.         $this->_out(sprintf('BT /F%d %.2F Tf ET',$this->CurrentFont['i'],$this->FontSizePt));  
  63. }  
  64.  
  65. ?>  


Gruss,

Compfino
Seite: 1 2

- Obige Beiträge stellen keine Äußerung oder Meinung von Pytal oder dessen Betreiber dar -