třeba takto (v podstatě makro opsané z výše uvedených stránek):
Sub tisk_faktury
dim dokument as object
dim sRange as string
dim CRA(0) as new com.sun.star.table.CellRangeAddress
dokument = ThisComponent
sFaktura = dokument.Sheets.GetByName("Faktura")
'základní tiskové vlastnosti
Dim vl_tisku(2) as new com.sun.star.beans.PropertyValue
Dim velikost As New com.sun.star.awt.Size
velikost.Width = 21000 ' tj 21 cm šířky
velikost.Height = 29700 ' tj 29,7 cm výšky
'vl_tisku (0).Name = "Name"
'vl_tisku (0).Value = "HP LaserJet 1018" ' název Vaší tiskárny
vl_tisku (1).Name = "PaperOrientation"
vl_tisku (1).Value = com.sun.star.view.PaperOrientation.PORTRAIT
' nebo com.sun.star.view.PaperOrientation . LANDSCAPE
vl_tisku (2).Name = "PaperSize"
vl_tisku (2). Value = velikost
dokument.Printer = vl_tisku ()
'nastavíme tiskovou proměnou
Dim tisk(3) as new com.sun.star.beans.PropertyValue
tisk(0).Name = "Pages" ' Výběr stránek
tisk(0).Value = "1" ' volby oddělujete čárkou
tisk(1).Name = "CopyCount" ' počet kopií
tisk(1).Value = 1
tisk(2).Name = "Sort" ' budete třídit?
tisk(2).Value = True ' ano
tisk(3).Name = "Wait" ' synchronizace tisku?
tisk(3).Value = True ' ano
sRange = "A1:S57"
CRA(0) = sFaktura.getCellRangeByName(sRange).RangeAddress
sFaktura.setPrintAreas(CRA())
dokument.print(tisk())
End sub
Ještě vhodné doplnit o výběr tiskárny:
End sub
sub nastav_tiskarnu
pomocnik = CreateUnoService("com.sun.star.frame.DispatchHelper")
pomocnik.executeDispatch(thisComponent.getCurrentController(),".uno:PrinterSetup", "_self", 0, Array())
end sub
Editoval ludviktrnka (24. 8. 2021 11:46:12)