nicola ha scritto:
Ciao, vorrei salvare la prima pagina di un file "ricevuta.ods" (calc)
in formato pdf con una macro da assegnare ad un pulsante, sino a
questo punto ci sono arrivato col registratore di macro, però vorrei
assegnargli il numero progressivo contenuto nella cella "c5" per
ottenere ricevuta1, ricevuta2 ecc. potete aiutarmi?
grazie Nicola
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim oSheet as object
dim dispatcher as object
dim document as object
dim oCell
dim oNome
Dim oDoc
Dim oPath
Dim sDocURL
oDoc = ThisComponent
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then
GlobalScope.BasicLibraries.LoadLibrary("Tools")
End If
If (oDoc.hasLocation()) Then
sDocURL = oDoc.getURL()
oPath = DirectoryNameoutofPath(sDocURL, "/") & "/"
else
rem ovviamente la directory deve esistere
oPath = "/Directory_di_mia_scelta" & "/"
endif
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
rem foglio attivo
oSheet = ThisComponent.CurrentController.ActiveSheet
oCell = oSheet.getCellRangebyName("C5").getCellByPosition(0,0)
rem nella Variabile oNome puoi aggiungere con la & e le virgolette il
nome che vuoi
rem ad esempio & "ricevuta" prima di oCell.string
oNome = convertToUrl(oPath & oCell.string & ".pdf")
rem controllo del nome file
rem Print oNome
args1(0).Name = "URL"
args1(0).Value = oNome
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
args1(2).Name = "SelectionOnly"
args1(2).Value = false
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0,
args1())
end sub
ciao
Beppe
presa da pagina 107 di AndrewMacro.pdf
5.35. Get the document URL, filename, and directory
Do not try to obtain the document URL unless it has a URL. If the
document has not yet been
stored, for example. Rather than write my own routines, I use some
functions in the Strings
Module stored in the Tools library.
Listing 5.90: Extracting file and path information from a URL.
REM Author: Andrew Pitonyak
Sub DocumentFileNames
Dim oDoc
Dim sDocURL
oDoc = ThisComponent
If (Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools")) Then
GlobalScope.BasicLibraries.LoadLibrary("Tools")
End If
If (oDoc.hasLocation()) Then
sDocURL = oDoc.getURL()
Print "Document Directory = " & DirectoryNameoutofPath(sDocURL, "/")
Print "Document File Name = " & FileNameoutofPath(sDocURL, "/")
End If
End Sub
Se vuoi che da un documento non salvato scelga Path selezionato in
Strumenti->Opzioni->percorso
ti mando un esempio da inserire nella macro:
A meta' macro si vede un message_box con tutti gli elementi del Path ai
quali accedere.
Sub GetWritePath
Dim parametro
Dim aArg(0) As New com.sun.star.beans.PropertyValue
aArg(0).Name = "nodepath"
aArg(0).Value = "org.openoffice.Office.Paths"
oCP = CreateUnoService("com.sun.star.configuration.ConfigurationProvider")
oCA =
oCP.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess",aArg)
oPaths = oCA.getPropertyValue("Paths")
oPathSubst = CreateUnoService("com.sun.star.util.PathSubstitution")
' these names can be used to access the path configuration
sPathNames = oPaths.getElementNames()
sTxt = "Path Names: " & chr(10)
For i = 0 To UBound(sPathNames) Step 1
sTxt = sTxt & sPathNames(i) & chr(10)
Next i
msgbox sTxt
' Temp: Temporary files, Work: My Documents
' set a name from them
oAutoCorrectPath = oPaths.getByName("Work")
' sometimes default path includes variable like $(user) or ...
' needs to substitute them
sTemplatePath =
oPathSubst.substituteVariables(oAutoCorrectPath.WritePath,True)
parametro = sTemplatePath + "/MIO_FILE_DA_APRIRE.ott"
msgbox parametro
rem shell("soffice -n",10,parametro,FALSE)
End Sub
--
le nuvole non hanno regole,
perchè non hanno mai rinunciato
alla libertà di sognare.
---------------------------------------------------------------------
To unsubscribe, e-mail: utenti-unsubscr...@it.openoffice.org
For additional commands, e-mail: utenti-h...@it.openoffice.org