wPDF Seiten nachbearbeiten

  • Hallo,

    ich möchte gern folgendes ausgeben: Seite x von y. wobei ich beim Erstellen der PDF noch nicht y kenne. Kann ich nachträglich auf jeder Seite etwas einfügen, also quasi nachbearbeiten? Oder wie kann ich das Problem lösen?

    VG, Sven

    • Offizieller Beitrag

    Hallo,

    Über dieses Problem bei der Erstellung habe ich schon nachgedacht. Leider unterstützt PDF keine Variblen dieser Art. Prinzipiell könnte man y in eine bitmap rendern die dann wirklich erst später eingefügt wird. Das schriftbild wäre aber anders.

    Derzeit werden diese Probleme gelöst, indem erst der komplette report als EMF gerendert wird und mit wPDF dann als eines exportiert. Dann kann auch die Nummerierung erfolgen.

    Oder die erzeugte PDF wird mit WPViewPDF nachberabeitet, also gestempelt, und dann erst werden die Seitennummer aufgebracht.

    Hierfür brauchen Sie WPViewPDF PLUS.

    Die Demo hat einen menü knopf dafür welche ausführt:

    Das commando ist beschrieben im Manual under Tasks/Use stamping

    Das sollte das Problem eigentlich lösen. Wenn noch was fehlt, bitte melden.

    Grüsse,
    Julian Ziersch

  • hmm, ok, liegt wahrscheinlich am Prinzip von wPDF, die erzeugt die pdf sofort im Stream und

    nicht zunächst Seitenweise und zum Schluss einen Stream.
    Dann könnte man doch Seiten nachbearbeiten.

    Ich kenne die Interna von PDF nicht, aber wäre es auch eine Möglichkeit in wPDF noch eine Art Parser für einen PDF-Stream zu programmieren, welcher mir seitenweise eine Event gibt, wo ich nachträglich etwas in die Seite einbauen kann und hinten raus einen neuen PDF-Stream erzeugt. Zum Zeitpunkt im Viewer halte ich momentan noch recht umständlich.

    Mit EMF muss ich nochmal schauen, wäre die Alternative.

    Wir werden den Viewer trotzdem erwerben, ist eine gute Investition.

    • Offizieller Beitrag

    Hallo,

    PDF baut sofort eine PDF Datei um den Speicherbedarf gering zu halten. Insbesondere grosse Elemente wie Bilder werden sofort geschrieben.

    Wenn man es braucht, dass zunächst alle Seiten ausgegeben werden sollen und ersta dann in ein PDF gewandelt, so ist dies recht einfach möglich.

    Dafür muss für jede Seite eine Metadatei erzeugt und erst am Schluss dann in eine PDF gewandelt. Z.b Help & Manual macht dies so. Dieses caching intern in wPDF zu machen, wäre nicht ideal.

    Mit einer TList und ein wenig code kann man dies recht gut machen. Der code um eine Metadatei zu erzeugen kann der unit WPPDFR1.pas entnommen werden. wPDF verwendet ja generell metafiles um die Windows Ausgaben abzufangen.

    Eine elegante Lösung für dieses Problem ist für wPDF V4 geplant.

    Grüsse,
    Julian Ziersch