Pysischen Speicherort von Dokumentvorlage ermitteln

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

Moderator: Moderatoren

Stephan
********
Beiträge: 9561
Registriert: Mi, 30.06.2004 18:36
Wohnort: nahe Berlin

Pysischen Speicherort von Dokumentvorlage ermitteln

Beitragvon Stephan » Fr, 06.01.2017 10:12

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: 158
Registriert: So, 17.10.2010 15:54

Re: Pysischen Speicherort von Dokumentvorlage ermitteln

Beitragvon Axel Richter » Sa, 07.01.2017 12:30

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/Extensions_development_basic#Opening_a_new_file_from_a_template und http://www.dannenhoefer.de/faqstarbasic/WiekannmandieDateienineinemOrdnerunddenU.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: 9561
Registriert: Mi, 30.06.2004 18:36
Wohnort: nahe Berlin

Re: Pysischen Speicherort von Dokumentvorlage ermitteln

Beitragvon Stephan » Sa, 07.01.2017 15:04

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


Ok, Danke, ist dann wohl so.


Gruß
Stephan


Zurück zu „Makros und allgemeine Programmierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste