Menu

Druckvorlagen - Adress Frame - Fonts einbetten

jeno
2014-08-11
2014-08-14
  • jeno

    jeno - 2014-08-11

    Hallo,

    ich habe ein paar Fragen. Vielleicht kann mir da jemand helfen.

    • adress frame
      Wenn man einen Kontakt mit Firmenname etc. hat, dann funktioniert die Generierung des PDF nicht. Auch ein Ändern der Fontgrösse hilft nicht. Nach etwas suchen und probieren habe ich dann herausgefunden, daß man das Problem durch Löschen eines der drei Zeilenumbrüche (br-Tag) beheben kann. Das Problem liesse sich vermeiden, wenn zwischen PLZ-Ort und Landesbezeichnung keine Leerzeile wäre. Kann man das ändern?
    • Fonts einbetten
      Es gibt die Möglichkeit TrueType-Fonts zu verwenden. Das würde ich gerne nutzen. Ich habe das versucht, leider ohne Erfolg. Ist es so, dass man nur Fonts verwenden kann, die im System installiert sind?
    • Seitenzahlen
      Es gibt das Tag <pagenumber>, dass die aktuelle Seitenzahl anzeigt. Es wäre schöner wenn man sowas wie Seite x von y hätte, also z.B. Seite 2 von 4. Gibt es hierfür eine Lösung?</pagenumber>
    • Style-Definitionen
      Es gibt zwei Styles
      <parastyle name="alternativetext" ...=""> und <parastyle name="alternativertext" ...=""> die ich nicht zuordnen konnte, da ich die nirgends im trml-file finden kann. Für was sind die gedacht, bzw. wo finden die Verwendung?</parastyle></parastyle>
    • GOODBYE Variable
      Kann man die Texte irgendwo finden bzw. ändern? Ein "Mit freundlichen Grüßen" würde sich besser machen wie "mit freundlichen Grüssen," Gilt auch für andere Texte die man auswählen kann.

    Danke im voraus für die Hilfe

     
    • Klaas Freitag

      Klaas Freitag - 2014-08-11

      Thema address frame: Die Adresse wird aus dem Dokument-Editor übernommen und ist dort auf der Dokument-Kopf-Seite editierbar. Dort könntest Du also die Leerzeile rauslöschen bzw. das Land garnicht erst eingeben ins Adressbuch.

      Weiterhin wird nicht nur die Template-Variable "ADDRESS" gesetzt, sondern auch eine ganze Reihe von mehr spezifischen Adress-Teilen wie Name, Strasse, Ort etc. Die könntest Du auch verwenden.

      Diese Tags der Kundenadresse sind definiert:

      CLIENT_NAME
      CLIENT_ORGANISATION
      CLIENT_URL
      CLIENT_EMAIL
      CLIENT_PHONE
      CLIENT_FAX
      CLIENT_CELL
      CLIENT_POSTBOX
      CLIENT_EXTENDED
      CLIENT_STREET
      CLIENT_LOCALITY
      CLIENT_REGION
      CLIENT_POSTCODE
      CLIENT_COUNTRY
      CLIENT_REGION
      CLIENT_LABEL

       
    • Klaas Freitag

      Klaas Freitag - 2014-08-11

      Thema Seitenzahlen:
      Das geht bisher leider nicht. Aber basierend auf
      http://code.activestate.com/recipes/576832/
      hab ich hier mal etwas experimentiert und das sieht ganz gut aus. Mach doch bitte einen Bugreport in Sourceforge damit ich das nicht vergesse, dann werde ich mich da mal drum kümmern.

       
    • Klaas Freitag

      Klaas Freitag - 2014-08-11

      Thema Styles demandtext und alternativetext: Die werden für Alternativ- bzw. Bedarfspositionen verwendet. Für solche speziellen Positionen vor allem in Angeboten wird dieser style automatisch gesetzt, damit man die optisch von normalen Positionen abheben kann. Also nicht löschen :-)

       
    • Klaas Freitag

      Klaas Freitag - 2014-08-11

      Thema "GOODBYE": Es gibt (immer noch) keine vernünftige Einstellmöglichkeit in der GUI.

      Bis ich das endlich mal gemacht habe müsst ihr Euch in der Datenbank behelfen, zb.

      UPDATE wordlists SET word='mit den besten Grüßen' WHERE word='mit den besten Grüssen';
      

      Das ist nicht so schön :-/

       
  • jeno

    jeno - 2014-08-11

    Hallo Klaas,
    danke für die umgehende Beantwortung. Ich habe ein Ticket wg Seitenzahlen angelegt.
    wg GOODBYE werd ich mir dann halt so behelfen
    Die Sache mit den TTF-Schriften wäre noch eine feine Sache. Hast du mir da noch einen Tipp wie man das hinkriegt, da ich die Adobefonts nicht gerade als Hingucker empfinde, vielleicht mal von Helvetica abgesehen.
    Danke für deine Mühe

     
  • jeno

    jeno - 2014-08-11

    Hallo Klaas,

    ich nochmal. Sorry, Hirn nicht eingeschaltet. Ich arbeite mit sqite und hab null Plan wie das funktioniert. Wo soll ich den/die Befehle eingeben?
    Danke

     
    • Klaas Freitag

      Klaas Freitag - 2014-08-11

      Am besten geht das wohl mit dem Firefox-Plugin SQLite Manager. Mit dem kannst du die Sqlite-Datei (Pfad siehe Kraft System-Ansicht) direkt bearbeiten. Die Tabelle wordLists findest Du ganz unten, und dann kannst Du die Daten direkt verändern.

       
  • Klaas Freitag

    Klaas Freitag - 2014-08-11

    Thema Font embedding: Das geht auch, das wusste ich auch noch nicht.

    Es können ttf fonts eingebunden werden. Dazu muss man im trml file folgendes XML tag unterhalb des document-tag hinzufügen:

    <document filename="kraft.pdf"> <!-- Alt, schon vorhanden -->
    <docinit>
        <registerFont fontName="MyFont" fontFile="/path/to/font.ttf"/>
    </docinit>
    

    Danach kannst Du den Namen MyFont in allen <setfont ...=""> oder <blockfont ...=""> Anweisungen verwenden. </blockfont></setfont>

    Aber teste das bitte nochmal mit den einschlägigen PDF Betrachtern auf Windows etc. und lass uns wissen, obs funtkioniert. Danke!

     

    Last edit: Klaas Freitag 2014-08-11
  • jeno

    jeno - 2014-08-12

    Hallo Klaas,

    wenn ich den RML User Guide richtig verstanden hab, dann ist registerFont nur für PostscriptType1-Fonts vorgesehen und Truetype-Fonts müssen via registerTTFont eingebunden werden.
    Ich habe mir die Beispieldateien angesehen. Dort sind keine Pfadangaben, sprich es wird immer nur die Font-Datei selber deklariert. Bei den Standardfonts ist es auch nicht anders und die werden im System ebenfalls gefunden (/usr/share/fonts/X11/Type1...)
    Korrigiere mich wenn ich da falsch liege.

    Auf jeden Fall, trotz vieler Versuche, klemmt es bei der Erstellung des PDF :(
    Immer wieder an der selben Stelle - das Script scheint Probleme zu haben den face-Typ (normal, fett, kursiv..) zu erkennnen.
    Ich füge mal den traceback an.
    Vielleicht kannst du was hilfreiches sagen.


    Traceback (most recent call last): File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 721, in pdf = parseString( file( infile, 'r' ).read() ) File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 668, in parseString r.render(fp) File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 248, in render pt_obj.render(self.dom.documentElement.getElementsByTagName('story')[0]) File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 609, in render self.doc_tmpl.build(fis) File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 889, in build self.clean_hanging() File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 517, in clean_hanging self.handle_flowable(self._hanging) File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 769, in handle_flowable f.apply(self) File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 146, in apply getattr(doc,arn)(*args) File "/usr/lib/python2.7/dist-packages/reportlab/platypus/doctemplate.py", line 542, in handle_pageBegin self.pageTemplate.onPage(self.canv,self) File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 440, in render cnv.render(self.node) File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 428, in render tagstag File "/usr/share/kde4/apps/kraft/tools/erml2pdf.py", line 415, in 'setFont': lambda node: self.canvas.setFont(node.getAttribute('name'), unit_get(node.getAttribute('size'))), File "/usr/lib/python2.7/dist-packages/reportlab/pdfgen/canvas.py", line 1588, in setFont font = pdfmetrics.getFont(self._fontname) File "/usr/lib/python2.7/dist-packages/reportlab/pdfbase/pdfmetrics.py", line 689, in getFont return findFontAndRegister(fontName) File "/usr/lib/python2.7/dist-packages/reportlab/pdfbase/pdfmetrics.py", line 671, in findFontAndRegister face = getTypeFace(fontName) File "/usr/lib/python2.7/dist-packages/reportlab/pdfbase/pdfmetrics.py", line 630, in getTypeFace return _typefaces[faceName] KeyError: "u'Vera'\n handle_pageBegin args=()"


    Code in der trml dazu
    <docinit>
    <registerttfont facename="Vera" filename="Vera.ttf">
    </registerttfont></docinit>

    Danke für deine Mühe
    Grüsse

     
    • Klaas Freitag

      Klaas Freitag - 2014-08-12

      Nein, du musst es genauso wie oben beschrieben machen, mit Pfad zur TTF Datei. Das Konverter-Script setzt das entsprechend um.

      Siehe hier ein Beispiel-Dokument:

      http://sourceforge.net/projects/kraft/files/demo/rechnung.pdf/download

       
  • jeno

    jeno - 2014-08-13

    Hallo Klaas,

    ich hab das entsprechend deinen Vorgaben geändert. Leider klemmt es trotzdem. Aber ich habe aktuell noch Version 0.53-2 (Tanglu). Es könnte sein, dass hier das Problem liegt. Ich bleib bei Helvetica bis das dist-upgrade da ist (ca 2 Wochen) und teste dann noch mal. Auf jeden Fall vielen Dank für die Unterstützung.
    Ich hab die Vorlage vom Layout her verändert. Also z.B. Fussbereich mit 3 Spalten (Adresse-Steuerinfo-Bankinfo) und Kopfbereich 2 Spalten (asymetrisch)mit Text mit farbigen Flächen hinterlegt und ein Logo (Grafik). Alternaiv dann für die Rechnung fehlt der Kopfbereich, dafür das Infofeld als farbige Fläche. Das ganze ein bisschen mehr an DIN5008 angepasst (Ränder, Positon Seitenzahl etc.) Wenn Interesse besteht dann würd ich das anonymisieren, mit etwas Kommentaren anreichern und zur Verfügung stellen.
    Gibt es auf sf eine Möglichkeit sich privat eine Nachricht zu senden?
    Grüsse

     
  • Klaas Freitag

    Klaas Freitag - 2014-08-14

    Ja, ich bin sehr an dem Template interessiert, vor allem wenn es besser ist das, was gerade mit Kraft mitkommt. Bitte schick es an email kraft at freisturz punkt de. Danke!

     

Log in to post a comment.

MongoDB Logo MongoDB