Pannello di Controllo Moderatore ]

macro per esportare file col nome corrente

Creare una macro - Scrivere uno script - Usare le API

macro per esportare file col nome corrente

Messaggioda alpaca » venerdì 25 marzo 2016, 4:01

salve, premetto che non ho nessuna conoscenza di linguaggio di programmazione... quindi magari la mia domanda sarà banale... ma io proprio non ci riesco...
allora ho creato (tramite registrazione) una macro che prima mi modifica un file e successivamente lo esporta in pdf.... il problema è che qualsiasi file io applico questa macro.. esso viene esportato in pdf sempre col nome del file su cui ho eseguito la registrazione... mentre io vorrei che il nome del file esportato sia collegato al nome del file aperto...
in altre parole attualmente... qualsiasi file a cui applico questa macro... viene esportato in pdf sempre col nome bn.pdf (che è il nome usato quando ho registrato la macro) , mentre io vorrei che se applico la macro ad esempio ad un file che si chiama ciao.pdf essa venga esportato con un nome tipo ciao1.pdf oppure ciaomodificato.pdf... (andrebbe bene pure se viene usato lo stesso nome.. quindi ciao.pdf... però ho paura che essendo aperto un file con lo stesso nome... ci siano problemi di scrittura)
è possibile ?
openoffice 3.1 su windows vista
alpaca
 
Messaggi: 3
Iscritto il: venerdì 25 marzo 2016, 3:36

Re: macro per esportare file col nome corrente

Messaggioda patel » venerdì 25 marzo 2016, 10:06

che ne dici di farci vedere la macro ?
comunque puoi ricavare il nome del file con

Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub DocumentName
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then GlobalScope.BasicLibraries.LoadLibrary("Tools")
sDocURL = ThisComponent.getURL()
fname =  FileNameoutofPath(sDocURL, "/")
fname = left(fname,len(fname) - 4
Print "Document File Name = " & Fname
End Sub
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3291
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro per esportare file col nome corrente

Messaggioda alpaca » venerdì 25 marzo 2016, 15:20

patel ha scritto:che ne dici di farci vedere la macro ?


si.. scusami...

questa è la parte della macro che esporta il file:

Codice: Seleziona tutto   Espandi visualeStringi visuale
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Users/Win8/Desktop/prove/bn.pdf"
args2(1).Name = "FilterName"
args2(1).Value = "writer_pdf_Export"
args2(2).Name = "FilterData"
args2(2).Value = Array()

dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args2())


ps. ho tolto la parte di codice dentro array perchè era lunghisima.. e penso che non è importante... se serve la aggiungo....
openoffice 3.1 su windows vista
alpaca
 
Messaggi: 3
Iscritto il: venerdì 25 marzo 2016, 3:36

Re: macro per esportare file col nome corrente

Messaggioda patel » venerdì 25 marzo 2016, 18:00

Codice: Seleziona tutto   Espandi visualeStringi visuale
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then GlobalScope.BasicLibraries.LoadLibrary("Tools")
sDocURL = ThisComponent.getURL()
fname =  FileNameoutofPath(sDocURL, "/")
fname = left(fname,len(fname) - 4
dim args2(2) as new com.sun.star.beans.PropertyValue
args2(0).Name = "URL"
args2(0).Value = "file:///C:/Users/Win8/Desktop/prove/" & fname & ".pdf"
args2(1).Name = "FilterName"
args2(1).Value = "writer_pdf_Export"
args2(2).Name = "FilterData"
args2(2).Value = Array()
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args2())
Ultima modifica di patel il domenica 27 marzo 2016, 9:06, modificato 1 volta in totale.
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3291
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro per esportare file col nome corrente

Messaggioda alpaca » sabato 26 marzo 2016, 2:58

la prima volta che ho eseguito la macro mi ha dato errore su questa riga:

args2(0).Value = "file:///C:/Users/Win8/Desktop/prove/" & fname" & ".pdf"

penso che l'errore sia dipeso che hai dimenticato le " prima di fname... quindi l'ho corretto nel seguente modo:

args2(0).Value = "file:///C:/Users/Win8/Desktop/prove/" & "fname" & ".pdf"

quindi ho eseguito la macro.. e in riferimento all'ultima riga del codice mi ha dato il seguente errore:

variabile dell'oggetto non impostata

ps. ho eseguito la macro su libreoffice e non su openoffice.. ma penso che sia la stessa cosa....
openoffice 3.1 su windows vista
alpaca
 
Messaggi: 3
Iscritto il: venerdì 25 marzo 2016, 3:36

Re: macro per esportare file col nome corrente

Messaggioda Gaetanopr » sabato 26 marzo 2016, 9:47

Codice: Seleziona tutto   Espandi visualeStringi visuale
args2(0).Value = "file:///C:/Users/Win8/Desktop/prove/" & fname & ".pdf"
Openoffice 4.1 su windows xp
Gaetanopr
Volontario
Volontario
 
Messaggi: 2722
Iscritto il: mercoledì 21 novembre 2012, 21:07

Re: macro per esportare file col nome corrente

Messaggioda patel » domenica 27 marzo 2016, 9:07

giusto, ho corretto, c'era una " in più
-------------------
OpenOffice 4.1 e Libre Office 6.o.7.3 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 3291
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite