Closed manuelmeister closed 1 year ago
Draft veröffentlichen
Ich habe auch mit Nuxt noch Activity Rendering implementiert. Mein Code ist auf https://github.com/carlobeltrame/ecamp3/tree/feature/print-nuxt-helm Hier mal ein gedrucktes PDF, das einige in meinen Augen kritische Limitierungen mit Seitenumbrüchen demonstriert. PrintedByBrowserless(4).pdf Zum direkten Vergleich, derselbe Datenbankstand mit ReactPDF exportiert: document(4).pdf
Unten meine Notizen von diesem Prozess. Ich versuche meinen ehrlichen Eindruck von der Arbeit mit Nuxt + pagedjs + browserless festzuhalten. Insgesamt ist meine Meinung von diesem Stack durch die aktive Arbeit damit klar besser geworden. Vorausgesetzt wir verwenden Vuetify nicht für Print, könnte ich mit allen Limitierungen leben, ausser mit den Seitenumbruchs-Problemen die ich weiter unten genauer beschreibe.
injectScripts: false
), damit die Print Preview möglichst ähnlich wie das fertig gedruckte PDF aussieht (um definitiv zu verhindern dass in der Preview client-side JS-Code läuft), und weil es sich nicht mit pagedjs verträgt: Bei jeder Änderung auf der Seite müsste pagedjs komplett neu layouten, wofür ein Reload zwingend nötig ist weil pagedjs während dem Layouten den Seiteninhalt komplett ersetzt. Wenn ich injectScripts: true
einfach trotzdem aktiviere bekomme ich jedenfalls Fehler àla _vm.period.scheduleEntries is not a function
, also wäre aktuell sowieso hal-json-vuex nicht richtig eingerichtet.npm run build
).word-break: none
von Vuetify kann bei sehr langen Wörtern im Inhalt dazu führen, dass Flexboxes die Seitenbreite sprengen und in Folge pagedjs die Seite nicht korrekt rendert)./.nuxt/
, und kann nur durch Löschen des Inhalts des .nuxt
Ordners und Neustarten des Print Containers (dauert ca. 1 Minute) behoben werden. Das ist mir beim Implementieren der Schedule Entries ca. 5-6 Mal passiert.waitUntil: networkidle0
)onUrl
Hook von pagedjs angehen, habe ich noch nicht probiert.v-html
verwendet. Das sollten wir aber aus XSS-Gründen (siehe Security weiter oben) nicht machen, auch wenn wir den Rich Text validieren / input-filtern. Es wird früher oder später sicher mal vorkommen, dass wir mal unerwartete Inhalte in der DB haben.Can we close this issue?