png-Datei in PDF umwandeln

  • Hallo Gemeinde,

    bisher wandle ich png-Dateien in PDF um, mithilfe der MPDF_UDF.au3 von Mihai Iancu. Das Problem ist für mich nun, dass die UDF die Grafik-Datei
    leider in ein DIN A4-PDF quasi einfügt und somit die Grafik zentriert rein skaliert. Sieht furchtbar aus ;(
    Ich habe versucht die PNG-Datei wenigstens als Landscape einzufügen, war aber nicht erfolgreich.
    Die Option $PDF_ORIENTATION_LANDSCAPE hat keine Auswirkung und ob oder was ich da sonst noch einstellen muss konnte ich nicht heraus finden. ;(

    Ich brauche eine Möglichkeit die Grafik-Datei direkt wie sie ist, in eine PDF umzuwandeln. Hat jemand eine Idee ob das mit der UDF auch geht oder
    könnte ich das per Autoit i-wie anders durchführen?

    Auf Drittanbietertools würde ich gerne verzichten...

  • Hi hipfzwirgel 👋 ,

    ich kenne die UDF nicht, doch es wäre hilfreich wenn du sie teilst (wenn sie nicht unter einer Lizenz steht bei der dies untersagt sein sollte). Somit hätten wir die Möglichkeit mal nachzuschauen.

    Warum willst oder musst du explizit auf Drittanbietertools verzichten? Es gibt wunderbare HTTP APIs online, sogar mit Auth, mit denen du dies per einzelnen POST Request machen kannst. Natürlich ohne Internet-Verbindung nicht, doch in welchen Fällen ist das schon so.

    Mein Ansatz für sowas wäre es das Rad nicht neu zu erfinden und einen Service zu nutzen. Falls der mal wegbricht, wechselt man zu einem anderen. Oder du hostet das GitHub Repo. dazu einfach selbst.

    -----------

    Naja, vielleicht bekommst du zur UDF noch direkt 'ne Antwort. Viel Erfolg 🤝 .

    Viele Grüße
    Sven

  • ich kenne die UDF nicht, doch es wäre hilfreich wenn du sie teilst (wenn sie nicht unter einer Lizenz steht bei der dies untersagt sein sollte). Somit hätten wir die Möglichkeit mal nachzuschauen.

    Vermutlich meint hipfzwirgel folgende UDF:

    In den AutoIt-Wiki https://www.autoitscript.com/wiki/User_Defined_Functions findet man unter PDF :

    MPDF-UDF von taietel Version 1.0.3 (Edited August 10, 2011)

    Create PDF from your application
    If you look to output PDF's from your application (generate reports, graphics, tables etc), this UDF can be very useful.In the zip file are examples, images…
    www.autoitscript.com

    Im Thread gibt es u.a. die Modifikation von Konya (May 30, 2024)

    Create PDF from your application
    www.autoitscript.com

    (eine MPDF_UDF.au3 von Mihai Iancu habe ich auf die schnelle nicht entdeckt. Ggf. eine weitere Modifikation)

    Edit : Offenbar ist der Realname von taietel Mihai Iancu !

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    2 Mal editiert, zuletzt von Musashi (4. April 2025 um 21:26)

  • Das Problem ist für mich nun, dass die UDF die Grafik-Datei leider in ein DIN A4-PDF quasi einfügt und somit die Grafik zentriert rein skaliert. Sieht furchtbar aus ;(

    Ich habe mir die von Konya aktualisierte Version (siehe Beitrag #4) kurz angesehen. Die Einstellmöglichkeiten sind ja doch recht umfangreich. Ich vermute mal das Du _SetPaperSize("a4") im Code verwendest - dann kann es, trotz $PDF_ORIENTATION_PORTRAIT bzw. _SetOrientation($PDF_ORIENTATION_LANDSCAPE) usw., zu Verzerrungen kommen - abhängig von anderen Parametern. Leider fehlt mir die Zeit das alles zu eruieren.

    Ich brauche eine Möglichkeit die Grafik-Datei direkt wie sie ist, in eine PDF umzuwandeln. Hat jemand eine Idee ob das mit der UDF auch geht ?

    Eine Lösung, wenn auch wahrscheinlich nicht die eleganteste, die bei mir funktioniert, wäre es, _SetPaperSize("CUSTOM", $iImageWidth, $iImageHeight) zu verwenden.

    $iImageWidth und $iImageHeight sind die Breite und Höhe der gewählten Grafik. Diese Werte lassen sich mittels https://autoit.de/onlinehilfe/on…etDimension.htm ermitteln (siehe dortiges Beispiel).

    Es wäre hilfreich, wenn Du ein (auf den Kern reduziertes) Skriptbeispiel Deiner momentanen Vorgehensweise posten könntest.

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hallo Gemeinde,

    vielen lieben herzlichen Dank an euch alle. ich werde mir die Woche die Vorschläge, bzw. Denkanstöße anschauen.
    Und Ja, es handelt sich um die MPDF-UDF von taietel

    @ Musahi: Ja ich habe damals das Thema insofern angefragt, als das ich eben eine Möglichkeit gesucht habe, überhaupt erst mal
    mit Autoit PDF Dateien zu erzeugen.
    Jetzt geht es mir eben darum, dass ich das Layout der PDF-Datei anpassen muss. Ich versuche im ersten Schritt dein Vorschlag mit _SetPaperSize.
    Mal sehen ob ich das dann so hinbekomme...

  • pack mal die 3 Dateien in einen Ordner und starte die pdf.au3 ;)

    hier mal ein Beispiel:

    Bilder

    Dateien

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ausführbares Script ("as is"), dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Man möge mir verzeihen, wenn ich nicht perfekten und ideal lesbaren Code zur Verfügung stelle.
    Ich möchte Hilfe zur Selbsthilfe leisten und denke dass eine gewisse Transferleistung erwartet werden kann.

  • Hallo Schnuffel,

    meinen allerherzlichsten Dank an dich für deine Einlassung. Diese hat mir geholfen zu erkennen warum die Änderungen der Parameter
    bei meiner Funktion(die ich höchstwahrscheinlich aus dem o.g. OriginalThread zur UDF oder aus der Hilfe zu meiner von Musashi erwähnten Anfrage heraus generierte),
    keine, bzw. nicht die Auswirkungen hatten, die sie hätten haben sollen. Ich habe es nicht ganz zu Ende analysiert aber die Originalfassung "meiner" Funktion
    hat eine Routine die nicht nur das Öffnen einer Grafikdatei behandelt, sondern auch das Öffnen mehrerer Dateien (was ich aber nicht benötige!).

    Ich glaube, dass das Zusammenspiel der UDF mit der in der Funktion verwendeten Array-Techniken schuld sind (genauer die Indizes als Pfadangaben).
    Der Rest des Codes ist, soweit ich das erkennen konnte gleich. Lasse mich aber gerne korrigieren ;)

    Ich kann jetzt durch die neue Func die Grafik-Datei in die ausgewählte Größe 1057 x 548 skalieren und es wird ein ebenso großes PDF erzeugt. ERGO: Fall zunächst gelöst. :party:
    So habe ich die Funktion jetzt angepasst:

    Nochmals: Aller herzlichsten DANK an Alle und explizit an Schnuffel.

    Einmal editiert, zuletzt von SOLVE-SMART (7. April 2025 um 15:39)