Najděte si v nápovědě téma
Nastavení tiskáren
Na unixových platformách podporuje LibreOffice přímo pouze tiskárny používající technologii PostScript. Jiné tiskárny je třeba nastavit, jak je popsáno v části Ovladače tiskáren v LibreOffice. LibreOffice automaticky poskytuje tiskárnu s výchozím ovladačem pro každou systémovou frontu. Podle potřeby můžete přidat další tiskárny.
Existeje možnost nastavit předvolby pro určité případy. Systém automaticky vybere sám existující primární tiskárnu - je li tam tiskáren více. Pokud chcete tisknout na jiné tak to by mohl být problém. Ale obecně bych to jako problém neviděl. Je-li tam tiskárna - makro ji najde.
Existuje jedna málo používaná metoda - tisk do souboru. Toto bych doporučil zejména v případě tisku na síťové tiskárně. Ovšem to už se z OOo neovládá - nebo jen pomocí Shell-u.
V případě předvoleb to můžete udělat mimo buňky v sešitě makrem například dále popsaným způsobem :
Máte určitě více možností řešení.
- Udělejte proměnnou pro všechny různé tiskárny :
vl_tisku (0).Value = "Moje_tiskárna"
Do makra zadáte například deklaraci a kód :
Dim tisk As string
tisk = inputbox("zadejte název tiskárny tak jak je uvedeno v systému Windows","ZADÁNÍ TISKÁRNY","PŘEDNASTAVENÁ TISKÁRNA")
vl_tisku (0).Value = tisk
Lze také iterovat například několik tiskáren dokud se nenajde ta správná. Takže jako "string" nadefinujete všechny alternativy, které přichází do úvahy a názvy zadáte do array tisk(počet) a iterujete pomocí cyklu For..Next. Podmínkou IF OnErrorGoTo přeskočíte chybové volby.
Ale já bych doporučil jednodušší způsob, který může být také uložen v makru jako poslední možnost v případě, že makro tiskárnu nenajde. Nahrajte makro pomocí UNO. Stačí například toto:
sub tisk
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Print", "", 0, Array())
end sub
Tiskárny systému se dají volat pomocí Shell. Shell obecně volá externí programy a procedury. Existuje asi více návodů, ale také například pomocí pythonu. Shell - Příkazy Shellu
K otestování spuštění služby lze použít makro :
Sub oHowmanyServiceSupported
Dim oManager
Dim uService
oManager = GetProcessServiceManager()
uService = oManager.GetAvailableServiceNames()
for i = 0 to UBound(uService)
otmp = mid(uService(i),14,11)
If otmp = "awt.Printer" then
oDisp = oDisp & uService(i) & Chr$(10)
End If
next i
msgbox(oDisp,0,"Uno Service")
End Sub
Takže vidíte, že se volá modul UNO "awt.Printer". Pokud si vyhledáte na netu toto heslo, najdete jistě další možnosti. UNO obecně také umí pracovat s operačním systémem (Basic nikoliv).
Ovšem obavy, že uživatel něco zkazí při volbě není příliš důvodné. Podle mne jde spíš o tiskové oblasti a podobné záležitosti jako je tisk levých a pravých stran aj....). Můžete například vsunout na konec MsgBox s informací o spuštění klvesové zkratky pro výběr tiskové oblasti a tisk.
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ