| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Zeichnung wirrd nicht gedruckt (795 mal gelesen)
|
Stechi Mitglied Informatiker
Beiträge: 75 Registriert: 17.01.2008 Hi Smoke2004,<P>und wie in VBA? Habe in VBA nichts äquivalentes gefunden.<P>Gruß<P>Stechi
|
erstellt am: 30. Apr. 2010 11:06 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte aus einem VB 6.0-Programm eine Zeichnung auf eine OCE-Anlage drucken. Es wird auch die Zeichnung gedruckt, aber nicht richtig. Sie wird immer abgeschnitten, egal welche Einstellungen ich vornehme. Ich verwende den Printmanager, der wie folgt deklariert ist: Code: Dim Oprintmanager as DrawingPrintManger
Der Code zum Drucken sieht so aus: Code: Oprintmanager.Printer = Name des Treiber bzw. Druckers ' Farbauswahl If optsw.value = True Then Oprintmanager.AllColorsAsBlack = True Else Oprintmanager.AllColorsAsBlack = False Oprintmanager.ColorMode = kPrintColorPalette End If ' Papierformatauswahl If cboPapierformat.text = "" Then MsgBox "Papierformat auswählen!" cboPapierformat.SetFocus Exit Sub Else 'Oprintmanager.Orientation = kPortraitOrientation Select Case cboPapierformat.text Case "A0" Oprintmanager.PaperSize = kPaperSizeA0 Oprintmanager.Orientation = kLandscapeOrientation Case "A1" Oprintmanager.PaperSize = kPaperSizeA1 Oprintmanager.Orientation = kLandscapeOrientation Case "A2" Oprintmanager.PaperSize = kPaperSizeA2 Oprintmanager.Orientation = kLandscapeOrientation Case "A3" Oprintmanager.PaperSize = kPaperSizeA3 Oprintmanager.Orientation = kLandscapeOrientation Case "A4" Oprintmanager.PaperSize = kPaperSizeA4 Oprintmanager.Orientation = kPortraitOrientation End Select End If ' Druckbereich festlegen If optGrenzen.value = True Then If CInt(right(txtFormat.text, 1)) >= CInt(right(cboPapierformat.text, 1)) Then Oprintmanager.ScaleMode = kPrintFullScale Else txtMaßstab.text = "Anpassen" Oprintmanager.ScaleMode = kPrintBestFitScale End If Else ' Anzeigen vom Zeichnungsmaßstab temp = Odrawdoc.ActiveSheet.DrawingViews(1).Scale Select Case temp Case "1" txtMaßstab.text = "1 : 1" Case "0,5" txtMaßstab.text = "1 : 2" Case "0,2" txtMaßstab.text = "1 : 5" Case "0,1" txtMaßstab.text = "1 : 10" Case "0,05" txtMaßstab.text = "1 : 20" Case "0,02" txtMaßstab.text = "1 : 50" Case "2" txtMaßstab.text = "2 : 1" Case "5" txtMaßstab.text = "5 : 1" Case Else MsgBox " Das eingebene Format gibt es nicht! Es gibt nur folgende Format: 1 : 1, 1 : 2, 1 : 5, 1 : 10, 1 : 20, 1 : 50, 2 : 1 und 5 : 1! Bitte Format dementsprechend in der Drawing View(1) ändern!" Exit Sub End Select Oprintmanager.ScaleMode = kPrintCurrentWindow End If ' Druckseiten festlegen If optaktSeite.value = True Then Oprintmanager.PrintRange = kPrintCurrentSheet Else Oprintmanager.PrintRange = kPrintAllSheets End If ' Drehung festlegen If fraDrehung.Enabled = True Then If opt0°.value Then Oprintmanager.Rotate90Degrees = False Else Oprintmanager.Rotate90Degrees = True End If Else Oprintmanager.Rotate90Degrees = True End If If cboPlotter.text = "OCE_9800" Then Oprintmanager.PrintToFile ("C:\Temp\oceout.plt") ' Ermitteln des letzten Backslashes im String For i = 1 To Len(Odrawdoc.FullFileName) If Mid$(Odrawdoc.FullFileName, i, 1) = "\" Then pos = i End If Next i NAME = Mid(Odrawdoc.FullFileName, pos + 1, Len(Odrawdoc.FullFileName)) tmp = Plotexe & " C:\Temp\oceout.plt@&@" & Odrawdoc.ActiveSheet.Width * 10 & " mm x " & Odrawdoc.ActiveSheet.Height * 10 & " mm" & "&@&" & NAME ausfuehrung = Shell(tmp, vbNormalFocus)
Anmerkung: "Plotexe" ist eine Variable, die im Programm gesetzt wird und für den Shell-Anweisung gebraucht wird. Mir scheint, daß die Einstellungen nicht an den Druckertreiber (hier: OCE9800) weitergegeben werden. Warum nicht? Ziussatzinformation: Der Treiber für die OCE-Anlage wurde neu installiert und wieder zurückgesetzt, sodaß wieder der alter Treiber aktiv ist! Für jeden Hinweis bin ich dankbar! Gruß Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3794 Registriert: 15.02.2001
|
erstellt am: 01. Mai. 2010 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
Zitat: Original erstellt von Stechi: Hallo,ich möchte ... auf eine OCE-Anlage drucken. ... Für jeden Hinweis bin ich dankbar! Gruß Markus
Hallo Markus [Klugscheixermodus] Es kommt darauf an, ob du auf eine OCE-Anlage drucken möchtest oder eben doch auf einer OCE-Anlage. Für beide Wünsche scheinen die Vorgehensweisen doch recht unterschiedlich zu sein. [Klugscheixermodus aus]
------------------ Gruß Lothar --------------------------------------------------- Während man es aufschiebt, verrinnt das Leben. Lucius Annaeus Seneca (ca. 4 v. Chr - 65 n. Chr.) ----------------------------------------------------- Wir unterstützen die Arbeit der: - Rettungshundestaffel des DRK Viersen - Rettungshundestaffel Isar Ost Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 01. Mai. 2010 09:41 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
Hallo Was genau heißt abgeschnitten? Hört er immer nach z.B. 75cm bedrucktem Papier auf, egal was man druckt? Passiert das auch bei kleineren Seitenformaten? Ist die Menge des Gedruckten abhängig von der gedruckten Datei? Druckt er am Ende irgendwelche Steuerzeichen oder etwas anderes, das da eigentlich nicht sein sollte? Für mich hört es sich im ersten Moment nach einem Pufferüberlauf im Drucker an, wenn er einfach aufhört. Das hat dann direkt mit deinem Prog nichts zu tun. Bietet der Treiber verschiedene Auflösungen an? Klappt es mit einer niedrigeren besser? Druckt ihr da eigentlich Bilder oder Strichgrafiken? Habe leider keine Oce in meinem Wohnzimmer stehen, sonst könnte ich probieren. Du mußt also bitte etwas genauer beschreiben.
------------------ MfG RK Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|