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?