Pysischen Speicherort von Dokumentvorlage ermitteln

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

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Pysischen Speicherort von Dokumentvorlage ermitteln

Beitrag von Stephan »

Hallo,

ich möchte (unter LibreOffice) ein neues Textdokument, basierend auf einer Dokumentvorlage, erstellen. Soweit kein Problem:

Code: Alles auswählen

Dim args(0) As New com.sun.star.beans.PropertyValue
Dim sURL As String
sURL = "file:///home/test/vorlage.ott"
args(0).Name  = "AsTemplate"
args(0).Value = True
StarDesktop.loadComponentFromUrl(sURL, "_blank", 0, args())
aber:
Wie erzeuge ich ein solches Dokument (und greife auf die Dokumentvorlage zurück) wenn ich nur weiß das die Dokumentvorlage unter Datei-Neu-Vorlagen und Dokumente eingetragen ist, und ich nicht weiß liegt die Vorlage physisch im user-, share- oder uno-Packages (auch unterschieden nach user und share) Verzeichnis oder noch anderswo?

Muss ich überhaupt den physischen Pfad zur Vorlage kennen/Ermitteln WENN ich weiß das die Vorlage in die Vorlagenverwaltung integriert ist, oder gibt es dafür einen Trick der das vereinfacht?



Gruß
Stephan
Axel Richter
****
Beiträge: 159
Registriert: So, 17.10.2010 16:54

Re: Pysischen Speicherort von Dokumentvorlage ermitteln

Beitrag von Axel Richter »

Hallo Stephan,

ich glaube schon, dass man den physischen Pfad zur Vorlage ermitteln muss.

Ich habe da mal was aus https://wiki.openoffice.org/wiki/Extens ... a_template und http://www.dannenhoefer.de/faqstarbasic ... ddenU.html zusammengebastelt.

Code: Alles auswählen

sub getTemplatesByName()

 sTemplateName = "bus*.ott"
 dim liste() as string
  
 oPathService=CreateUNOService("com.sun.star.util.PathSettings")
 sTemplatePaths=oPathService.Template
 do 
  SCPos=InStr (sTemplatePaths,";")
  if SCPos>0 then
    sMyTemplatePath=Left(sTemplatePaths, SCPos-1)
  else
    sMyTemplatePath=sTemplatePaths
  end if
  getFilePaths liste, 0, sMyTemplatePath
  sTemplatePaths=mid(sTemplatePaths, SCPos+1, len(sTemplatePaths)-SCPos)
 loop while SCPos > 0

 for each sTemplatePath in liste
  if sTemplatePath like "*/" & sTemplateName then msgbox sTemplatePath
 next

end sub

sub getFilePaths(liste, z as long, folder as string)

 sFolderUrl = ConvertToUrl(folder)
 oSimpleFileAccess = createUnoService("com.sun.star.ucb.SimpleFileAccess")
 on error goto out
 aFolders = oSimpleFileAccess.getFolderContents(sFolderUrl, true)
 for each sFile in aFolders
  if oSimpleFileAccess.isFolder(sFile) then
   getFilePaths(liste, z, sFile)
  else
   redim preserve liste(z)
   liste(z) = sFile
   z=z+1
  end if  
 next
 
out:

end sub
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Pysischen Speicherort von Dokumentvorlage ermitteln

Beitrag von Stephan »

ich glaube schon, dass man den physischen Pfad zur Vorlage ermitteln muss.
Ok, Danke, ist dann wohl so.


Gruß
Stephan
Antworten