Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
[RISOLTO] Definire stampante
#1
ciao
prima non mi accadeva ma ora che collegate al pc ho due stampanti è sorto un piccolo problema.
E' possibile fare una macro che scelga la stampante?

grazie  Smile

parte della macro che avevo fatto è questa:
Codice:
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 9

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$1"

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

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


end sub
[RISOLTO+]
caldo è bello, dolce è buono se ci metti anche un sorriso sei perfetto
Cita messaggio
Grazie da:
#2
Cerca di essere più dettagliato. Che sistema usi? La macro la vuoi fare per chi/cosa?
Cita messaggio
Grazie da:
#3
ciao e grazie Eugenio della tua attenzione e scusami per il linguaggio per niente tecnico.
Ho OpenOffice4. Ho creato questa macro con registra macro e penso che bisognerebbe modificare la riga dove si da l'ordine alla stampante (una delle due: "XP-58")però non so cosa fare

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

ho messo "_ " dopo ":" perchè altrimenti esce uno smile

grazie ancora per il tuo aiuto
caldo è bello, dolce è buono se ci metti anche un sorriso sei perfetto
Cita messaggio
Grazie da:
#4
prova questa
Codice:
sub GetAllPrinters() ' permette la scelta della stampante
'On Error Resume Next
Dim oFrame ' Frame from the current window.
Dim oToolkit ' Container window's com.sun.star.awt.Toolkit
Dim oDisp ' Dispatch helper.
Dim oList ' XTopWindowListener that handles the interactions.
REM Get the com.sun.star.awt.Toolkit
oFrame = ThisComponent.getCurrentController().getFrame()
oToolkit = oFrame.getContainerWindow().getToolkit()
oList = createUnoListener("TopWPrint_", "com.sun.star.awt.XTopWindowListener")
oDisp = createUnoService("com.sun.star.frame.DispatchHelper")
oToolkit.addTopWindowListener(oList)
REM Insert an OLE object!
oDisp.executeDispatch(oFrame, ".uno:Print", "", 0, Array())
oToolkit.removeTopWindowListener(oList)
End sub

Sub TopWPrint_windowOpened(e As Object)
Dim oAC
Dim oACComboBox
Dim oACList
Dim oACCancel
Dim k%
oAC = e.source.AccessibleContext
e.source.setVisible(false)
oACComboBox = SearchOneSecForChild(oAC, "", "", _
com.sun.star.accessibility.AccessibleRole.COMBO_BOX)
oACList = SearchOneSecForChild(oACComboBox, "", "", _
com.sun.star.accessibility.AccessibleRole.LIST)
oACCancel = SearchOneSecForChild(oAC, "Cancel", "", _
com.sun.star.accessibility.AccessibleRole.PUSH_BUTTON)
Dim sResult(oACList.AccessibleChildCount-1) As String
For k = 0 to oACList.AccessibleChildCount-1
sResult(k) = oACList.getAccessibleChild(k).AccessibleName
Next k
oACCancel.doAccessibleAction(0)
End Sub

Sub TopWPrint_windowClosing(e As Object)
End Sub

Sub TopWPrint_windowClosed(e As Object)
End Sub

Sub TopWPrint_windowMinimized(e As Object)
End Sub

Sub TopWPrint_windowNormalized(e As Object)
End Sub


Sub PrintAllPrinterNames()
Dim oPrintServer ' The print server service.
Dim oCore ' Get classes and other objects by name.
Dim oClass ' XPrinterServer class object.
Dim oMethod ' getPrinterNames method from the XPrinterServer class.
Dim aNames ' List of printer names.
' Create the object that will not be directly usable until OOo 3.5.
oPrintServer = CreateUnoService("com.sun.star.awt.PrinterServer")
oCore = CreateUnoService("com.sun.star.reflection.CoreReflection")
' Get the class object for the XPrinterServer interface.
oClass = oCore.forName("com.sun.star.awt.XPrinterServer")
' Get the getPrinterNames method for the XPrinterServer class.
oMethod = oClass.getMethod("getPrinterNames")
' Call the getPrinterNames method on the PrinterServer object.
aNames = oMethod.invoke(oPrintServer, Array())
MsgBox Join(aNames, CHR$(10))
End Sub

Sub DisplayPrinterProperties
Dim Props 'Array of com.sun.star.beans.PropertyValue
Dim i% 'Index variable of type Integer
Dim s$ 'Display string
Dim v '
Dim sName$ '
On Error Resume Next
Props = ThisComponent.getPrinter()
For i = 0 To UBound(Props)
sName = props(i).Name
v = props(i).Value
s = s & sName & " = "
If sName = "PaperOrientation" Then
REM com.sun.star.view.PaperOrientation.LANDSCAPE also supported
s = s & IIf(v=com.sun.star.view.PaperOrientation.PORTRAIT,_
"Portrait", "Landscape") & " = " & CStr(v)
ElseIf sName = "PaperFormat" Then
Select Case v
Case com.sun.star.view.PaperFormat.A3
s = s & "A3"
Case com.sun.star.view.PaperFormat.A4
s = s & "A4"
Case com.sun.star.view.PaperFormat.A5
s = s & "A5"
Case com.sun.star.view.PaperFormat.B4
s = s & "B4"
Case com.sun.star.view.PaperFormat.B5
s = s & "B5"
Case com.sun.star.view.PaperFormat.LETTER
s = s & "LETTER"
Case com.sun.star.view.PaperFormat.LEGAL
s = s & "LEGAL"
Case com.sun.star.view.PaperFormat.TABLOID
s = s & "TABLOID"
Case com.sun.star.view.PaperFormat.USER
s = s & "USER"
Case Else
s = s & "Unknown value"
End Select
s = s & " = " & CStr(v)
ElseIf sName = "PaperSize" Then
REM type is com.sun.star.awt.Size
REM The size is in TWIPS and there are 1440 twips per inch
s=s & CDbl(v.Width)/1440.0 & "x" & CDbl(v.Height)/1440.0 & " (inches)"
Else
s = s & CStr(v)
End If
s = s & CHR$(10)
Next
MsgBox s, 0, "Printer Properties"
End Sub

sub stampa
Dim Props(1) As New com.sun.star.beans.PropertyValue
Props(0).Name = "Pages" : Props(0).Value = "1-2"
ThisComponent.print(Props())
end sub

Sub PrintWithOptions()
Dim oOpt(2) as new com.sun.star.beans.PropertyValue
oOpt(0).Name = "Name" : oOpt(0).Value = "PDFCreator"
oOpt(1).Name = "PaperOrientation" : oOpt(1).Value = com.sun.star.view.PaperOrientation.PORTRAIT
oOpt(2).Name = "Pages" : oOpt(2).Value = "1-2"
ThisComponent.Printer = oOpt()
ThisComponent.print oOpt()
End Sub
Cita messaggio
Grazie da: Alessandro Moroni
#5
Alessandro devi inserire la macro tra i tag code, vedi immagine.


Allegati
.png   1.png (Dimensione: 508 byte / Download: 29)
Cita messaggio
Grazie da: Alessandro Moroni
#6
Ciao
Scusami e grazie d4rkheart ...ho imparato una cosa nuova

Grazie Patel dell'aiuto
Ho modificato la mia macro con le tue indicazioni ed ora va benissimo. Tutto ok mi aggiorna la tabella pivot e stampa scontrino su stampante dedicata  Smile  Smile  Smile

Codice:
sub StampaScontr
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 ----------------------------------------------------------------------
Doc = Thiscomponent
sh = Doc.Sheets.getByName("TabPSc")
For each pivot in Sh.getDataPilotTables
pivot.refresh
Next pivot

rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 12

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$1"

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

rem ----------------------------------------------------------------------
Dim oOpt(2) as new com.sun.star.beans.PropertyValue
oOpt(0).Name = "Name" : oOpt(0).Value = "XP-58"
oOpt(1).Name = "PaperOrientation" : oOpt(1).Value = com.sun.star.view.PaperOrientation.PORTRAIT
oOpt(2).Name = "Pages" : oOpt(2).Value = "1-2"
ThisComponent.Printer = oOpt()
ThisComponent.print oOpt()
end sub
caldo è bello, dolce è buono se ci metti anche un sorriso sei perfetto
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)