Zobrazit plnou verzi příspěvku: Tisk na různé tiskárny

PeťaT
30.09.2008, 10:38
Dobrý denUž mě přestalo bavit neustále vybírat tiskárnu a nastavovat formátS nějakým echt řešením u nás nikdo nepočítá.Mám makro které umí podle formátu aktuálního sheetuudělat preview (nebo i přímý tisk) správně nastavený (podle přednastastaveného schématu)U plotru nešel nastavit formát tak jsem musel instalovat více ovladačů s různým přednastavením.Public Sub My_PrintDrawing()   Dim oPrintMgr As DrawingPrintManager   Set oPrintMgr = ThisApplication.ActiveDocument.PrintManagerDim oControlDef As ControlDefinitionSelect Case ThisApplication.ActiveDocument.Sheets.item(1).SizeCase kA4DrawingSheetSize   oPrintMgr.Printer = "hp LaserJet 1012"   oPrintMgr.ColorMode = kPrintGrayScale   oPrintMgr.NumberOfCopies = 1   oPrintMgr.Orientation = kPortraitOrientation   oPrintMgr.PaperSize = kPaperSizeA4   oPrintMgr.PrintRange = kPrintCurrentSheet   oPrintMgr.ScaleMode = kPrintFullScale   Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.item("AppFilePrintPreviewCmd")   oControlDef.ExecuteCase kA3DrawingSheetSize   oPrintMgr.Printer = "MP 2000 PCL 6"   oPrintMgr.ColorMode = kPrintGrayScale   oPrintMgr.NumberOfCopies = 1   oPrintMgr.Orientation = kLandscapeOrientation   oPrintMgr.PaperSize = kPaperSizeA3   oPrintMgr.PrintRange = kPrintCurrentSheet   oPrintMgr.ScaleMode = kPrintFullScale   Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.item("AppFilePrintPreviewCmd")   oControlDef.ExecuteCase kA2DrawingSheetSize   oPrintMgr.Printer = "HP 430 A2"   oPrintMgr.ColorMode = kPrintGrayScale   oPrintMgr.NumberOfCopies = 1   oPrintMgr.Orientation = kLandscapeOrientation   oPrintMgr.PaperSize = kPaperSizeDefault      oPrintMgr.PrintRange = kPrintCurrentSheet   oPrintMgr.ScaleMode = kPrintFullScale   Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.item("AppFilePrintPreviewCmd")   oControlDef.ExecuteCase kA1DrawingSheetSize   oPrintMgr.Printer = "HP 430 A1"   oPrintMgr.ColorMode = kPrintGrayScale   oPrintMgr.NumberOfCopies = 1   oPrintMgr.Orientation = kLandscapeOrientation   oPrintMgr.PaperSize = kPaperSizeDefault      oPrintMgr.PrintRange = kPrintCurrentSheet   oPrintMgr.ScaleMode = kPrintFullScale   Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.item("AppFilePrintPreviewCmd")   oControlDef.ExecuteCase kA0DrawingSheetSize   oPrintMgr.Printer = "HP 430 A0"   oPrintMgr.ColorMode = kPrintGrayScale   oPrintMgr.NumberOfCopies = 1   oPrintMgr.Orientation = kLandscapeOrientation   oPrintMgr.PaperSize = kPaperSizeDefault    oPrintMgr.PrintRange = kPrintCurrentSheet   oPrintMgr.ScaleMode = kPrintFullScale   Set oControlDef = ThisApplication.CommandManager.ControlDefinitions.item("AppFilePrintPreviewCmd")   oControlDef.ExecuteEnd SelectEnd Sub

Charlee
30.09.2008, 11:21
Perfektní Mám něco podobného ale v menším

Seiner
30.09.2008, 12:36
Používám také něco podobného, napsáno kdysi v Lispu:
- měřítko zjistí z měřítka razítka,
- podle výstupního formátu vybere tiskárnu (A4/3 nebo Plotter),
- umožňuje tisk zmenšených listů,
- je upraveno pro použití v script souborech pro tisk např. celé zakázky
- výstup volitelně na plotter, do plt nebo dwf souboru.
 
Kdyby to někoho zajímalo...
 
uploads/20080930_123514_Tiskni8.zip