Zum Inhalt springen

Inhalt als PDF ausgeben > fertig gerendertes HTML als input

Erstellt am 26. Januar 2014 · Noch keine Antworten

Tags: PDF, Frage

awuestemann ·

Hallo,

es gibt eine wkhtmltopdf Extension, die ist aber pi-based. Ich möchte in einer Extbase-Extension Inhalte als PDF ausgeben. Wie mach ich das am besten? Mit Extbase kenne ich mich in der Zwischenzeit einigermaßen aus, aber bei den Typo3-Innereien und TypoScript hapert es leider noch etwas.

Erster Ansatz: pageType
==========================

lib.htmltopdf = COA
lib.htmltopdf {
 
    10 = USER
    10 { 
        vendorName = Qbus
        userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
        extensionName = Qbhtmltopdf
        pluginName = qbhtmltopdf
        switchableControllerActions {
            Pdf {
                1 = pdf
            }
        }
 
        settings =< plugin.tx_qbhtmltopdf.settings
        persistence =< plugin.tx_qbhtmltopdf.persistence
        view =< plugin.tx_qbhtmltopdf.view
 
    }
}

Ich komme in der pdfAction des pdfControllers an, dort kann ich auch die ursprüngliche URL abfassen, aber dann weiß ich nicht weiter... Wie bekomme ich die Seite gerendert um dann das HTML nach PDF zu wandeln?

Zweiter Ansatz direktes Rendern des Inhaltsobjektes
=====================================================

Es handelt sich um Wandertouren, in meinem WanderController kann ich eine pdfAction anlegen, der ich das auszugebende Wanderobjekt mitgebe. Von hier aus könnte ich über eine StandaloneView die ganze Seite noch mal neu aufbauen und dann an den PDF-Renderer das HTML übergeben.

Die PDF-Ausgabe weicht von der HTML-Ausgabe ab (Kopf mit Einzelbild statt Slider, keine Navi usw.), aber eigentlich möchte ich nicht alles noch mal neu aufbauen. Mir wäre es lieber, wenn ich die ohnehin bestehende Ausgabe modifizieren könnte.

Hat jemand Tipps für mich, wie ich da am besten rangehe? Die pageNum-Variante wäre wohl am besten, oder? Im Fluid-Template könnte man dann anhand der pageNum ggf. unterschiedliche Partials einbinden...

Danke
Axel