Open FlorinvV opened 2 years ago
Wo bekommst Du denn in den SimpleTokens die Bildmaße her?
Ein Feature ist vielleicht zu wenig beschrieben, Du kannst für eine proportionale Darstellung ein Maß auf auto
setzen, dann wird proportional verkleinert.
Würde Dir das ausreichen?
Ok, konkret funktionieren soll es so: Der User lädt egal was für ein Bild hoch. Dieses soll dann auf die gesamte Breite des PDFs skaliert werden, es sei denn, die Höhe würde dabei aus der PDF-Seite laufen, weil das Bildformat zu hoch ist. Dann würde im besten Fall die entsprechende Breite und Höhe des, statt auf die maximale Breite, auf die maximale Höhe skalierten Bildes genutzt.
Diese Höhen und Breiten lasse ich per JS berechnen und übergebe sie beide jeweils über ein hidden-field.
Im ersten Schritt würde mir im Prinzip reichen, dass ich einen Parameter übergebe, also die Höhe, der bis zu einem gewissen Maße auf auto steht und dann auf den festen Wert umstellt, dann wird das Bild zwar angeschnitten, läuft aber nicht heraus.
In beide Felder gleichzeitig kann ich schon keine Simple-Tokens eintragen, da diese dann automatisch zu einem Scriptlet im Breite-Feld formatiert werden:
a:2:{i:0;s:19:"form_simple_token_width";i:1;s:20:"form_simple_tok
(wahrscheinlich abgeschnitten wegen maximaler Eingabelänge)
Also wichtig mir erstmal dieses Umschalten zwischen auto und max-Wert
Wäre cool wenn du da eine Lösung parat hättest :)
Du könntest dazu einen Hook nutzen, der $GLOBALS['TL_HOOKS']['pdfnc_Positions']
wird für jede Position aufgerufen. Als Argument wird ein Array mit den Positionsdaten übergeben. Der Hook muß dann dieses Array ggf. modifiziert zurückgeben.
Deine Breite/Höhe findest Du dann in $arrItem['area']
. Die erhaltenen Zahlen kannst Du dann mit den Wunschmaßen überschreiben bevor Du das Array zurückgibst.
(siehe Handbuch Seite 10)
Mh... Verstehe, leider bin ich bei den Hooks noch nicht ganz fit, ich finde auch keine Referenz der pdfnc_Positions, ist die Funktion irgendwo angelegt?
Eine weitere Sache ist mir übrigens beim Testen aufgefallen: Nicht alle Bilder werden akzeptiert, bspw. die Mac-Screenshots, PNGs, sind bei Upload nicht sichtbar, erst wenn ich sie nochmal über Photoshop abspeichere... gibt es irgendwelche Bilddaten/Formate die einfach nicht funktionieren?
Wie kann ich bei dem Hook helfen? Der Hook-Aufruf bekommt ein Array mit den eingestellten Eigenschaften jeder Position übergeben. Wie komme ich jetzt an Deine Vorgabe der Größe heran, um den Eintrag live anzupassen?
Bei dem PNG-Screenshot kenn ich das Problem bisher nicht. Ich arbeite unter Windows, aber bisher hatte noch kein Kunde damit ein Problem. Allerdings kann ich natürlich nicht sagen, ob Screenshots jemals verwendet wurden.
Da kann ich aber leider nicht viel machen, die Skalierung läuft über die normale Image-Factory von Contao, den Einbau ins PDF macht das TCPDF-Modul (Fremdmodul).
Läßt sich das Mac-Bild in veränderter Größe in einem Artikel anzeigen? Dann würde ich denken, dass die Factory das kann, dann wäre das Problem bei TCPDF. Einfluß habe ich aber leider auf beides nicht.
Wie gesagt, mit dem Hook habe ich meine Probleme, ich versuche mich da noch einzulesen und zu probieren, scheitere hier aber schon an den Positionen der benötigten Dateien. Die Größen kommen über ein Form-Field. Wenn das nicht zu viel verlangt wäre, wäre ich über ein kleines Scriptlet und die Info wo ich das einbinden soll froh.
-
Zu den Bildern: Es liegt tatsächlich an Sonderzeichen im Dateinamen, bspw. Leerstellen.
Ich würde gern die Bildgröße per simple token aus dem Formular übernehmen, da ich eine Situation habe, bei der ich nicht vorher wissen kann, welches Format die hochgeladenen Bilder haben.
Bisher scheint das nicht möglich zu sein, oder? Daten aus Simple Tokens werden offenbar nicht in der Berechnung berücksichtigt...
Besteht hierzu die Möglichkeit? Fälle, in denen die Bildgrößen nicht klar sind, sind ja wahrscheinlich recht häufig.
Vielen Dank für die harte Arbeit und LG!