Seite 1 von 1

Grafik als Link einfügen

Verfasst: Fr 24. Aug 2018, 21:19
von chemnitzer
Hallo
ich benutze Version 6.1 unter Windows 10.
Das Einfügen einer Grafik (JPG) funktioniert und wird im Navigator unter Bilder z.Bsp.: als "Bild1" angezeigt im Dokument auch sichtbar.
Lasse ich mir die Eigenschaften anzeigen dann ist das Feld unter Bild -> "Verknüpfung Dateiname" leer.
Wird das Bild als Verknüpfung über den Menüweg eingefügt dann steht der Link dazu drinn z.Bsp. file:///c:/temp/myPic.jpg.
Hier der Code ( die Originalquelle kenne ich leider nicht mehr :?: ):
Sub InsertImage(Optional URL, Optional imageName, Optional imageDescription, Optional linkURL)
If IsMissing(URL) Then
URL = "C:\!C-DATEN\Bilder\Seite-0017.jpg"
End If

ImgUrl = ConvertToURL(URL)

rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(4) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = ImgUrl
args1(1).Name = "FilterName"
args1(1).Value = "<Alle formater>"
args1(2).Name = "AsLink"
args1(2).Value = false
args1(3).Name = "Style"
args1(3).Value = "Grafik"

dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())
end sub


Noch was: Wenn das Bild gedreht wurde komment noch eine Meldung ob es zurückgesetzt werden soll ?

Gibt es noch andere Möglichkeiten das Bild so einzufügen, dass ich dann aus dem Text einen Hyperlink darauf setzen kann ?

Vielen Dank schonmal im voraus
chemnitzer

Re: Grafik als Link einfügen

Verfasst: So 26. Aug 2018, 10:03
von F3K Total
Moin, geht, habe ich schonmal programmiert:

Code: Alles auswählen

Sub S_insert_Pictures
    Dim O_S As New com.sun.star.awt.Size
    Dim S_M As New com.sun.star.awt.Size
    Dim N_S As New com.sun.star.awt.Size
    aUrl = F_get_pictures_Url
    oTextcursor = thisComponent.Text.createTextCursor
    oTextcursor.collapseToStart
    S_M.Width = 5000 'maximale Breite
    S_M.Height = 5000 'maximale Höhe
    For i = 0 to ubound(aUrl)
        oGraph = ThisComponent.createInstance("com.sun.star.text.GraphicObject")
        With oGraph
           .GraphicURL = aUrl(i)
           .AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
           .HoriOrient = 0 'Linksbündig
           .HyperLinkURL =  aUrl(i)
        End With
        ThisComponent.Text.insertTextContent(oTextcursor,oGraph,False)'Bild einfügen
        do
           wait 10
        loop until oGraph.ActualSize.width > 0
        O_S = oGraph.ActualSize
        'xray oGraph.ActualSize
        Factor_Width = S_M.width/O_S.width
        Factor_Height = S_M.Height/O_S.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
        N_S.width = O_S.width * factor
        N_S.Height = O_S.Height * factor
        oGraph.size = N_S      
        'Text einfügen
        oTextCursor.gotoend(false)
        oTextCursor.breaktype = 0
        thisComponent.Text.insertControlCharacter(oTextCursor,0 , False)'0 = com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK
        oTextCursor.gotoend(false)
    next i
end sub

function F_get_pictures_Url
	oFilepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
    oFilePicker.Initialize(Array(com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE))
    oFilepicker.setMultiSelectionMode(true)
	oFilepicker.appendFilter( "Graphics Files (*.jpg,.png,.tif,.tiff,.gif,.bmp)","*.jpg;*.png;*.tif;*.tiff;*.gif;*.bmp")
	oFilepicker.Title = ("Bilddateien auswählen")
	iAccept = oFilepicker.execute()
	if iAccept = 0 Then 
	    F_get_pictures_Url = ""
	    exit function
	end if
	F_get_pictures_Url = oFilepicker.SelectedFiles
end function
Bitteschön.
Gruß R

Re: Grafik als Link einfügen

Verfasst: So 26. Aug 2018, 12:54
von chemnitzer
Hallo R
Danke für die schnelle Info. Ich hatte LO 6.1.0 64-Bit unter Win10 installiert, leider funktioniert das bei mir dann nicht.
Weder Dein Code noch meiner. Ich hab es jetzt so gelöst LO 6 runter und wieder 5.2.2 drauf, jetzt gehts wieder muss nur noch die Grafikgröße versuchen an den Platz im Blatt (Bsp.: A4 mit Rändern) anzupassen. Wenn ich die Lösung habe stell ich sie dann rein.

Schönen Sonntag noch von
Chemnitzer

Re: Grafik als Link einfügen

Verfasst: So 26. Aug 2018, 13:54
von F3K Total
chemnitzer hat geschrieben:
So 26. Aug 2018, 12:54
muss nur noch die Grafikgröße versuchen an den Platz im Blatt (Bsp.: A4 mit Rändern) anzupassen
Das geht in meinem Code sehr leicht...Läuft bei mir unter LO 6.0.6 problemlos...
Gruß R

Re: Grafik als Link einfügen

Verfasst: So 26. Aug 2018, 21:35
von musikai
F3K Total hat geschrieben:
So 26. Aug 2018, 13:54
chemnitzer hat geschrieben:
So 26. Aug 2018, 12:54
muss nur noch die Grafikgröße versuchen an den Platz im Blatt (Bsp.: A4 mit Rändern) anzupassen
Das geht in meinem Code sehr leicht...Läuft bei mir unter LO 6.0.6 problemlos...
Gruß R
Das elegante Einfügen via
ThisComponent.createInstance("com.sun.star.text.GraphicObject")
und
oText.insertTextContent(oCursor, oGraph, False)

scheint in der aktuellen 6.1.0.3 zu einem leeren Rahmen mit Lesefehler zu führen.
Ich vermute stark, das liegt an der neuen (eigentlich vielversprechenden weil schnelleren) Art, wie in LO6.1 Bilder verwaltet werden:
https://blog.documentfoundation.org/blo ... r-results/

Schnell mal einen Bug-Report geschrieben:
https://bugs.documentfoundation.org/sho ... ?id=119519

Re: Grafik als Link einfügen

Verfasst: Mo 27. Aug 2018, 11:32
von chemnitzer
Hallo
Danke für die Info. Vielleicht gibt es eine Version ohne den Bug 6.1.0.x oder dann in 6.2.x.y ?
Ich warte da einfach mal ab.
Hier noch eine Ergänzung : LO 5.2.2 Makro fügt die Bilder als Verlinkung ein, man sieht sie auch, aber beim Blättern durch die Seiten kommt wird der Link angezeigt anschließend Lesefehler und kein Bild. Das ist auch in der Druckvorschau so und LO ist komplett blockiert.
Die gleichen Erscheinungen tretten auch beim manuellen Einfügen auf !
Ist das ab einer bestimmten Version von LO so ?
Mfg
chemnitzer