zum Erstellen von Fotoanlagen schreibe ich ein Makro, das mir alle jpg Dateien im Verzeichnis des Writer-Dokuments in das Dokument, und zwar mit fortlaufender Nummer als Bildunterschrift, darstellt. Das klappt auch. Was noch nicht klappt ist, dass die jpg Dateien lediglich verlinkt werden. Stattdessen werden die Bilder jetzt immer eingebettet, was die Fotoanlage natürlich sehr groß macht.
Wie kann ich die Dateien lediglich verlinkt einfügen?
Danke schon im Voraus für alle Hinweise.
Hier die wesentlichen Teile meines bisherigen Codes:
Code: Alles auswählen
'Schleife: alle jpg-Dateien laden und formatieren
sFileName = Dir(sPath, 0)
iBildNr = 0
do while (sFileName <> "")
if UCase (Right(sFileName, 3)) = "JPG" then
iBildNr = iBildNr + 1
sImgPath = sPath + sFileName
sBildUnterschrift = "" + CHR$(10) + "Foto " + CStr(iBildNr) + CHR$(10) + CHR$(10) + CHR$(10)
oBitmaps = oDoc.createInstance( "com.sun.star.drawing.BitmapTable" )
oBitmaps.insertByName( "myPic", sImgPath )
oPic = oBitmaps.getByName( "myPic" )
oGraph = oDoc.createInstance("com.sun.star.text.GraphicObject")
oGraph.GraphicURL = oPic
oGraph.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
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)
oDoc.Text.insertString(oCursor, sBildUnterschrift, False)
End If
' Bild in der Größe anpassen
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_new.width = Original_SizePixel.width*factor
Size_new.Height = Original_SizePixel.Height*factor
oGraph.size = Size_new 'verändere die Größe des dargestellten Bildes
oBitmaps.removeByName("myPic") 'lösche das Bitmap-Objekt wieder
end if 'Datei ist eine Bilddatei mit Endung jpg
sFileName = Dir() 'hole nächsten Dateinamen aus dem Verzeichnis
loop 'Ende der Schleife für Bilder einbinden