von Nore47 » Mo, 21.03.2016 05:19
Hallo Stephan,
Danke für die Antwort, ich hab es jetzt auch hin bekommen das Bild in den Container zu packen - und ohne Fehlermeldung zu öffnen.
Mein Ubuntu-Zip-Programm macht da scheinbar Probleme - Na gut dann wechsle ich halt mal kurz nach Win 10 - da funktioniert es.
Kann mir jemand noch bei folgendem Problem helfen?
Die Bilder sind lassen sich jetzt zwar einfügen, sind wie gewollt an der richtigen Stelle, sehen auch so aus wie ich die Bilder haben will,
aber wenn ich die Datei Schließe - und wieder öffne dann sind nur Rahmen mit dem Pfad in Calc. Diese kann ich auch später nicht neu laden.
Gibt es eine andern Befehl beim einfügen - damit die Bilder Dauerhaft in Calc gespeichert sind?
Hier mein Code
Code: Alles auswählen
Dim dialog1 As Object
Sub initialisieren()
Dim args(0)
tmp = ermittle_pfad()
z = _
createUnoService("com.sun.star.packages.Package")
args(0) = ThisComponent.URL
z.initialize(Args())
ebene = z.getByHierarchicalName("hilfe")
alles = ebene.getElementNames()
schreiben = _
createUnoService("com.sun.star.ucb.SimpleFileAccess")
For i = LBOUND(alles()) To UBOUND(alles())
stream = _
z.getByHierarchicalName("hilfe/" & alles(i)). _
GetInputStream()
schreiben.WriteFile(tmp & "/" & alles(i), stream)
Next i
End Sub
Rem Sub dlg_start()
Rem tmp = ermittle_pfad()
Rem DialogLibraries.LoadLibrary("Standard")
Rem dialog1 = CreateUNODialog(DialogLibraries.Standard.Dtm)
Rem dialog1.GetControl("Datum").Date = cDateToIso(Date)
Rem dialog1.Model.GetByName("cmd_hilfe").ImageURL = _
Rem tmp & "/bild.png"
Rem dialog1.Execute()
Rem End Sub
Sub hilfe_aufrufen()
tmp = ermittle_pfad()
Dim aufrufen As Object
aufrufen = _
createUnoService("com.sun.star.system.SystemShellExecute")
aufrufen.execute(tmp & "/hilfe.pdf", "", 0)
End Sub
Sub entfernen()
tmp = ermittle_pfad()
If FileExists(tmp & "/hilfe.pdf") Then
Kill tmp & "/hilfe.pdf"
End If
If FileExists(tmp & "/bild.png") Then
Kill tmp & "/bild.png"
End If
If FileExists(tmp & "/logo.png") Then
Kill tmp & "/logo.png"
End If
End Sub
Function ermittle_pfad()
pfad = _
createUnoService("com.sun.star.util.PathSettings")
ermittle_pfad = pfad.temp
End Function
Rem Sub Bild_extern_einfuegen
Rem fName = FileOpenDialog ("Bitte wählen Sie eine Datei")
Rem Print "Ausgewählte Datei: "+fName
Rem End Sub
Rem Function FileOpenDialog(title As String) As String
Rem filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
Rem filepicker.Title = title
Rem filepicker.execute()
Rem files = filepicker.getFiles()
Rem FileOpenDialog=files(0)
Rem End Function
Sub LOGO_aufrufen()
tmp = ermittle_pfad()
Dim aufrufen As Object
aufrufen = _
createUnoService("com.sun.star.system.SystemShellExecute")
aufrufen.execute(tmp & "/logo.png", "", 0)
End Sub
Sub BildEinfuegen
Dim oDoc as Object
Dim mySheet as Object
Dim oCell as Object
Dim Page as Object
Dim GrafikName as String
oDoc = thisComponent
mySheet = oDoc.Sheets(0)
Page = mySheet.drawPage
NewGrafik = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Rem oCell = mySheet.getCellRangeByName("A1")
tmp = ermittle_pfad()
GrafikName = tmp & "/logo.png"
Rem GrafikName = ConvertToURL(oCell.String)
Rem msgbox GrafikName
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
NewGrafik.GraphicURL=GrafikName
NewGrafik.name = GrafikName
oCell = mysheet.getcellRangebyName("F5")'Ankerposition festlegen
page.add(NewGrafik)
NewGrafik.Anchor = oCell
Dim Size As New com.sun.star.awt.Size
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 10 'Grösse festlegen
oGrafikGroesse.width = breite * 10
NewGrafik.setSize(oGrafikGroesse)
Rem oDoc = thisComponent
Rem mySheet = oDoc.Sheets(0)
Rem Page = mySheet.drawPage
NewGrafik = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Rem oCell = mySheet.getCellRangeByName("A1")
GrafikName = tmp & "/logo.png"
Rem GrafikName = ConvertToURL(oCell.String)
Rem msgbox GrafikName
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
NewGrafik.GraphicURL=GrafikName
NewGrafik.name = GrafikName
oCell = mysheet.getcellRangebyName("F10")'Ankerposition festlegen
page.add(NewGrafik)
NewGrafik.Anchor = oCell
Rem Dim Size As New com.sun.star.awt.Size
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
Rem dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 20 'Grösse festlegen
oGrafikGroesse.width = breite * 20
NewGrafik.setSize(oGrafikGroesse)
End Sub
PS: hab hier die Sachen, die ich nicht beim Versuch nicht brauche auf Rem gesetzt - kann man ja vielleicht noch brauchen
Danke
LG Bernhard
Hallo Stephan,
Danke für die Antwort, ich hab es jetzt auch hin bekommen das Bild in den Container zu packen - und ohne Fehlermeldung zu öffnen.
Mein Ubuntu-Zip-Programm macht da scheinbar Probleme - Na gut dann wechsle ich halt mal kurz nach Win 10 - da funktioniert es.
Kann mir jemand noch bei folgendem Problem helfen?
Die Bilder sind lassen sich jetzt zwar einfügen, sind wie gewollt an der richtigen Stelle, sehen auch so aus wie ich die Bilder haben will,
aber wenn ich die Datei Schließe - und wieder öffne dann sind nur Rahmen mit dem Pfad in Calc. Diese kann ich auch später nicht neu laden.
Gibt es eine andern Befehl beim einfügen - damit die Bilder Dauerhaft in Calc gespeichert sind?
Hier mein Code
[code]
Dim dialog1 As Object
Sub initialisieren()
Dim args(0)
tmp = ermittle_pfad()
z = _
createUnoService("com.sun.star.packages.Package")
args(0) = ThisComponent.URL
z.initialize(Args())
ebene = z.getByHierarchicalName("hilfe")
alles = ebene.getElementNames()
schreiben = _
createUnoService("com.sun.star.ucb.SimpleFileAccess")
For i = LBOUND(alles()) To UBOUND(alles())
stream = _
z.getByHierarchicalName("hilfe/" & alles(i)). _
GetInputStream()
schreiben.WriteFile(tmp & "/" & alles(i), stream)
Next i
End Sub
Rem Sub dlg_start()
Rem tmp = ermittle_pfad()
Rem DialogLibraries.LoadLibrary("Standard")
Rem dialog1 = CreateUNODialog(DialogLibraries.Standard.Dtm)
Rem dialog1.GetControl("Datum").Date = cDateToIso(Date)
Rem dialog1.Model.GetByName("cmd_hilfe").ImageURL = _
Rem tmp & "/bild.png"
Rem dialog1.Execute()
Rem End Sub
Sub hilfe_aufrufen()
tmp = ermittle_pfad()
Dim aufrufen As Object
aufrufen = _
createUnoService("com.sun.star.system.SystemShellExecute")
aufrufen.execute(tmp & "/hilfe.pdf", "", 0)
End Sub
Sub entfernen()
tmp = ermittle_pfad()
If FileExists(tmp & "/hilfe.pdf") Then
Kill tmp & "/hilfe.pdf"
End If
If FileExists(tmp & "/bild.png") Then
Kill tmp & "/bild.png"
End If
If FileExists(tmp & "/logo.png") Then
Kill tmp & "/logo.png"
End If
End Sub
Function ermittle_pfad()
pfad = _
createUnoService("com.sun.star.util.PathSettings")
ermittle_pfad = pfad.temp
End Function
Rem Sub Bild_extern_einfuegen
Rem fName = FileOpenDialog ("Bitte wählen Sie eine Datei")
Rem Print "Ausgewählte Datei: "+fName
Rem End Sub
Rem Function FileOpenDialog(title As String) As String
Rem filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
Rem filepicker.Title = title
Rem filepicker.execute()
Rem files = filepicker.getFiles()
Rem FileOpenDialog=files(0)
Rem End Function
Sub LOGO_aufrufen()
tmp = ermittle_pfad()
Dim aufrufen As Object
aufrufen = _
createUnoService("com.sun.star.system.SystemShellExecute")
aufrufen.execute(tmp & "/logo.png", "", 0)
End Sub
Sub BildEinfuegen
Dim oDoc as Object
Dim mySheet as Object
Dim oCell as Object
Dim Page as Object
Dim GrafikName as String
oDoc = thisComponent
mySheet = oDoc.Sheets(0)
Page = mySheet.drawPage
NewGrafik = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Rem oCell = mySheet.getCellRangeByName("A1")
tmp = ermittle_pfad()
GrafikName = tmp & "/logo.png"
Rem GrafikName = ConvertToURL(oCell.String)
Rem msgbox GrafikName
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
NewGrafik.GraphicURL=GrafikName
NewGrafik.name = GrafikName
oCell = mysheet.getcellRangebyName("F5")'Ankerposition festlegen
page.add(NewGrafik)
NewGrafik.Anchor = oCell
Dim Size As New com.sun.star.awt.Size
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 10 'Grösse festlegen
oGrafikGroesse.width = breite * 10
NewGrafik.setSize(oGrafikGroesse)
Rem oDoc = thisComponent
Rem mySheet = oDoc.Sheets(0)
Rem Page = mySheet.drawPage
NewGrafik = oDoc.createInstance("com.sun.star.drawing.GraphicObjectShape")
Rem oCell = mySheet.getCellRangeByName("A1")
GrafikName = tmp & "/logo.png"
Rem GrafikName = ConvertToURL(oCell.String)
Rem msgbox GrafikName
if not FileExists(GrafikName) then
msgbox "Die Grafik ist nicht vorhanden!"
exit sub
end if
NewGrafik.GraphicURL=GrafikName
NewGrafik.name = GrafikName
oCell = mysheet.getcellRangebyName("F10")'Ankerposition festlegen
page.add(NewGrafik)
NewGrafik.Anchor = oCell
Rem Dim Size As New com.sun.star.awt.Size
oBildGroesse =NewGrafik.GraphicObjectFillBitmap.GetSize
hoehe = oBildGroesse.height ' in Pixeln
breite = oBildGroesse.width 'in Pixeln
Rem dim oGrafikGroesse as new com.sun.star.awt.Size
oGrafikGroesse.height = hoehe * 20 'Grösse festlegen
oGrafikGroesse.width = breite * 20
NewGrafik.setSize(oGrafikGroesse)
End Sub
[/code]
PS: hab hier die Sachen, die ich nicht beim Versuch nicht brauche auf Rem gesetzt - kann man ja vielleicht noch brauchen
Danke
LG Bernhard