Ankündigung

Einklappen
Keine Ankündigung bisher.

Anpassung Schriftart in "pdf Rechnung 3"

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

    Anpassung Schriftart in "pdf Rechnung 3"

    Guten Tag,

    momentan beschäftige ich mich mit der Anpassung des Layouts der PDF-Rechnung und wollte einige Zeilen in fett haben.

    Die Funktion, die diese Einstellungen kontrolliert, ist SetFont($family,$style,$size), wobei ich dann beim Funktionsaufruf etwas in der Art SetFont($this->fonts2['general']', 'B', 14); übergeben müsste. Hiel liegt nämlich mein Problem. Sobald der zweite Parameter kein leerer String ist, wird überhaupt kein PDF-Dokument erstellt. Die Definition der Funktion SetFont in \includes\pdf\fpdf.php bringt mich leider auch nicht weiter.

    Vielen Dank für jede Art von Hilfe!

    #2
    Kannst Du mal ein konkretes Beispiel geben, welche Zeilen Du fett haben willst?

    Kommentar


      #3
      Anpassung Schriftart in "pdf Rechnung 3"

      Hallo webchills,

      bin noch in der Entscheidungsfindung, welche Zeilen fett gedruckt werden sollten. Zumindest sollen aber die Wörter Lieferadresse und Rechnungsadresse fett sein. rechnung.pdf


      mfg

      Kommentar


        #4
        Du kannst nicht eine normale Schrift fett machen. Um etwas fett darzustellen muss eine Schrift verwendet werden, die von Haus aus fett ist.
        dejavusans ist z.B. immer normal, während dejavusansb immer fett ist
        (siehe mitgelieferte Schriften unter includes/pdf/fonts)
        Um die Wörter Lieferadresse und Rechnungsadresse fett zu machen muss für diese Bereiche also eine eigene Schriftart übergeben werden.

        Du könntest folgendes machen:
        Das Array in ca. Zeile 59 von includes/class/rl_invoice3.php mit einer Standarddefinition für eine Schriftart erweitern, die für Fettdarstellung verwendet werden soll. In diesem Beispiel nenn ich diesen Standard einfach mal bold und lege fest, dass bold die Schriftart Deja Vu Sans Bold aufrufen soll:
        Code:
        $this->fonts2 = $this->getDefaultCheck(RL_INVOICE3_FONTS, array('general' => 'dejavusans', 'table' => 'freemono', 'bold' => 'dejavusansb'));
        Nach Zeile 60 hinter
        Code:
        $this->pdf->AddFont($this->fonts2['general']);
        Folgendes einfügen:
        Code:
        $this->pdf->AddFont($this->fonts2['bold']);
        Damit kannst Du dann später immer mit $this->fonts2['bold'] arbeiten, was dann die Schrift Dejavu Sans Bold aufrufen wird.

        Die Darstellung der Liefer- und Rechnungsadresse wird dann ab Zeile 455 mit der function makeAddr definiert.
        Die z.B. so ändern:
        Code:
        function makeAddr() {
                #echo rldp($this->order, 'ADR');
                $x['delivery'] = htmlspecialchars_decode(str_replace('<br>', "\n", zen_address_format($this->order->delivery['format_id'], $this->order->delivery, 1, '', '<br>')));
                if (strlen($x['delivery']) < 9) {
                    $x['delivery'] = htmlspecialchars_decode(str_replace('<br>', "\n", zen_address_format($this->order->customer['format_id'], $this->order->customer, 1, '', '<br>')));
                }
                $x['billing'] = htmlspecialchars_decode(str_replace('<br>', "\n", zen_address_format($this->order->billing['format_id'], $this->order->billing, 1, '', '<br>')));
               
                $this->pdf->SetXY($this->address1Pos['X'], $this->address1Pos['Y']);
                $this->pdf->SetFont($this->fonts2['bold'], '', 16);
                $this->pdf->Cell($this->addressWidth['addr1'], 5, LIEFERADRESSE, $this->addressBorder['addr1'], 2, 'L');
                $this->pdf->SetFont($this->fonts2['general'], '', 16);
                $this->pdf->AllMultiCell($this->addressWidth['addr1'], 5, $x['delivery'], $this->addressBorder['addr1'], 1, 'L');
                $this->pdf->SetXY($this->address2Pos['X'], $this->address2Pos['Y']);
                $this->pdf->SetFont($this->fonts2['bold'], '', 16);
                $this->pdf->Cell($this->addressWidth['addr2'], 5, RECHNUNGSADRESSE, $this->addressBorder['addr2'], 2, 'L');
                $this->pdf->SetFont($this->fonts2['general'], '', 16);
                $this->pdf->AllMultiCell($this->addressWidth['addr2'], 5, $x['billing'], $this->addressBorder['addr2'], 1, 'L');
                
            }
        Damit erscheinen dann die Wörter Lieferadresse und Rechnungsadresse fett mit dejavusansb während für die Adresszellen selbst die normale nicht fette general (in diesem Beispiel dejavusans) verwendet wird.

        Nach diesem Prinzip sollten auch andere Bereiche fett darstellbar sein.
        Zuletzt geändert von webchills; 07.07.2014, 19:59.

        Kommentar


          #5
          Funktioniert...

          Danke webchills,

          funktioniert, wie von Dir beschrieben...

          Kommentar

          Info zu diesem Forenarchiv:
          Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
          Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
          Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
          PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
          Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
          FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

          Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
          Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
          Fehler in der Software können auf Github als Issues gemeldet werden.
          Follow us
          aktuelle version
          Zen Cart 1.5.7g deutsch
          vom 12.12.2023
          [Download]
          Lädt...
          X