Potreboval by som vedieť pri akom postupe sa to stane a akú chybu to zahlási. Celé embedovanie (okrem jazykových nastavení) sú totiž tieto krátka funkcie:
REM Procedúra pre prechádzanie všetkých obrázkov
Sub Embeduj_externe_obrazky
dim dokument, obrazky, obrazok as object
dim i, pocet_odkazov, pocet_zmenenych as long
dokument = ThisComponent
pocet_zmenenych = 0
pocet_odkazov = 0
obrazky = dokument.getDrawPage()
for i=0 To obrazky.getCount()-1 ' Pre všetky obrázky
obrazok = obrazky.getByIndex(i)
if InStr(obrazok.GraphicURL, "vnd.sun") = 0 Then ' Ak nie je obrázok vnútorný
if Embeduj_obrazok(obrazok, dokument) Then ' Ak sa ho podarilo zmeniť na vnútorný
pocet_zmenenych = pocet_zmenenych + 1
else
pocet_odkazov = pocet_odkazov + 1
end if
end if
next i
Nastav_jazyk_text
msgbox Zmenenych+str(pocet_zmenenych)+Obrazkov+Nezmenenych+str(pocet_odkazov)+Obrazkov+"."
end Sub
REM Funkcia, ktorá embeduje obrázok (vložený ako odkaz) do vnútra dokumentu
Function Embeduj_obrazok(obrazok, dokument) As Boolean
dim bitmapa as object
dim nova_URL, nazov as string
nazov=obrazok.LinkDisplayName
bitmapa=dokument.createInstance("com.sun.star.drawing.BitmapTable")
if bitmapa.hasByName(nazov) Then ' Obrázok s príslušným menom už existuje - nie je možný prevod
Embeduj_obrazok = False
exit function
end if
bitmapa.insertByName(nazov, obrazok.GraphicURL) ' Vloženie obrázku ako vnútorného
nova_URL=bitmapa.getByName(nazov) ' Vnútorná cesta k obrázku
obrazok.GraphicURL=nova_URL ' Zmena cesty na vnútornú
Embeduj_obrazok=True
end Function