ho un file calc con tre fogli, nel primo importo i dati da un txt, negli altri due li elaboro per la stampa.
dovrei stampare i fogli due e tre alla pressione di un pulsante. il foglio due su una stampante barcode/rfid, il tre su una laser.
quello che vorrei ottenere è la stampa dei due fogli con un singolo click, senza che compaia alcuna finestra di scelta della stampante. visto che è per lavorare in un ufficio con cambi frequenti di hw, il massimo sarebbe che i nomi delle stampanti vengano importati da file esterno.
per il momento ho creato il pulsante al quale ho assegnato una macro di stampa per i due fogli. qui sotto il codice.
Codice: Seleziona tutto
sub Stampa
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
dim args2(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args2(0).Name = "Copies"
args2(0).Value = 1
args2(1).Name = "Selection"
args2(1).Value = true
args2(2).Name = "Collate"
args2(2).Value = false
for i=1 to 3
args1(0).Value = i
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Print", "", 0, args2())
next i
end sub
Codice: Seleziona tutto
Sub Stampa()
Application.ActivePrinter = "Generic / Text Only su Ne05:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Generic / Text Only su Ne05:", Collate:=True
Application.ActivePrinter = "Kyocera KM-2560 su Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Kyocera KM-2560 su Ne03:", Collate:=True
Application.WindowState = xlMinimized
Workbooks("Dorso.xls").Close
End Sub
grazie!