Henry: PDF_create_annotation Erfahrungswerte Wasserzeichen

problematische Seite

Hallo,

ich suche nach einer Möglichkeit vorhandene PDF-Dokumente zu modifizieren, genauer ein Watermark in Form eines individueleln Codes/Anmerkung einzufügen. Eine Seite des PDF reicht mir dafür. So bin ich auf PDF_create_annotation gekommen. Doch leider bietet das Manual, im Vergleich zu sonst, keine echte Hilfestellung. Weder Erklärung der Optionen, noch Beispiele. Auch im Netz bisher nichts brauchbares gefunden. Daher... hat jemand von euch Erfahrung damit oder auch mit einem anderen Weg zu meinem Ziel? Vielleicht sollte ich noch erwähnen, dass die PDF von mir relativ groß sind, daher eine Methode benötigen die serverschonend sind.

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
  1. problematische Seite

    Lieber Henry,

    ich suche nach einer Möglichkeit vorhandene PDF-Dokumente zu modifizieren,

    mit fpdi kann man vorhandene PDF-Dokumente als Vorlage einbinden. Mit dem Ergebnis kannst Du dann tun und lassen, was Du willst.

    genauer ein Watermark in Form eines individueleln Codes/Anmerkung einzufügen.

    Man kann fpdi zusammen mit tcpdf nutzen und hat dann nicht nur die Möglichkeit mit den vorhandenen PDF-Dokumenten als Vorlagen, sondern alle Funktionalitäten, die tcpdf eben so bietet.

    Liebe Grüße

    Felix Riesterer

    1. problematische Seite

      Hallo Felix,

      ja danke, das hatte ich mir schon mal vor längerer Zeit angeschaut. Schien mir aber damals schon zu komplex und hoffte nun, dass dies was ich vorhabe auch mit PHP-Boardmitteln zu erreichen wäre. Im Grund würde es mir reichen, wenn ich entweder eine Seite des Pdf mit einer kaum sichbaren Seriennummer versehen kann oder, falls das zu serverlastig wird, vielleicht auch nur die Eigenschaften/PDF-Infos des Dokumentes ändern könnte (so dass der Server eben das Dokument nicht komplett einlesen muss). Insgesamt also eine Quick&Run Funktion, ohne erst verschiedene Bibliotheken zu integrieren. Und, der Name diese Funktion hier lässt ja hoffen, dass es machbar wäre, nur leider finde ich nichts dazu.

      Gruss
      Henry

      --
      Meine Meinung zu DSGVO & Co:
      „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
      1. problematische Seite

        Lieber Henry,

        Schien mir aber damals schon zu komplex

        einbinden und nutzen. Vor allem dann gut, wenn man sich nicht darauf verlassen kann, dass die PDF-Funktionen von PHP verfügbar sind - oder deren Funktionalität gewisse Features nicht von Haus aus anbieten.

        mit PHP-Boardmitteln zu erreichen

        Jeder ist seines Glückes Schmied. Oder seiner Hölle Architekt. Ganz wie belieben.

        mit einer kaum sichbaren Seriennummer versehen kann

        Als sehr helles Grau in Textform hineingeschrieben? Oder als Bild eingefügt? Was genau willst Du auf der technischen Ebene denn nun haben?

        falls das zu serverlastig wird

        Wieviele PDF werden denn pro Sekunde bearbeitet? Machst Du Dir vielleicht an der falschen Stelle zu viele Gedanken?

        vielleicht auch nur die Eigenschaften/PDF-Infos des Dokumentes ändern

        Ja, was denn nun? Kannst Du Dich hier endlich festlegen?

        (so dass der Server eben das Dokument nicht komplett einlesen muss).

        Wie eine Bibliothek damit umgeht, ob sie alles in den Speicher lädt, oder in serialisierter Form in temporäre Dateien schreibt, kann Dir doch letztlich egal sein! Genau dafür nutzt man ja eine solche, um sich darüber eben keine Gedanken mehr machen zu müssen. Wenn Du aber unter "not invented here" leidest, dann nimm halt die PHP-eigenen PDF-Funktionen...

        nur leider finde ich nichts dazu.

        Das wäre ein Grund, sich darüber klar zu werden, was Du genau an Deinen PDF verändern willst. Wenn das wirklich klar ist, dann kann man nach Funktionen und/oder passenden Bibliotheken Ausschau halten.

        Liebe Grüße

        Felix Riesterer

        1. problematische Seite

          Hallo Felix,

          Schien mir aber damals schon zu komplex

          einbinden und nutzen.

          Mag für dich vielleicht einfach sein, aber weder für mich noch für wahrscheinlich viele andere, die eine ähnliche Thematik verfolgen. Es fängt schon damit an, dass nicht nur dieses Programm installiert werden muss, sondern auch noch zb. FPDF. Die Doku zur Installation ist alles andere als leicht verständlich und nachvollziehbar. Wie das eben oft so ist, wenn Experten etwas schreiben und von gleichen Wissensstand des Lesers ausgehen.

          mit PHP-Boardmitteln zu erreichen

          Jeder ist seines Glückes Schmied. Oder seiner Hölle Architekt. Ganz wie belieben.

          Du bist also sicher, dass die PHP-Boardmittel nicht dafür geeignet sind.

          mit einer kaum sichbaren Seriennummer versehen kann

          Als sehr helles Grau in Textform hineingeschrieben? Oder als Bild eingefügt? Was genau willst Du auf der technischen Ebene denn nun haben?

          Ich denke mich da verständlich ausgedrückt zu haben.

          falls das zu serverlastig wird

          Wieviele PDF werden denn pro Sekunde bearbeitet? Machst Du Dir vielleicht an der falschen Stelle zu viele Gedanken?

          Aktuell ein paar tausend. Nicht pro Sekunde, insgesamt, aber in einem kleinen Zeitrahmen und jedes einzelne PDF über 50MB groß.

          vielleicht auch nur die Eigenschaften/PDF-Infos des Dokumentes ändern

          Ja, was denn nun? Kannst Du Dich hier endlich festlegen?

          Hast du mein Anliegen wirklich durchgelesen? Wenn ja, frage ich mich wieso so gefrustet. Ich habe klar gesagt was ich möchte. Eine Art Fingerprint, individuell für jedes einzelne PDF-Dokument. Das kann ein Bild sein, ein Text zb. Seriennummer, was auch immer, dezent auf irgendeiner Seite. Oder eben, dazu komme ich jetzt...

          (so dass der Server eben das Dokument nicht komplett einlesen muss).

          Wie eine Bibliothek damit umgeht, ob sie alles in den Speicher lädt, oder in serialisierter Form in temporäre Dateien schreibt, kann Dir doch letztlich egal sein! Genau dafür nutzt man ja eine solche, um sich darüber eben keine Gedanken mehr machen zu müssen. Wenn Du aber unter "not invented here" leidest, dann nimm halt die PHP-eigenen PDF-Funktionen...

          kann mir das nicht egal sein. Wenn ich eine hohe Serverlast erwarte, suche ich der schonendsten Möglichkeit. Daher der Gedanke, dass vielleicht PHP mit Metaangaben/Eigenschaften des Dokuments anders umgeht.

          nur leider finde ich nichts dazu.

          Das wäre ein Grund, sich darüber klar zu werden, was Du genau an Deinen PDF verändern willst. Wenn das wirklich klar ist, dann kann man nach Funktionen und/oder passenden Bibliotheken Ausschau halten.

          Ich glaube mein Anliegen war weitaus verständlicher als die Doku zu deinem Programm. Nebenbei, dein frustbehafteter Subtext "Nimm oder lass es", finde ich seltsam.

          Gruss
          Henry

          --
          Meine Meinung zu DSGVO & Co:
          „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
          1. problematische Seite

            Lieber Henry,

            Mag für dich vielleicht einfach sein, aber weder für mich noch für wahrscheinlich viele andere, die eine ähnliche Thematik verfolgen. Es fängt schon damit an, dass nicht nur dieses Programm installiert werden muss, sondern auch noch zb. FPDF.

            ich schrieb aus eigener Erfahrung, dass Du FPDI zusammen mit TCPDF (und sicher nicht FPDF, denn das kann kein UTF-8!) nutzen solltest. Ich habe damit sehr gute Erfahrungen gemacht.

            Die Doku zur Installation ist alles andere als leicht verständlich und nachvollziehbar.

            OK. Hier die notwendigen Einstellungen für den Composer:

            {
              "require" : {
                "setasign/fpdi-tcpdf": "2.*"
              }
            }
            

            Du bist also sicher, dass die PHP-Boardmittel nicht dafür geeignet sind.

            Nein, natürlich nicht. Aber ich bin mir sicher, dass Du mit ein bisschen Einarbeitung in die bequemen Funktionen von TCPDF schnell eine Lösung finden wirst, wie Du eine Bilddatei in ein Dokument schreiben kannst, oder alternativ einen Text mit sehr heller Textfarbe. Mit FPDI lädst Du das eigentliche PDF-Dokument als Vorlage. Keine Ahnung, ob letzteres mit den Bordmitteln von PHP überhaupt möglich ist...

            Ich denke mich da verständlich ausgedrückt zu haben.

            Deine Formulierungen klangen so, als suchtest Du noch nach einer konkreten Vorgehensweise. Ein Bild einzubinden ist etwas völlig anderes, als zusätzlichen Text in das PDF zu schreiben. Aber egal.

            Aktuell ein paar tausend. Nicht pro Sekunde, insgesamt, aber in einem kleinen Zeitrahmen und jedes einzelne PDF über 50MB groß.

            Teste auf Deinem Entwicklungssystem. Miss die Belastung und entscheide dann, ob es für das Produktivsystem geeignet ist. Das kann Dir keine im Vorfeld garantieren.

            Hast du mein Anliegen wirklich durchgelesen? Wenn ja, frage ich mich wieso so gefrustet. Ich habe klar gesagt was ich möchte.

            Wie Du meinst. Probiere halt alles aus. Sowohl Text-hinein-schreiben als auch Bild-einfügen. Wenn Du messen kannst, was länger dauert oder mehr RAM benötigt, kannst Du entscheiden, was für Dein Produktivsystem infrage kommt.

            kann mir das nicht egal sein. Wenn ich eine hohe Serverlast erwarte, suche ich der schonendsten Möglichkeit. Daher der Gedanke, dass vielleicht PHP mit Metaangaben/Eigenschaften des Dokuments anders umgeht.

            Dann ist doch die Idee mit dem Testen die beste. Da bekommst Du verlässliche Messwerte.

            Nebenbei, dein frustbehafteter Subtext "Nimm oder lass es", finde ich seltsam.

            Interessant, dass meine Schreibe Frust kommuniziert hat. Es war eher Unverständnis ob Deiner von mir so wahrgenommenen Unentschlossenheit.

            Liebe Grüße

            Felix Riesterer

            1. problematische Seite

              Hallo Felix,

              ich schrieb aus eigener Erfahrung, dass Du FPDI zusammen mit TCPDF (und sicher nicht FPDF, denn das kann kein UTF-8!) nutzen solltest. Ich habe damit sehr gute Erfahrungen gemacht.

              Die guten Erfahrungen glaube ich dir gerne. Nur leider ist der Start dahin unwegsam. Ob jetzt TCPDF oder FPDF, irgendwas muss dazu genommen werden, wenn ich das richtig verstehe:

              For sure FPDI requires an installation of FPDF, TCPDF or tFPDF, too. The documentation applies to the latest versions of all involved classes.

              Die Doku zur Installation ist alles andere als leicht verständlich und nachvollziehbar.

              OK. Hier die notwendigen Einstellungen für den Composer:

              {
                "require" : {
                  "setasign/fpdi-tcpdf": "2.*"
                }
              }
              

              Das soll es jetzt einfacher machen? Im Ernst, du bist doch Lehrer, stell dir mal vor du sollst einem Drittklässler Stochastik nahebringen. Da fängst du auch nicht mit komplexen Formeln an und genau das ist das hier für mich. Ich habe Composer noch nie genutzt oder mich damit auseinandergesetzt, weil sowas nicht auf jedem Webspace installierbar wäre (soweit ich weiß) Davon abgesehen, schrecken hier wahrscheinlich schon viele Leser auf, wenn sie nur das Wort Kommandozeile lesen, wenn nicht bereits die englische Fachsprache schon eine Flucht verursacht hat.

              Ich weiß nicht ob es eine andere Möglichkeit gibt das Programm einzubinden? Also download -> upload zum Webspace -> einbinden im Script -> Funktion ausführen. Also ähnlich wie (früher zumindest) FPDF.

              Deine Formulierungen klangen so, als suchtest Du noch nach einer konkreten Vorgehensweise. Ein Bild einzubinden ist etwas völlig anderes, als zusätzlichen Text in das PDF zu schreiben. Aber egal.

              Hatte nie von einem Bild geschrieben.

              Teste auf Deinem Entwicklungssystem. Miss die Belastung und entscheide dann, ob es für das Produktivsystem geeignet ist. Das kann Dir keine im Vorfeld garantieren.

              Klar, so würde ich das machen. Nur müsste ich dazu zunächst mal eine Möglichkeit finden wie das überhaupt zu machen wäre.

              Nebenbei, dein frustbehafteter Subtext "Nimm oder lass es", finde ich seltsam.

              Interessant, dass meine Schreibe Frust kommuniziert hat. Es war eher Unverständnis ob Deiner von mir so wahrgenommenen Unentschlossenheit.

              Na komm, nach Unverständnis klang das hier aber nicht:

              Wenn Du aber unter "not invented here" leidest, dann nimm halt die PHP-eigenen PDF-Funktionen...

              Jeder ist seines Glückes Schmied. Oder seiner Hölle Architekt. Ganz wie belieben.

              Gruss
              Henry

              --
              Meine Meinung zu DSGVO & Co:
              „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
              1. problematische Seite

                Hallo Henry,

                Hatte nie von einem Bild geschrieben.

                Naja, so gar nicht nie, stimmt ja auch nicht:

                Eine Art Fingerprint, individuell für jedes einzelne PDF-Dokument. Das kann ein Bild sein, ein Text zb. Seriennummer, was auch immer,

                Bis demnächst
                Matthias

                --
                Pantoffeltierchen haben keine Hobbys.
                ¯\_(ツ)_/¯
              2. problematische Seite

                Hallo Henry,

                Ich weiß nicht ob es eine andere Möglichkeit gibt das Programm einzubinden? Also download -> upload zum Webspace -> einbinden im Script -> Funktion ausführen. Also ähnlich wie (früher zumindest) FPDF.

                Und das scheint tatsächlich möglich zu sein:

                https://rubayeet.wordpress.com/2010/02/05/modifying-pdf-files-with-php/

                Doch im Gegensatz zu den Kommentaren dort, gelingt es mir nicht das zum Laufen zu bringen. Erhalte dann Fehler wie: Parse error: syntax error, unexpected 'new' (T_NEW) in bei exakt dem Beispiel was er da präsentiert.

                Kann doch nicht so kompliziert sein?

                Gruss
                Henry

                --
                Meine Meinung zu DSGVO & Co:
                „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
                1. problematische Seite

                  Hallo Henry,

                  https://rubayeet.wordpress.com/2010/02/05/modifying-pdf-files-with-php/

                  Doch im Gegensatz zu den Kommentaren dort, gelingt es mir nicht das zum Laufen zu bringen. Erhalte dann Fehler wie: Parse error: syntax error, unexpected 'new' (T_NEW) in bei exakt dem Beispiel was er da präsentiert.

                  =& new gibt es nicht mehr, siehe https://www.php.net/manual/de/migration70.incompatible.php. Einfach das & weglassen.

                  LG,
                  CK

                  1. problematische Seite

                    Hallo Christian,

                    =& new gibt es nicht mehr, siehe https://www.php.net/manual/de/migration70.incompatible.php. Einfach das & weglassen.

                    Ja danke, das hatte ich auch schon probiert. Dann kommt:
                    Fatal error: Uncaught Error: Class 'setasign\Fpdi\FpdfTpl

                    Auch schon probiert die autoload.php zu includieren, geht auch nicht.

                    Ich vermute mal, dass die Anleitung schon älter ist und nicht mit neueren Versionen der Scripts zurecht kommt.

                    Gruss
                    Henry

                    --
                    Meine Meinung zu DSGVO & Co:
                    „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“