Ergebnis 1 bis 9 von 9

Thema: Gestaltung der PDF Artikelausgabe

  1. #1
    Contao-Nutzer Avatar von Tholke
    Registriert seit
    25.06.2009.
    Ort
    Schweiz
    Beiträge
    26

    Beitrag Gestaltung der PDF Artikelausgabe

    Hey Community

    Ich habe mich endlich an die modifizierung der automatischen PDF-Ausgabe von Contao gewagt. Bei der Recherche habe ich viele Fragen diesbezüglich gefunden, jedoch lediglich eine sehr gute Anleitung wie dies zu machen ist.

    Contao Tutorial

    Leider ist nicht beschrieben, wie man einen spezifischen Footer hinzufügen kann. Das Vorgehen für eine eigene Fusszeile etwas anders. Ich denke, um die nachfolgenden Änderungen erfolgreich anzuwenden ist es wichtig, dass ihr das obige Tutorial zumindest einmal duchgelesen habt.


    Ladet die Dateien "tcpdf.php" (unter: /plugins/tcpdf/tcpdf.php) und "Controller.php" (unter: /system/libraries/) herunter und erstellt eine Sicherheitskopie.

    Jetzt muss die Datei "tcpdf.php" um eine eigene Klasse ergänzt werden. Ich habe diese ganz am Ende eingefügt (ca. Zeile 17464).

    Ursprüngliches Dateiende:
    PHP-Code:
                $this->textrendermode $textrendermode;
                
    $this->textstrokewidth $stroke $this->k;
            }

        } 
    // END OF TCPDF CLASS
    }
    //============================================================+
    // END OF FILE
    //============================================================+
    ?> 
    Mit eingeschobener Klasse:
    PHP-Code:
    $this->textrendermode $textrendermode;
                
    $this->textstrokewidth $stroke $this->k;
            }

        } 
    // END OF TCPDF CLASS
      
      
    class MYPDF extends TCPDF {
      
        
    // Page footer
        
    public function Footer() {
            
    // Position at 15 mm from bottom
            
    $this->SetY(-15);
            
    // Set font
            
    $this->SetFont('helvetica''I'8);
            
    // Page number
            
    $this->Cell(010'Dein Spezieller Text'0false'C'0''0false'T''M');
        }
      } 
    }
    //============================================================+
    // END OF FILE
    //============================================================+
    ?> 
    Diese eingeschobene Klasse erbt von der Klasse "TCPDF" und überschreibt deren Funktion für die Ausgabe einer Fusszeile. Für allfällige weitere Manipulationen habe ich die Signatur der Funktion "Cell", die für die Ausgabe zuständig ist herausgesucht:

    PHP-Code:
    // Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=0, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') 
    Nachdem der Ausgabetext und dessen Formatierung eingestellt ist, müsst ihr die entsprechende Funktion auch noch aufrufen.
    Dafür öffnet die Datei "Controller.php" und sucht nach der Stelle bei der eine TCPDF Instanz erzeugt wird (war bei mir auf Zeile 1089, sucht am besten nach "$pdf"). Das müsste dan in etwa so aussehen:
    PHP-Code:
            // Create new PDF document
            
    $pdf = new TCPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue); 
    Diese Zeile soll nun durch die folgende ersetzt werden:
    PHP-Code:
            // Create new PDF document
            
    $pdf = new MYPDF(PDF_PAGE_ORIENTATIONPDF_UNITPDF_PAGE_FORMATtrue); 
    Vorausgesetzt, ihr habt alles richtig gemacht und ich keine Fehler im Tutorial, sollte die PDF-Ausgabe jetzt mit der entsprechenden Fusszeile versehen sein.

    Ich hoffe das ganze hilft dem einen oder anderen etwas weiter.

    Quelle:
    http://www.tcpdf.org/examples.php

  2. #2
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.559
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Tholke,

    ich würde es gut finden, wenn Du diese Deine Anleitung auch in das Contao Wiki übertragen könntest. Damit wäre sichergestellt, dass dieses Tutorial nicht in den Weiten des Forums hier komplett untergeht. Wäre ja schade drum!
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  3. #3
    Contao-Nutzer Avatar von Tholke
    Registriert seit
    25.06.2009.
    Ort
    Schweiz
    Beiträge
    26

    Standard

    Hey xchs

    Jap, kann ich machen

    Grüsse Tholke

  4. #4
    Contao-Nutzer Avatar von liebling65
    Registriert seit
    23.01.2011.
    Ort
    Regensburg
    Beiträge
    198

    Standard Erweiterung

    Hallo,

    vielleicht ist ja die Erweiterung des Codes fuer den einen oder anderen interessant.

    $this->Cell(0, 10, 'PDF wurde am '.date('d.m.Y').' um '.date('H.m').' Uhr von der Seite www.keineahnung.de erstellt', 0, false, 'C', 0, '', 0, false, 'T', 'M');

    Selbsterklaerend.

    Gruss
    Erich

  5. #5
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.615
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wenn Du diese Information auf die normale Seite schreibst (display:none; für Browser und display:inline; für Print), hast Du nicht nur in PDF, sondern auch in Ausdrucken die Information auf dem Papier. Nicht alle Browser drucken URL und Datum an den Rand.

  6. #6
    Contao-Nutzer Avatar von liebling65
    Registriert seit
    23.01.2011.
    Ort
    Regensburg
    Beiträge
    198

    Standard

    Leider bin ich durch diese Aenderungen jetzt aber nicht mehr updatesicher
    Hab mal deine Erweiterung pdf-template ausprobiert, allerdings ist das PDF erstellen sehr langsam im Gegensatz zur oberen Loesung (Template hat nur 60kb).
    Und mein Datum bring ich auch nicht unter...

    Schade eigentlich... oder kann man das leicht einbauen?

    Gruss
    Erich

  7. #7
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.615
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo Erich,

    Zitat Zitat von liebling65 Beitrag anzeigen
    Leider bin ich durch diese Aenderungen jetzt aber nicht mehr updatesicher
    Warum bist Du durch meinen Vorschlag nicht updatesicher?
    Wenn Du die beiden CSS-Anweisungen in Dein normales Stylesheet und in das Print-Stylesheet einträgst, hast Du kein Problem mit Updates, weder beim Core noch bei den Erweiterungen.

    Die Erweiterung PDF-Template ist sehr langsam, das liegt an dem Hintergrundmodul FPDI, das die PDF-Vorlage einlesen muss. Mein Vorschlag hatte aber nichts mit der Erweiterung zu tun.

    Ein Beispiel findest Du unter:
    http://www.arus.de/objekt/item/berli...er-weg-66.html
    Im Ausdruck bekommt die Seite einen extra Header mit den Kontaktdaten.

    Ich sehe aber gerade, dass der Header im PDF nicht erscheint - Sorry

  8. #8
    Contao-Nutzer
    Registriert seit
    04.07.2010.
    Beiträge
    26

    Standard

    Zitat Zitat von do_while Beitrag anzeigen
    Die Erweiterung PDF-Template ist sehr langsam, das liegt an dem Hintergrundmodul FPDI, das die PDF-Vorlage einlesen muss.
    Ich finde PDF-Template nicht wirklich langsam. nur freeserif als Standard-Schrift ist "tödlich".

  9. #9
    Contao-Nutzer Avatar von liebling65
    Registriert seit
    23.01.2011.
    Ort
    Regensburg
    Beiträge
    198

    Standard

    Zitat Zitat von do_while Beitrag anzeigen
    Hallo Erich,

    Warum bist Du durch meinen Vorschlag nicht updatesicher?
    Wenn Du die beiden CSS-Anweisungen in Dein normales Stylesheet und in das Print-Stylesheet einträgst, hast Du kein Problem mit Updates, weder beim Core noch bei den Erweiterungen.

    Die Erweiterung PDF-Template ist sehr langsam, das liegt an dem Hintergrundmodul FPDI, das die PDF-Vorlage einlesen muss. Mein Vorschlag hatte aber nichts mit der Erweiterung zu tun.

    Ein Beispiel findest Du unter:
    http://www.arus.de/objekt/item/berli...er-weg-66.html
    Im Ausdruck bekommt die Seite einen extra Header mit den Kontaktdaten.

    Ich sehe aber gerade, dass der Header im PDF nicht erscheint - Sorry
    Deine Erweiterung ist schon nett - bei mir habe ich aber das Problem, dass auf der 2ten Seite der Abstand von oben nicht von der ersten Seite übernommen wird - kann ich aber auch nicht einstellen.
    Und ein Text wie z.B. der oben (PDF wurde am xxx um yyy Uhr erstellt) - kann ich den ins PDF schreiben lassen?

    Vielen Dank schonmal
    Erich

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •