WernerK: FPDF Probleme mit franz. ’

Hallo

ich schreibe mit FPDF einen dynamsichen Text aus einer SQL Datenbank auf ein PDF. Probleme machen noch die Französischen Sonderzeichen, speziell das ’ Der original Text lautet z.b.

Service d’urgence proche de vous:

Ohne utf8_decode sieht es so aus:

Service d’urgence proche de vous:

$pdf->Write(0, $Text);

Mit utf8_decode steht dann anstatt dem ´ ein Fragezeichen

Service d?urgence proche de vous:

$pdf->Write(0, utf8_decode($Text));

Was kann man denn noch tun? Bei den anderen franz. Sonderzeichen klappt es mit utf8_decode gut.

Gruss

Werner

  1. Lieber WernerK,

    Du brauchst eine neue Lösung, da FPDF kein UTF-8 unterstützt. Leider hatte ich noch nicht genügend Zeit, selbst eine zu finden, daher werde ich diesen Thread sehr interessiert mitverfolgen.

    Liebe Grüße

    Felix Riesterer

    1. Hallo Felix,

      ich habe es jetzt so hinbekommen:

      $Text = iconv('UTF-8', 'cp1252', $Text);

      So werden die Sonderzeichen korrekt dargestellt.

      Gruss

      Werner

      1. Auch wenn Du DIESES Problem durch den gezeigten Murks gerade so noch einmal lösen konntest, so ist FPDF aus dem von dedlfix genannten Grund nicht mehr das Mittel der Wahl.

        1. Danke dir für deine freundliche Antwort.

          Dann schlage doch eine bessere Alternative vor, wenn du eine kennst?

          Gruss werner

          1. Hallo WernerK,

            Dann schlage doch eine bessere Alternative vor, wenn du eine kennst?

            Besser ist auch immer eine Betrachtungsfrage.

            Ich persönlich bin seit längerem auf wkhtmltopdf umgestiegen – wirklich zufrieden bin ich damit nicht, aber es funktioniert gut genug.

            LG,
            CK

          2. wkhtml https://wkhtmltopdf.org/ wurde vorgeschlagen. Ich nehme texlive https://wiki.debian.org/de/Latex. Beide (wkhtml, texlive-*) lassen sich unter gängigen Linux-Distributionen als Pakete installieren. TeX-Templates (Vorlagen mit Platzhaltern für die indiviuellen Daten) exportiere ich einfach aus LibreOffice.

            Bei beiden Varianten empfehle ich, die Paketinstallation des jeweiligen OS (Windows zähle ich hier nicht mit) zu nutzen. Grund: Updates.

            1. Tach!

              Bei beiden Varianten empfehle ich, die Paketinstallation des jeweiligen OS (Windows zähle ich hier nicht mit) zu nutzen. Grund: Updates.

              Aus ebendiesem Grund könnte man auch empfehlen, eine PHP-Paketverwaltung zu nehmen. Dort sind Updates in der Regel eher verfügbar, als sie ins Betriebssystem übernommen werden. Zudem ist man so nicht darauf angewiesen, dass das Betriebssystem speziell dieses Paket und in der benötigten Version mitbringt.

              dedlfix.

              1. Aus ebendiesem Grund könnte man auch empfehlen, eine PHP-Paketverwaltung zu nehmen.

                Nun, zumindest für Debian und dessen Derivate kann man wie folgt vorgehen:

                https://packages.sury.org/php/README.txt

                Möglicherweise muss man das $(lsb_release -sc) durch eine fixe Angabe ersetzen. Hinweise für andere Distributionen finden sich bei selbigen, Hier ein Beispiel für RedHat-artige:

                https://blog.remirepo.net/post/2018/12/10/Install-PHP-7.3-on-CentOS-RHEL-or-Fedora

                Dort sind Updates in der Regel eher verfügbar, als sie ins Betriebssystem übernommen werden.

                Das trifft für die alternativen Repos ebenso zu. Allerdings befürchte ich, dass in zahlreichen Fällen eine "betriebliche Regelung" die Auswahl auf die getesteten und überprüften Pakete der Original-Repos oder, mit guter Begründung, sogar gar auf eigene Repos beschränkt.

                Die Anzahl der Update-Pfade und -Methoden zu vervielfältigen und dann auch alle zu nutzen hält man wohl eher nur auf Testsystemen durch. Die Jungs, die Windows administrieren müssen, wissen was ich meine...

                1. Tach!

                  [Betriebssystemupdates]

                  Ich würde so vorgehen: PHP selbst muss in der notwendigen Form seitens des Systems oder über einen Zusatz (wie Remi bei Centos/RHEL oder Plesk) in der benötigten Version vorliegen.

                  Von der Anwendung benötigte Abhängigkeiten hingegen sind über die Paketverwaltung Composer bereitzustellen. Software hat mitunter bestimmte Versionen als Abhängigkeiten, die durch eine zentrale Installation nicht individuell gehalten werden können. Major-Updates mit funktionalen Änderungen sollten nicht über die Systemverwaltung eingespielt die Anwendungen beeinträchtigen können, solange man noch keine Zeit hatte, die notwendigen Anpassungen vorzunehmen.

                  Verwendet man den Composer, gibt man in einer Konfigurationsdatei an, was alles an Abhängigkeiten vorhanden ist. Man muss so auch nicht extra notieren, was man händisch installieren muss, sondern der Composer kümmert sich um die Auflösung der Abhängigkeiten und installiert die konkret benötigten Versionen.

                  dedlfix.

              2. wkhtml https://wkhtmltopdf.org/ wurde vorgeschlagen. Ich nehme texlive https://wiki.debian.org/de/Latex. Beide (wkhtml, texlive-*) lassen sich unter gängigen Linux-Distributionen als Pakete installieren. TeX-Templates (Vorlagen mit Platzhaltern für die indiviuellen Daten) exportiere ich einfach aus LibreOffice.

                Bei beiden Varianten empfehle ich, die Paketinstallation des jeweiligen OS (Windows zähle ich hier nicht mit) zu nutzen. Grund: Updates.

                Aus ebendiesem Grund könnte man auch empfehlen, eine PHP-Paketverwaltung zu nehmen.

                -1:

                Weder wkhtml noch texlive haben auch nur mit irgendeiner PHP-Paketverwaltung auch nur das Geringste zu tun.

                -1:

                Das haben - trotz der Links - gleich zwei übersehen. Ich hab gern geholfen. Aber der Tag an dem ich es satt hatte, dafür und auf solche Weise "angemacht" zu werden, ist erreicht.

                1. Hallo,

                  … auf solche Weise "angemacht" zu werden …

                  wo wurdest du angemacht? Das ist doch dein erster Beitrag bin diesem Thread.

                  Gruß
                  Jürgen

                  1. Frag doch den, der hier gerne mal Klarnamen reinschreibt.

                    Tschüss.

                    1. Hallo

                      Frag doch den, der hier gerne mal Klarnamen reinschreibt.

                      du willst also nur trollen.

                      Gruß
                      Jürgen

                      1. du willst also nur trollen.

                        Oder einfach eine Zicke. LOL

                        1. du willst also nur trollen.

                          Oder einfach eine Zicke. LOL

                          Oder jemand, der RICHTIG SAUER ist. Für's Trollen gibt es hier ja meistens mehrfach +1...

                          1. Hallo,

                            Oder jemand, der RICHTIG SAUER ist. Für's Trollen gibt es hier ja meistens mehrfach +1...

                            ein Geisterfahrer? Tausende!

                            Gruß
                            Kalk

                            1. ein Geisterfahrer? Tausende

                              Die Definition von Troll:

                              Als Troll bezeichnet man im Netzjargon eine Person, die ihre Kommunikation im Internet auf Beiträge beschränkt, die auf emotionale Provokation anderer Gesprächsteilnehmer zielen.

                              <Zynismus>Gut, dass Du und natürlich JürgenB in diesem Tread viel ersthaftes und hilfreiches beigetragen habt, welches nicht auf emotionale Provokation anderer Gesprächsteilnehmer zielte.</Zynismus> Es sind hier also vielleicht nicht Tausende sondern nur "eine Handvoll" Trolle unterwegs. Einige allerdings mit Administrationsrechten in diesem Forum.

                              Für's Trollen gibt es hier ja meistens mehrfach +1

                              Ich konkretisiere mal meine Aussage: Manchmal auch nur einmal.

                              Und Tschüss!

                              Einfache Antwort / Murksdetektor / Geisterfahrer

  2. Tach!

    speziell das ’

    Ohne utf8_decode sieht es so aus: Service d’urgence proche de vous:

    Also UTF-8 als ISO-8859-1 interpretiert.

    Mit utf8_decode steht dann anstatt dem ´ ein Fragezeichen

    ISO-8859-1 ist in seinem Zeichenvorrat sehr eingeschränkt. Als oben stehende Striche gibt es da nur diese drei: ´`' Zeichen, die nicht in ISO-8859-1 enthalten sind, werden beim Konvertieren durch ? ersetzt. Lösungen sind, sich auf die vorhandenen Zeichen zu beschränken, was typografisch nicht besonders gut aussieht, oder ein System zu verwenden, das mit Unicode umgehen kann, und eine von dessen Kodierungen verwendet, zum Beispiel UTF-8.

    Bei den anderen franz. Sonderzeichen klappt es mit utf8_decode gut.

    Die sind ja auch in ISO-8859-1 enthalten, außer Œ und œ. Wenn diese beiden Zeichen verwendbar sind, dann wird Windows-1252 statt ISO-8859-1 verwendet, das diese Zeichen in einem in ISO-8859-1 nicht verwendeten Bereich eingefügt hat.

    Apropos Win-1252, das bringt auch noch ‘ und ’ als Anführungszeichen mit. Allerdings ist utf8_decode() auf ISO-8859-1 beschränkt, und zum Konvertieren müsstest du auf Alternativen zugreifen.

    dedlfix.

  3. Hallihallo!

    Ich bin gerade etwas verwundert. Ich hatte vor einer gefühlten Ewigkeit genau die gleichen Probleme, nämlich die mangelnde Unterstützung von UTF-8.

    Auf meiner Suche nach Alternativen bin ich dann schnell auf TCPDF gestossen, was meine Wünsche vollauf erfüllt hat.

    Hat es einen bestimmten Grund, dass das hier Niemand als Alternative auch nur erwähnt?

    Beste Grüsse, Tobias Hahner

    1. Hallo Tobias,

      Auf meiner Suche nach Alternativen bin ich dann schnell auf TCPDF gestossen, was meine Wünsche vollauf erfüllt hat.

      Hat es einen bestimmten Grund, dass das hier Niemand als Alternative auch nur erwähnt?

      als jemand, der das Problem bisher noch nicht hatte, kann ich nur mutmaßen:
      Unkenntnis? Mängel deiner Alternative?

      Ciao,
       Martin

      --
      Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
      1. Hallihallo!

        Hat es einen bestimmten Grund, dass das hier Niemand als Alternative auch nur erwähnt?

        als jemand, der das Problem bisher noch nicht hatte, kann ich nur mutmaßen:
        Unkenntnis? Mängel deiner Alternative?

        Unkenntnis kann ich mir kaum vorstellen, bei der geballten Erfahrung hier im Forum. Mängel konnte ich bisher, bis auf den Einarbeitungsaufwand, auch noch nicht wirklich feststellen.

        Gerade deswegen frage ich mich gerade ernsthaft, ob ich da etwas übersehe?

        Oder anders gefragt: Jetzt, wo ICH die TCPDF Library in den Topf geworfen habe: Gibt es einen Grund, davon abzuraten? (Ernstgemeinte Frage. Bei guten Gründen würde ich mich ggf selber wieder nach Anderem umsehen)

        Beste Grüsse, Tobias Hahner

        1. Tach!

          Unkenntnis kann ich mir kaum vorstellen, bei der geballten Erfahrung hier im Forum.

          PDFs erstellen kommt bei mir nicht so häufig vor (konkret: einmal bisher), deswegen konnte ich zum Beispiel keine aktuellen Erfahrungswerte liefern, sondern nur allgmeines Blabla beisteuern.

          dedlfix.

          1. Aloha ;)

            PDFs erstellen kommt bei mir nicht so häufig vor (konkret: einmal bisher), deswegen konnte ich zum Beispiel keine aktuellen Erfahrungswerte liefern, sondern nur allgmeines Blabla beisteuern.

            Bei mir exakt die selbe Situation, und bei mir hat damals aufgrund des konkreten Anwendungsfalls FPDF ausgereicht.

            Grüße,

            RIDER

            --
            Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
            # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
          2. Hallo dedlfix,

            PDFs erstellen kommt bei mir nicht so häufig vor (konkret: einmal bisher)

            Du Glücklicher. Ich hab viel mit der Management-Riege von Kunden zu tun. Die lieben PDFs. Ich muss z.B. regelmässig Cronjobs schreiben, die jeden Abend einen Report in PDF-Form generieren und ihn dann via Mail verschicken.

            LG,
            CK

            1. Du Glücklicher. Ich hab viel mit der Management-Riege von Kunden zu tun. Die lieben PDFs. Ich muss z.B. regelmässig Cronjobs schreiben, die jeden Abend einen Report in PDF-Form generieren und ihn dann via Mail verschicken.

              Hast Du eventuell ein Beispiel-PDF zur Hand, wie das bei Dir ausschaut? Natürlich neutral mit Beispieldaten aus der Entwicklungsumgebung oder so. Würde mich interessieren :-)

              1. Hallo Mitleser,

                Hast Du eventuell ein Beispiel-PDF zur Hand, wie das bei Dir ausschaut? Natürlich neutral mit Beispieldaten aus der Entwicklungsumgebung oder so. Würde mich interessieren :-)

                Hm. Ich kann einen Screenshot veröffentlichen, wenn dir das ausreicht:

                Für die PDF hab ich gerade keinen Upload-Platz 😉

                LG,
                CK

                1. Hm. Ich kann einen Screenshot veröffentlichen, wenn dir das ausreicht: Für die PDF hab ich gerade keinen Upload-Platz 😉

                  Danke schön! Insbesondere interessiert hätten mich mehrseitige Dokument mit solchen Sauereien wie "Blöcke über Seiten zusammenhalten", Header/Footer...

                  Darauf hatte ich insgeheim durch den Begriff "Report" gehofft 😉

                  1. Hallo Mitleser,

                    Insbesondere interessiert hätten mich mehrseitige Dokument mit solchen Sauereien wie "Blöcke über Seiten zusammenhalten", Header/Footer...

                    Tut mir leid, aber die großen Reports entstehen nur im Produktiv-System. Meine Testdaten sind dafür zu wenig umfangreich. Und das zu anonymisieren ist mir zu viel Arbeit *duck*

                    Darauf hatte ich insgeheim durch den Begriff "Report" gehofft 😉

                    Es ist immer wieder ein Kampf… vor allem so Sachen wie wiederkehrende Header u.ä. bereiten mir immer wieder Kopfschmerzen.

                    LG,
                    CK

                    1. Hallo Christian Kruse,

                      Und das zu anonymisieren ist mir zu viel Arbeit *duck*

                      Ach, das ist doch baby-einfach.

                      *Doppel-🦆*

                      Bis demnächst
                      Matthias

                      --
                      Pantoffeltierchen haben keine Hobbys.
                      ¯\_(ツ)_/¯
                      1. Hallo,

                        Ach, das ist doch baby-einfach.

                        hast du das skaliert? Ich hab nicht den Eindruck, dass das mehrseitig wäre…
                        dreifach-ente

                        Gruß
                        Kalk

                        1. Aloha ;)

                          hast du das skaliert?

                          Ja. E-skaliert.

                          Grüße,

                          RIDER

                          --
                          Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
                          # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
                        2. Hi,

                          dreifach-ente

                          Das artet hier ja aus, die reine Barbarie ;-)

                          cu,
                          Andreas a/k/a MudGuard

                          1. Hallo MudGuard,

                            dreifach-ente

                            Das artet hier ja aus, die reine Barbarie ;-)

                            Was hat Barbie denn damit zu tun? Und wo ist Ken?

                            LG,
                            CK

                            1. Hi,

                              Das artet hier ja aus, die reine Barbarie ;-)

                              Was hat Barbie denn damit zu tun?

                              ein ar ;-)

                              Und wo ist Ken?

                              in Kenada?

                              cu,
                              Andreas a/k/a MudGuard

                              1. Hallo,

                                Und wo ist Ken?

                                in Kenada?

                                nee, da is's keena da.

                                Ciao,
                                 Martin

                                --
                                Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
                      2. Hallo Matthias,

                        Und das zu anonymisieren ist mir zu viel Arbeit *duck*

                        Ach, das ist doch baby-einfach.

                        😂 made my day

                        LG,
                        CK

        2. Hallo derdicki,

          Unkenntnis kann ich mir kaum vorstellen, bei der geballten Erfahrung hier im Forum.

          Ich nutze kein PHP mehr, ich kenne die Lib also nicht. In anderen Umgebungen (hauptsächlich Rails und Elixir) nutze ich wkhtmltopdf, von daher der Hinweis darauf.

          LG,
          CK

    2. Lieber derdicki,

      Hat es einen bestimmten Grund, dass das hier Niemand als Alternative auch nur erwähnt?

      ich benutze FPDI, weil ich vorhandene PDF-Dateien als Vorlagen nutzen und mit FPDF erweitern will. Dazu benötige ich FPDI. Anscheinend gibt es da eine Version 2.0 oder so, mit der UTF-8 auch unterstützt wird. Da ich aber auch Bilder in das PDF einbinden können will, muss ich mir das erst alles noch sehr genau anschauen, inwiefern ich es in mein bestehendes Projekt integrieren kann, um FPDI damit zu ersetzen.

      Liebe Grüße

      Felix Riesterer

  4. Lieber WernerK,

    Service d’urgence proche de vous:

    Ohne utf8_decode sieht es so aus:

    Service d’urgence proche de vous:

    ich bin auf TCPDF umgestiegen. Wenn man eine passende Schriftart aussucht (z.B. FreeSans oder FreeSerif), dann können diese Zeichen korrekt dargestellt werden.

    Deine Lösung mit dem Konvertieren von UTF-8 nach ISO-irgendwas hat Grenzen. Das haben die Schriftarten auch, aber bis Du an diese stößt, ist Dein Problem längst gelöst.

    Liebe Grüße

    Felix Riesterer