Unterschrift per Makro einfügen

Hallo,
ich möchte ein Makro erstellen, damit ich per Schaltflächen-Symbol meine eingescannte Unterschrift (png-Format) unter ein Dokument setzen kann.
Das Makro aufzuzeichnen ist kein Problem, aber die Unterschrift (blau auf Transparenz) wird immer ohne Umlauf und horizontal in der Seitenmitte dargestellt. Ich hätte sie gern mit Durchlauf, damit ich auch auf eine Unterschriftenlinie schreiben kann, und direkt an der Cursorposition. Wie bekomme ich denn dieses Format hin?
Vielen Dank schon mal!

Moin,
mit diesem Makro funktioniert das:

Sub Unterschrift_an_Cursorposition_Einfuegen

    Dim Original_SizePixel As New com.sun.star.awt.Size
    Dim Size_max As New com.sun.star.awt.Size
    Dim Size As New com.sun.star.awt.Size

    Size_max.Width=5000 'maximale Breite
    Size_max.Height=1500 'maximale Höhe


    sImgPath = "C:\Users\<USER>\Desktop\Unterschrift_DM.png" 'Pfad zum Bild
    sImgPath = ConvertToUrl(sImgPath)
    sname = "MyPic"'interner Name des Bildes
    oDoc = thisComponent

    oBitmaps = oDoc.createInstance( "com.sun.star.drawing.BitmapTable" )
    If oBitMaps.hasByName(sname) Then
    oBitmaps.replaceByName(sname, sImgPath)
    else
    oBitmaps.insertByName(sname, sImgPath )
    End If
    oPic = oBitmaps.getByName(sname)

    oGraph = oDoc.createInstance("com.sun.star.text.GraphicObject")   
    With oGraph
       .GraphicURL = oPic
       .AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
    End With

    oCursor = oDoc.CurrentController.getViewCursor
    If NOT isEmpty(oCursor.TextTable) Then
       oCursor.Cell.insertTextContent(oCursor,oGraph,False)
    ElseIf NOT isEmpty(oCursor.TextFrame) Then
       oCursor.TextFrame.insertTextContent(oCursor,oGraph,False)
    Else
       oDoc.Text.insertTextContent(oCursor,oGraph,False)
    End If

    Original_SizePixel = oGraph.Graphic.SizePixel
    
    Factor_Width=Size_max.width/Original_SizePixel.width
    Factor_Height=Size_max.Height/Original_SizePixel.Height

    if Factor_Width<=Factor_Height then 'bestimmen ob die Breite oder die Höhe der begrenzende Faktor ist
      factor = Factor_Width
    else
      factor = Factor_Height
    endif

    size.width = Original_SizePixel.width*factor
    size.Height = Original_SizePixel.Height*factor

    oGraph.size=size
    
    end sub

Du musst nur noch den Pfad zum Bild und die gewünschte Bildgröße in 1000stl cm anpassen.

Hallo,
vielen Dank für die schnelle Hilfe!
Bei mir ist die Grafik jetzt noch im Vordergrund, kann ich auch etwas direkt im Makro einstellen, das den Durchlauf festlegt, oder muss man den eben jeweils von Hand anpassen?
Viele Grüße

Ich probierte das mit der Unterschrift mit AutoText. Wäre vielleicht auch eine Option?

Hallo,
ich habe leider keine Ahnung von AutoText.
Allerdings habe ich in der Mitte des Vorschlags von F3KTotal noch etwas verändert und ergänzt:

With oGraph
.GraphicURL = oPic
.AnchorType = com.sun.star.text.TextContentAnchorType.AT_CHARACTER
.TextWrap = com.sun.star.text.WrapTextMode.THROUGH
End With

und jetzt läuft es (fast) wie gewünscht.

Viele Grüße

Anstatt Dich mit Makroprogrammierung abzuquälen, solltest Du einfach lernen, was man als Bürofachkraft oder als professioneller Autor mit einem Textprozessor anstellen kann, ohne irgendwas programmieren zu müssen. Der selbstverständliche Umgang mit Dokumentenvorlagen, Seitenvorlagen, Absatzvorlagen, Feldern und so Sachen wie Autotext sollte einen großen Teil des überall kursierenden VBA-Mülls auf elegante Weise überflüssig machen, sowohl für Word/Excel wie auch für Writer/Calc.
Auf welcher Grundlage willst Du eigentlich eine Office-Suite automatisieren, wenn Du die Office-Suite nicht kennst?

2 Likes