Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 24. 8. 2021 11:26:03

Jarda_0013
Člen
Registrace: 3. 8. 2021
Příspěvků: 1

Makro - tisk

Dobrý den všem, hledal jsem to v tématech, ale nenalezl. Když se snaží udělat makro na tisk, tak se mi vždy otevře pouze dialogové okno s výběrem tiskárny, ale tisk se sám neprovede. Nemárte s tím někdo zkušenosti? Díky moc.

Offline

#2 24. 8. 2021 11:33:11

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 632

Re: Makro - tisk

Tisk makrem rozhodně lze napřímo (např. stisk tačítka = vytištěná stránka bez mezivoleb). Vše je dost popsané zde: https://www.openoffice.cz/doplnky/prace … ani-a-tisk


LibreOffice 6.2.

Offline

#3 24. 8. 2021 11:41:47

ludviktrnka
Člen
Registrace: 9. 7. 2009
Příspěvků: 632

Re: Makro - tisk

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)


LibreOffice 6.2.

Offline

Zápatí