PDF Klasse integrieren in Plugin?

Hi in die Runde,

ich hänge gerade daran in einem selbst erstellten Plugin mit eigenem Controller die PDF Klasse von Shopware zu integrieren.

$mpdf = new \Mpdf(['mode' => 'utf-8']);

Wirft Fehler, weil der Controller die Klasse nicht findet.

Welchen use muss ich einbinden, bzw. welchen Container holen, damit ich an die Klasse komme ?

Hatte mich hieran mal gerichtet → PDF Template in Plugin nutzen?

Irgendwie werde ich weder aus den Dev. Doks noch aus den anderen Threads hier schlau.

P.S. Ich hatte mir auch schonmal das Shopware_Components_Document::initDocument angesehen (worauf hier PDF Erstellung mit mPDF in Shopware oder anderem Tool innerhalb Plugin? Bezug genommen wird), allerdings denke ich, das kommt bei mir nicht zu tragen, weil ich ja nur die PDF Klasse (wie FPDF etc) haben will, die ich selbst komplett style und befülle, und nicht aus irgendwelchen RE / LS / orders Daten holen und ausgeben will.

Danke schonmal.

Mal mit

use Mpdf\Mpdf;

probiert?

Au nein … Du hast sowas von Recht.

Aber ich musste meine Zeile noch anpassen (blackslash musste weg)->
$mpdf = new Mpdf(['mode' => 'utf-8']);

Zumindest gibts die Instanz jetzt.

Fehlen jetzt „nur“ noch FONTS.
Cannot find TTF TrueType font file "DejaVuSerifCondensed.ttf" in configured font directories. in vendor/mpdf/mpdf/src/Fonts/FontFileFinder.php on line 33

Das sollte sich aber irgendwie lösen lassen :innocent:

Wenn Du dafür auch „mal eben“ Einen Tipp / Lösungsansatz parat hast, bin ich aber ganz Ohr.

Hm, bis jetzt noch nicht. Aber Font wird auch als Parameter (wie mode) mit übergeben. Vielleicht kann es darüber lösen.

Leider hab ich darüber keine Möglichkeit gefunden.

Ich hab jetzt aus der Repo https://github.com/rathodakshay/mpdf den ttfonts Folder in vendor/mpdf/mpdf gepackt. Damit gehts. Da sind wohl alle TTFs drin die gebraucht werden.

:man_shrugging:

Ich kann mir vorstellen, dass es damit auch geht. Aber wahrscheinlich müsste man dann den Pfad von SW kennen, wo die ganzen benötigten Fonts abgelegt sind und das dann deklarieren. Dafür fehlt mir aber gerade ehrlich gesagt die Muße.

P.S. hat mir keine Ruhe gelassen. Findet sich in dem Fall bei: /engine/Shopware/Controllers/Frontend/font

Streng genommen dann in unifont

Mal schauen wie ich den Hauptpfad eingebunden kriege, dass mpdf das auch ohne murren dann einbindet