[geloest] Installation von FPDF zur Erzeugung von PDF

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

[geloest] Installation von FPDF zur Erzeugung von PDF

Beitrag von Mesquita » 28.01.2021 09:56:56

Hallo User,
ich muss mich wieder mal mit einem, für mich unlösbarem, Problem melden. Ich habe eine Freie Software für eine spezielle Verwaltung erhalten und unter einem aktuellen LAMP auf einem Raspberry Pi 4 installiert. Der Support dazu hält sich sehr in Grenzen und man bekommt nur rudimentäre Schnipselchen angeboten. Viele aufgetretene Probleme konnte ich schon lösen. Jedoch bei zwei Problemen komme ich nicht weiter.
1. Drucken als PDF
2. Fehler in System log
Hier möchte aber nur das Problem drucken unter PHP eingehen. Mir wurde mitgeteilt, dass man aus der Software heraus auf das Modul von http://www.fpdf.org/ zugreift und dies normalerweise problemlos läuft. Nach Recherchen habe ich dann apt-get install php-fpdf installiert. Ohne Erfolg. Allerdings wird auch geschrieben, dass die PHP-Klasse/Bibliothek FPDF schon in die Software integriert ist. Allerdings erhalte ich bei jedem Versuch einen Ausdruck zu generieren eine leere helle HTML-Seite.

Was mache ich falsch bzw. wie muss ich vorgehen um die Ursache zu finden?

Vielen Dank.

Thomas
Zuletzt geändert von Mesquita am 29.01.2021 10:26:14, insgesamt 2-mal geändert.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von eggy » 28.01.2021 11:23:50

Erster Schritt: Logfiles lesen, falls es keine gibt, rausfinden, wie man das Programm/PHP dazu bringt diese zu erzeugen. Falls die Logfiles nichts Hilfreiches enthalten: Logging hochdrehen, meist entsprechende Configwerte (debug/verbose/loglevel) oder Umgebungsvariablen.

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von Mesquita » 28.01.2021 16:20:18

Hallo Eggy,
ich sitze schon Stunden recherchiere und experimentiere. In den typischen Logs finde ich keine näher eingrenzende Fehlermeldungen. Ich habe mir ein Buch zu PHP besorgt und darin ein Kapitel zu FPDF. Schon die ersten Ansätze:

Code: Alles auswählen

<!DOCTYPE html><html><head><meta charset="utf-8"></head><body>
<?php
require("fpdf/fpdf.php");
$pdf = new FPDF();
$pdf->SetFont("Helvetica", "B", 24);
$pdf->AddPage();
$pdf->Cell(50, 20, "Hallo Thomas");
$pdf->Output("pdf_test.pdf","I");
?>
</body></html>
führt im Browser zur Ausgabe:

Code: Alles auswählen

FPDF error: Some data has already been output, can't send PDF file
Ich finde keinen Weg um die Ursache näher eingrenzen zu können. Hast Du eine Idee?

Thomas

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von eggy » 28.01.2021 17:16:36

Das liegt vermutlich daran, dass der Header bereits gesendet wurde.

Edit: Notiz an mich "erst denken, dann posten":
Es wurde der Header bereits gesendet, da Du die erste Zeile dort hast (das <html> .... ).
Versuch das mal nur mit dem php Code, komplett ohne HTML.
Zuletzt geändert von eggy am 28.01.2021 17:19:24, insgesamt 1-mal geändert.

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von bluestar » 28.01.2021 17:19:07

Lass mal folgende beiden Code-Blöcke weg:
Mesquita hat geschrieben: ↑ zum Beitrag ↑
28.01.2021 16:20:18

Code: Alles auswählen

<!DOCTYPE html><html><head><meta charset="utf-8"></head><body>
und
Mesquita hat geschrieben: ↑ zum Beitrag ↑
28.01.2021 16:20:18

Code: Alles auswählen

</body></html>

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von Mesquita » 28.01.2021 17:39:56

Hallo Eggy, hallo Bluestar...

Ihr lagt richtig mit dem Header. Der Inhalt und die Ausgabe kommen im Browser an. Die Datei stammt aus einem Buch. Da frage ich mich doch, warum der Autor im Buch dies so beschreibt? Egal, ich bin einen Schritt vorwärts gekommen. Mir geht es Hauptsächlich um den PDF-Ausdruck aus einem Programm. Darin enthalten ist fpdf und mit dem erfolgreichen Test habe ich die grundsätzliche Funktion von fpdf erfolgreich getestet.

Drucke ich aber aus dem Programm heraus, erhalte ich nur eine leere helle Browserseite, kein PDF. Der Programmierer, wenn man ihn mal erreicht, sagt, es muss gehen..

In den Log Files finde ich aber nichts. Wie könnte ich mich dem Problem weiter nähern?

Thomas

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von eggy » 28.01.2021 18:10:44

Loglevel hochdrehen

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von Mesquita » 28.01.2021 18:15:55

Ich habe in der php.ini Error auf All gesetzt und bekomme im Browser nun folgende Ausgabe beim Drucken:

Code: Alles auswählen

Warning: require_once(/var/www/html/stell/mandant/CAIPERA/pdf_1.inc.php): failed to open stream: No such file or directory in /var/www/html/stell/pro_pr_dt.php on line 39

Fatal error: require_once(): Failed opening required '/var/www/html/stell/mandant/CAIPERA/pdf_1.inc.php' (include_path='.:/usr/share/php') in /var/www/html/stell/pro_pr_dt.php on line 39
In der Zeile 39 der aufgeführten Datei steht:

Code: Alles auswählen

require_once($pfad.$pdf_datei);
Kann man was damit anfangen?

Thomas

letzter3
Beiträge: 444
Registriert: 16.07.2011 22:07:31

Re: Installation von FPDF zur Erzeugung von PDF

Beitrag von letzter3 » 28.01.2021 20:45:26

Ohne eine Ahnung zu haben, aus der FAQ http://www.fpdf.org/en/FAQ.php#q2
Warning: Cannot modify header information - headers already sent by (output started at script.php:X)

It means that script.php outputs something at line X. Go to this line and fix it. In case the message doesn't show, first check that you didn't disable warnings, then add this at the very beginning of your script:
ob_end_clean();
If you still don't see it, disable zlib.output_compression in your php.ini and it should appear.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Installation von FPFD zur Erzeugung von PDF

Beitrag von eggy » 29.01.2021 07:56:33

Mesquita hat geschrieben: ↑ zum Beitrag ↑
28.01.2021 18:15:55
Kann man was damit anfangen?
Vielleicht. Der versucht ne Datei einzubinden, die er nicht hat oder auf die er nicht zugreifen darf.
a) nachsehn, ob die Datei da ist
b) Berechtigungen prüfen

Benutzeravatar
Mesquita
Beiträge: 127
Registriert: 18.10.2018 18:08:10

[geloest] Installation von FPDF zur Erzeugung von PDF

Beitrag von Mesquita » 29.01.2021 08:11:46

Hallo Eggy, hallo letzter3,

vielen Dank für Eure Hinweise und vor allem der Motivation nicht entnervt aufzugeben. Da der Druck mit einfachem Skript funktionierte, konzentrierte ich mich auf die Programmierung/Quellcode der Software. Aus dem letzten Fehler-Log fiel mir ein Verzeichnis auf, was es so nicht gab. Dabei handelt es sich um den Mandanten innerhalb der Software. Zu Beginn habe ich den vorinstallierten Mandanten auf Hinweis vom Entwickler innerhalb der Software geändert und dabei auch Großbuchstaben verwendet. Allerdings wurde dabei nicht berücksichtigt, dass bei einer Namensänderung die Verzeichnisstruktur nicht angepasst wird, was nur bei einer Neuanlage vom Mandanten der Fall ist. Als Letztes stellte ich dann fest, dass aus der Software heraus nur Kleinbuchstaben umgesetzt werden. Also das noch geändert und voilà, der Druck funktioniert.

Ich wäre so schnell nie darauf gekommen, wenn ich den error_log nicht auf All gesetzt hätte. Danke für den Tipp. Den werde ich nicht mehr vergessen.

Vielen Dank. Bleibt schön gesund und aktiv für alle die noch Probleme hier im Forum haben.

:THX: :hail: Thomas
Zuletzt geändert von Mesquita am 29.01.2021 10:25:25, insgesamt 1-mal geändert.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: Installation von FPDF zur Erzeugung von PDF

Beitrag von eggy » 29.01.2021 10:09:30

Schön, dass sich das so schnell lösen lies, ich hatte schon schlimmeres befürchtet :mrgreen:
Du kannst übrigens Dein oberstes Posting editieren und ein "[geloest]" oder sowas in den Threadtitel einfügen. Hilft anderen Suchenden

Antworten