Hallo RK
hier der Code und die Überwachung von oDrawPrintMgr (Anhang)
ich habe getestet mit A3 über die kPapersizeA3 und mit kPapersizeCustom über PaperHeight und PaperWidth
Am OCE TDS 600 kommt immer ein A0 Blatt(zentriert in Mitte die A3 Zeichnung im richtigen Maßstab)
Die Papergröße wird anscheinend nicht richtig an den Drucker übermittelt
Ich hab da einiges über sendkey und rfc an den oce etc gelesen, aber eigentlich sollte das doch einfacher gehen !?
Private Sub myDrawingPrintManager(ByVal prt As String, ByVal afo As String, ByVal scm As String, ByVal ort As String, ByVal rng As String, ByVal cop As Variant)
'Prt "Druckername"
'blt Ausgabeformat a0,a1,a2,a3,a4 Test mit a3
'scm Plotskalierung: bestfit,window,custom,full Test mit full
'ort Ausrichtung h (hoch,portrait) q (quer,landscape) Test mit portrait
'rng welche Blätter sollen ausgegeben werden: all oder current
'cop Kopien
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument
' Set reference to drawing print manager
' DrawingPrintManager has more options than PrintManager
' as it's specific to drawing document
Dim oDrawPrintMgr As DrawingPrintManager
Set oDrawPrintMgr = oDrawDoc.PrintManager
' Set the printer name
oDrawPrintMgr.Printer = prt
'Set the paper size , scale and orientation
Select Case afo
Case "a0"
oDrawPrintMgr.PaperSize = kPaperSizeA0
Case "a1"
oDrawPrintMgr.PaperSize = kPaperSizeA1
Case "a2"
oDrawPrintMgr.PaperSize = kPaperSizeA2
Case "a3"
' oDrawPrintMgr.PaperSize = 9996 + 4344
oDrawPrintMgr.PaperSize = kPaperSizeA3
Case "a4"
oDrawPrintMgr.PaperSize = kPaperSizeA4
End Select
'Set the paper scale and orientation
' oDrawPrintMgr.scalemode = kPrintBestFitScale
Select Case scm
Case "bestfit"
oDrawPrintMgr.ScaleMode = kPrintBestFitScale
Case "window"
oDrawPrintMgr.ScaleMode = kPrintCurrentWindow
Case "custom"
oDrawPrintMgr.ScaleMode = kPrintCustomScale
Case "full"
oDrawPrintMgr.ScaleMode = kPrintFullScale
End Select
'Set the paper orientation
Select Case ort
Case "h"
oDrawPrintMgr.Orientation = kPortraitOrientation
Case "q"
oDrawPrintMgr.Orientation = kLandscapeOrientation
End Select
' oDrawPrintMgr.PrintRange = kPrintAllSheets
Select Case rng
Case "all"
oDrawPrintMgr.PrintRange = kPrintAllSheets
Case "current"
oDrawPrintMgr.PrintRange = kPrintCurrentSheet
End Select
' Kopien
oDrawPrintMgr.NumberOfCopies = cop
' Linienstärke, Farbe
oDrawPrintMgr.RemoveLineWeights = True
oDrawPrintMgr.AllColorsAsBlack = True
'oDrawPrintMgr.PaperSource = -1 ' ????
oDrawPrintMgr.Rotate90Degrees = True
'oDrawPrintMgr.PaperHeight = 29.7
'oDrawPrintMgr.PaperWidth = 42
'oDrawPrintMgr.PrintToFile ("C:\temp\testprint")
oDrawPrintMgr.SubmitPrint
End Sub
Danke und Gruß
Cadlux
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP