PDF Templates

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PDF Templates

    Hi,

    also, ein neues Thema, zu dem ich im Forum noch gar nichts gelesen habe, aber bei mir ist es nun aktuell, und ich weiß net so recht weiter:

    Es geht um PDF als Template in Verbindung mit PHP. Der Einsatzzweck ist eine Rechnungsverwaltung, bei der die Rechnungen dynamisch aus vorgefertigten Template PDF Vorlagen erstellt werden sollen. Also ich mach quasi die Templates zB mit Adobe Indesign und lade sie auf den Server, und dort wird dann noch an die Stelle der Platzhalter der Text eingefügt.....eigentlich müßte das auch klappen, aber die PDFs sind ja 1. binary und zweitens sind die auch noch komprimiert oder verschlüsselt oder so.....

    Naja, ich hab eben rumgewurschtelt ohne Ende, krieg es aber net hin.....weiß einer weiter? Ansonsten müßte ich es mit der Erstellung des PDFs in PHP selber versuchen, aber das würde ca. 20 Mal so lange dauern, und bedeutet auch bei der Pflege viel mehr Aufwand....

    - Christopher
    http://www.freehost-script.com

    Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

  • #2
    *schieb*

    Muss doch einer hier sein, der sowas schonmal gemacht hat....oder?!!
    http://www.freehost-script.com

    Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

    Kommentar


    • #3
      Vielleicht ist das für dich interessant oder einfacher. -->

      http://www.rustyparts.com/pdf.php

      Außerdem solltest du die Suchfunktion benutzen. Mit dem Suchwort "pdf" erreichst du dort über 4 Seiten.

      Gruß
      Minzi

      Kommentar


      • #4
        Eine direkte Antwort kann ich dafür leider auch nicht liefern, jedoch einen Vorschlag. Vielleicht bringt es ja etwas, wenn man den Quellcode einer freien Klasse durchforstet und schaut, wie dort die PDF-Datei generiert wird. Diesen Algorithmus müsste man dann praktisch umkehren um den für die Verarbeitung des Inhaltes zu gewinnen. Dann werden normal die Platzhalter bearbeitet und die Verarbeitung geht wieder rückwärts.

        Eine allgemeingültige Lösung wäre natürlich auch nicht schlecht.
        Contentpapst 3.1 - Der Preisbrecher unter den Content-Management-Systemen
        www.contentpapst.de / WYSIWYG-Editor, Rechtesystem, eigene Module per GUI... // Demoversion
        [color=red]Ab sofort in Version 3.1![/color] / dazu auch Standalone Shop-System CP::Shop uvm.

        Kommentar


        • #5
          Die Frage wäre einfach ob PHP Funktionen besitzt oder ob es Klassen gibt, mit denen ich fertige Templates auslesen lassen kann, Sachen ändern kann und diese dann nachher verändert ausgeben lassen kann....
          http://www.freehost-script.com

          Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

          Kommentar


          • #6
            Ich habe etwas gefunden, wie es eventuell gehen könnte:

            http://www.dclp-faq.de/q/q-pdf-files-template.html

            Nur stellt sich mir jetzt die Frage, wie ich die PDF Dateien so erstelle, das sie auch so funktionieren, sie dürfen also nicht optimiert oder verschlüsselt sein, weiß einer wie das geht?
            http://www.freehost-script.com

            Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

            Kommentar


            • #7
              hi !!

              ich habe exakt für dieses problem (rechnungssystem) auch die rechnungsausgabe (um die rechnung auszudrucken) in einer pdf datei ausgeben lassen !!
              zuerst wollte ich auch ein template erstellen, und dann die einzelnen daten eintragen !! ich habe mich jedoch umentschieden und die komplette rechnung mit php erzeugen lassen, denn wenn irgendwann mal was geändert werden soll (z.b. logo an anderen platz setzen) muss ich nur in der php datei paar zahlen oder so ändern !! anderst müsste ich wieder ein komplett neues template in pdf erstellen !! die programmierung in php war auch nicht zu komplex !! überlege dir noch mal ob du es nicht lieber so machst !!

              wenn du es doch mit template machen willst:

              PHP-Code:
              #PHP: script liest pdf-datei ein und nutzt diese als template zur erstellung einer neuen seite
              #FTPSOURCE:PDFReport.zip

              <?php

              function textOut($size$x$y$text)
              # parameter: schriftgroesse in mm, xpos, ypos in mm (0,0 ist links unten), text
              {
                global 
              $pdf$font;
                
                
              PDF_save($pdf);
                
              PDF_translate($pdf$x$y);
                
              PDF_setfont($pdf$font$size);
                  
              PDF_set_text_pos($pdf00);
                  
              PDF_show($pdf$text);
                
              PDF_restore($pdf);
              }

              function 
              textOutVert($size$x$y$text$grad)
              # parameter: schriftgroesse in mm, xpos, ypos in mm (0,0 ist links unten), text, gedreht in grad (0-360)
              {
                global 
              $pdf$font;
                
                
              PDF_save($pdf);
                
              PDF_translate($pdf$x$y);
                
              PDF_rotate($pdf$grad);
                
              PDF_setfont($pdf$font$size);
                  
              PDF_set_text_pos($pdf00);
                  
              PDF_show($pdf$text);
                
              PDF_restore($pdf);
              }

              function 
              setCheckbox($size$x$y$width)
              # parameter: groesse in mm, xpos, ypos in mm (0,0 ist links unten), liniendicke in mm
              {
                global 
              $pdf$font;
                
                
              PDF_save($pdf);
                
              PDF_setlinewidth($pdf$width);
                
              PDF_moveto($pdf$x$y);
                
              PDF_lineto($pdf$x $size$y $size);
                
              PDF_moveto($pdf$x$y $size);
                
              PDF_lineto($pdf$x $size$y);
                
              PDF_stroke($pdf);
                
              PDF_restore($pdf);
              }

              #################################

              #pdf initialisieren
                  
              $pdf PDF_new();
                if (!
              pdf_open_file($pdf"")) {
                    print 
              error;
                    exit;
                };

                  
              PDF_set_parameter($pdf"serial""xxxxxx-xxxxxx-xxxxxx-xxxxxx");
                  
              PDF_set_parameter($pdf"warning""true");

                  
              PDF_set_parameter($pdf"resourcefile""c:\php\fonts\pdflib.upr");
                  
              PDF_set_parameter($pdf"prefix""c:\php\fonts");

              #neues dokument initialisieren
                  
              PDF_set_info($pdf"Creator""test.php");
                  
              PDF_set_info($pdf"Author""jupp zupp");
                  
              PDF_set_info($pdf"Title""php/pdf test");

              #open existing pdf file
                
              $pdi pdf_open_pdi($pdf"C:\askdata_100502\FIT-Software.pdf"""0);
                
              $page pdf_open_pdi_page($pdf$pdi1"");
                
              #neue seite initialisieren
                  
              PDF_begin_page($pdf595842); #din a4 quer

              #existierende seite als template einfügen
                
              pdf_place_pdi_page($pdf$page0.00.01.01.0);
                
              pdf_close_pdi_page($pdf$page);
                
              #metrisches koordinatensystem in cm
                
              PDF_scale($pdf2.834652.83465);

              #texte
                  
              $font PDF_findfont($pdf"Helvetica-Bold""winansi"0);
                for (
              $i=1$i<10$i++)
                {
                  
              PDF_setfont($pdf$font$i);
                    
              PDF_set_text_pos($pdf$i*10$i*10);
                    
              PDF_show($pdf"text $i$i*10,$i*10");
                }

              #koorinatennetz drucken
                
              PDF_setlinewidth($pdf0.1);
                for (
              $i=0$i<20$i++)
                {
                  
              pdf_moveto($pdf$i 100);
                  
              pdf_lineto($pdf$i 10250);
                  
              pdf_moveto($pdf0,  $i 10);
                  
              pdf_lineto($pdf250$i 10);
                  
              pdf_stroke($pdf);
                }

              #alles aufräumen und abschliessen
                  
              PDF_end_page($pdf);

                  
              PDF_close($pdf);

              #pdf-datei zurückgeben
                  
              $buf PDF_get_buffer($pdf);
                  
              $len strlen($buf);

                
              #reihenfolge ist wichtig!
                
              header("Pragma: no-cache");
                
              header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
                
              header("Content-type: application/pdf");
                
              header("Content-Length: $len");
                
              header("Content-Disposition: inline; filename=foo.pdf");

                  echo (
              $buf);

                  
              PDF_delete($pdf);
              ?>

              Kommentar


              • #8
                Vielleicht wäre auch fdpf etwas für dich. Das Skript ist überschaubar klein und kann daher vielleicht als Ausgangspunkt für eigene Überlegungen dienen - und die PDF_Lib braucht auch nicht installiert zu sein...

                Gruß,

                Maik
                Zuletzt geändert von mccab99; 25.01.2003, 17:27.

                Kommentar


                • #9
                  Es ist so, das das ganze für ca. 100 Kunden die jeweils unterschiedliche Rechnungsköpfe und Design haben gemacht werden muß

                  Und wenn ich das dann immer per PHP machen muß ist das doch recht viel Aufwand oder? Also ich meine, wenn ich das dann einfach per Adobe Indesign machen muß ist das ja ne Sache von 5 Minuten......
                  http://www.freehost-script.com

                  Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

                  Kommentar


                  • #10
                    Ich habe mir grade mal überlegt, eigentlich ist es doch bei Rechnungen immer so:

                    Briefpapier quasi also der Hintergrund ist immer gleich, und die Rechnung hat immer das gleiche Format, also könnte ich doch rein theoretisch mit FPDF den Hintergrund als JPG einladen und dann den Text da drauf schreiben oder? Müßte dann halt nur irgentwie auch mit Ebenen arbeiten das Ding ....
                    http://www.freehost-script.com

                    Werden Sie Webhoster, mit Werbung auf den Userseiten, Php, Mysql, FTP

                    Kommentar


                    • #11
                      Wieso Ebenen?

                      Du kannst doch bei fpdf den "Cursor" frei positionieren, auch auf einem Jpeg-Bild - naja dann hast du ja sowas wie eine Ebene...

                      Also: Hintergrund formatfüllend auf die Seite pfrimeln, Cursor setzen und ab dafür...

                      Gruß,

                      Maik

                      Kommentar

                      Lädt...
                      X