Support » Allgemeine Fragen » tcpdf – Dateien sind beschädigt

  • Hallo zusammen,
    ich weiß, dass ich immernoch nicht im Entwicklerforum schreibe, aber in den anderen Foren komme ich einfach nciht mehr weiter. Ich hoffe, dass ihr noch ein letztes Mal so lieb seid und mir nochmal einen Tipp gebt:
    Meine letzte Funktion, die ich in dem Plugin benötige, ist das automatische Erstellen von PDF-Datein. Dafür würde ich gerne tcpdf benutzen, allerdings sind die Dateien, die ich damit erstelle immer beschädigt. Wenn ich aber die Dateien mit einem Online Tool reparieren lasse, kann ich sie danach ganz normal öffnen.
    Gleich vorne weg: Kein Beispiel, das ich im Internet gefunden habe, funktioniert ohne den Schritt mit der Reperatur im Internet. Trotzdem einmal hier eines der vielen Beispiele, die ich versucht habe: https://www.php-einfach.de/experte/php-codebeispiele/pdf-per-php-erstellen-pdf-rechnung/ (das Tutorial) und hier das Repository auf GitUub: https://github.com/PHP-Einfach/pdf-rechnung

    Dann habe ich mir gedacht, dass es vielleicht an meinem Thema liegt (Pen). Also habe ich eine neue lokale WordPress Installation angefertigt und es mit dem Twenty-Seventeen Theme probiert. Hier bekomme ich nichteinmal die Datei zum Download angeboten. Aber dieses mal wird mir folgendes angezeigt: TCPDF error: Some data has already been output, can’t send PDF file
    Ich habe bereits probiert, wie hier beschrieben https://www.drupal.org/project/print/issues/283950, mit ob_clean(), ob_start(), ?> weglsassen usw, mein Problem zu lösen. Aber das Problem blieb mir treu.

    Vielleicht hat ja jemand eine Idee!?
    Vielen Dank!

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 16)
  • Also, ich habe TCPDF auch schon häufiger benutzt und kann dir sagen, dass das verlinkte Beispiel bei mir problemlos funktioniert. Was ich mir vorstellen könnte, dass du das PHP-Script im UTF-8 Format mit BOM gespeichert hast, das führt dann zu Problemen.

    Thread-Starter christian712

    (@christian712)

    @bscu Woran erkenne ich, ob ich das Skript im UTF-8 Format mit BOM gespeichert habe?

    Hallo,
    wenn du das kostenlose Programm notepad++ einsetzt, kannst du das unter „Kodierung“ sehen:
    BOM.
    Viele Grüße
    Hans-Gerd

    Thread-Starter christian712

    (@christian712)

    Super, Danke für die Hilfe! Jetzt klappts!

    • Diese Antwort wurde geändert vor 2 Jahren, 9 Monaten von christian712.
    Thread-Starter christian712

    (@christian712)

    Hallo zusammen,
    mein Plugin ist jetzt fertig und ich habe es auf meinen echten Server geladen. Die generierten PDF Dateien sind nach wie vor nur im Firefox auf meinem Tablat öffnen. In Edge oder in einer anderen Firefox – Version oder in der Google Drive App oder im Adobe Reader lässt sich die Datei nicht öffnen. Kodierung der php habe ich überprüft.
    Die PDF Datei habe ich hochgeladen (https://fimint-online.de/wp-content/uploads/2021/06/Abrechnung_Real_Life_Crime_Game_19.06.2021.pdf).
    Ich habe echt keine Idee mehr, wie ich das Problem lösen kann. Kann mir jemand helfen?

    Woher sollen wir wissen, was du programmiert hast? 😀

    Gibt es ein GitHub Repository, wo wir uns den Code anschauen können?

    Thread-Starter christian712

    (@christian712)

    Hi,
    jetzt gibts ein Repository 🙂 :
    https://github.com/Christian34190/Lizenzcodes_RLCG

    Es geht um Verkaufsstellenabrechnung.php

    • Diese Antwort wurde geändert vor 2 Jahren, 9 Monaten von christian712.

    Das ist … komplex. 🙂

    Vielleicht mag @bscu noch was dazu schreiben („ich habe TCPDF auch schon häufiger benutzt“), aber ansonsten sprengt das zumindest für mich den Zeitrahmen eines kostenlosen Anwender-Supports.

    Das Repository läd ohne Readme-Datei, mit kuriosen Dateinamen (Großschreibung, Leerzeichen im Dateinamen, Umlaute), auskommentierten Code-Fragmenten, nicht eingehaltenen Coding Standards, wenig Kommentaren usw. auch nicht gerade zum Durchschauen ein. Ich wünsche aber viel Erfolg bei dem Projekt.

    @pixolin schrieb

    Großschreibung, Leerzeichen im Dateinamen, Umlaute

    Alleine das ist schon ein KO-Kriterium. Und Quellcodes ohne brauchbare Kommentare sind auch nicht besser. Als Programmierer weißt du heute noch, was du da geschrieben hast. Aber wenn du in 1 oder 2 Jahren was anpassen willst, stehst du erst mal auf dem Schlauch.

    ansonsten sprengt das zumindest für mich den Zeitrahmen eines kostenlosen Anwender-Supports.

    Sehe ich auch so.

    Aber noch ein Tipp: hast du alle Dateien überprüft, dass kein Leerzeichen oder Leerzeile vor <?php steht? Das gleiche gilt auch für ?>, dann allerdings dahinter.

    Thread-Starter christian712

    (@christian712)

    Hallo,
    das kann ich nachvollziehen. Ich habe das Projekt nochmals genau durchgeschaut und keinen Fehler mehr gefunden. Danke nochmals für den Tipp. Daraufhin habe ich versucht, das Beispiel von oben (https://www.php-einfach.de/experte/php-codebeispiele/pdf-per-php-erstellen-pdf-rechnung/) nochmals in ein eigenes Plugin zu packen. Das ist eine Repository mit nur zwei Dateien (https://github.com/Christian34190/tcpdfproblem).

    Der Shortcode pdf2 weist auf die Datei rechnungmuster.php die Methode pdf2. Damit habe ich das ganze nochmals getestet, aber der Fehler blieb. Ich habe auch alle anderen Plugins deaktiviert und nur dieses Testplugin aktiviert. Auch hier blieb der Fehler bestehen.

    Könnt ihr mir noch einen Tipp geben?

    Viele Grüße
    Christian

    • Diese Antwort wurde geändert vor 2 Jahren, 9 Monaten von christian712.

    Dein Problem wird sein, dass du beim Erstellen des PDF irgend wo etwas ausgibst. Da FF einen eingebauten PDF-Reader hat, der auf JS basiert, kann es deswegen zu Problemen kommen. Also beim Auslesen und Anzeigen des PDF.

    Da musst du durch deinen Code gehen und Schritt für Schritt schauen, wo der Fehler auftritt.

    Thread-Starter christian712

    (@christian712)

    Hallo,
    vielen Dank für den Tipp! Habe den kompletten Code auf Ausgaben untersucht und leider wieder nichts gefunden. Die erste Ausgabe ist die der PDF – Datei. Und in Firefox klappt nur in edge und Adobe Reader sowie Googele Pdf Viewer tritt das Problem auf.

    Wie gesagt, versuche weniger Teile des PDF auszugeben und dann Schritt für Schritt durchzugehen, wo es zu den Problemen kommt.
    Und schau mal in den Server-Logs nach – vl wird ja ein Fehler geworfen!

    Thread-Starter christian712

    (@christian712)

    Hi,
    ja, ich habe versucht nochmals alles einzeln durchzugehen. Nihctmal ein leeres PDF Dokument lässt sich außer in einer Firefoxinstallation nicht öffnen. Danach habe ich das erste Beispiel von tcpdf genommen https://tcpdf.org/examples/example_001/

    Auch hier der gleiche Fehler. Dann habe ich nochmals versucht tcpdf herunterzuladen. Fehler auch noch da.
    In der Edge Konsole konnte ich folgende Fehlermeldung (6mal) finden: crbug/1173575, non-JS module files deprecated.
    (anonymous) @ promise_resolver.js:84

    Kann damit aber nichts anfangen.

    Du solltest dich an ein anderes Forum wenden, in dem es speziell um TCPDF geht. Hier bist du ja eigentlich von Anfang an falsch. Und wenn das Beispiel schon nicht funktioniert, dann ist das garantiert kein WordPress-Problem.

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 16)
  • Das Thema „tcpdf – Dateien sind beschädigt“ ist für neue Antworten geschlossen.