.uno:InsertDoc im Impress

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

knicki
*
Beiträge: 14
Registriert: Fr, 24.10.2008 11:34

.uno:InsertDoc im Impress

Beitrag von knicki »

Hallo Leute,
also ich baue gerade im PHP auf der Com (OLE) Schnittstelle ein Script.
Nun möchte ich hier wie im Writer Dokument wo ja die Makroaufzeichnung geht "Datei hinzufügen" machen.
Im Impress geht dies auch nur noch mit auswahl welche Folie.
Also muss da nun was anders aussehen, was, wie ?


Erstellt von den Makro im OpenOffic

Code: Alles auswählen

sub Main2
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 ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, Array())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, Array())

rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Name"
args4(0).Value = "file:///C:/Dokumente%20und%20Einstellungen/Administrator/Desktop/Anschreiben.docx"
args4(1).Name = "Filter"
args4(1).Value = "MS Word 2007 XML"

dispatcher.executeDispatch(document, ".uno:InsertDoc", "", 0, args4())


end sub

Von mir was ohne was zusagen nix macht ^^

Code: Alles auswählen

public function AddByFile($file, $page)
		{
			$arg = array();
			$arg[] = $this->MakePropertyValue("Name", $this->ConvertToURL($file));
			$arg[] = $this->MakePropertyValue("Filter", "MS Powerpoint 97");
			$cc = $this->SetAktivPage($page);
			$this->_dp->executeDispatch($cc->Frame, ".uno:InsertDoc", "", 0, $arg);
		}
knicki
*
Beiträge: 14
Registriert: Fr, 24.10.2008 11:34

Re: .uno:InsertDoc im Impress

Beitrag von knicki »

Gibt es vielleicht eine andere Möglichkeit ?
Muss doch möglich sein Einfügen -> Datei.. per Makro auszuführen ?
knicki
*
Beiträge: 14
Registriert: Fr, 24.10.2008 11:34

Re: .uno:InsertDoc im Impress

Beitrag von knicki »

So wirklich hat keiner eine Ahnung oder !? :?
knicki
*
Beiträge: 14
Registriert: Fr, 24.10.2008 11:34

Re: .uno:InsertDoc im Impress

Beitrag von knicki »

Laut neusten Erkenntnis stand muss ich ".uno:ImportFromFile" benutzen doch mir Fehlt noch das ich angeben muss welche Folie ich nehme.
So kommt nun ein Fehler.

Code:

Code: Alles auswählen

                        $page = $this->GetPageByIndex(0);
			$arg = array();
			$arg[] = $this->MakePropertyValue("FileName", $this->ConvertToURL($file));
			$arg[] = $this->MakePropertyValue("FilterName", "MS PowerPoint 97");
			$arg[] = $this->MakePropertyValue("AsLink", false);
			$cc = $this->SetAktivPage($page);
			$this->_dp->executeDispatch($cc->Frame, ".uno:ImportFromFile", "", 0, $arg);
Fehler:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> [automation bridge] <br/><b>Description:</b> InterfaceOleWrapper_Impl::doInvoke : Unexpected exception' in ...
Antworten