Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Api Drucken mit Windows Systemdrucker

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
3DEXPERIENCE SOLIDWORKS: Ihre Konstruktionslösung der nächsten Generation
Autor Thema:  Api Drucken mit Windows Systemdrucker (1389 mal gelesen)
Ernieundbert
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Ernieundbert an!   Senden Sie eine Private Message an Ernieundbert  Schreiben Sie einen Gästebucheintrag für Ernieundbert

Beiträge: 99
Registriert: 25.10.2011

Solid Works 2013 SP5
PDM Workgroup
Win 7 64bit
Fujitsu Celsius M460
Quadro FX 3800
Intel Core2Quad CPU 9330 2,5GHz
8GB RAM

erstellt am: 27. Mrz. 2014 13:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich möchte mit einem Makro Zeichnungen auf meinem im PC eingestellten Windows Standarddrucker ausdrucken. Mit meiner Zeile       

swModel.Extension.PrintOut2 vPageArray, copies, collate, "", ""

nimmt er aber immer den in der Zeichnung eingestellten Drucker . Wie kann man das ändern?

------------------
Einen schönen Gruß, Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Andi Beck
Ehrenmitglied V.I.P. h.c.
Konstrukteur



Sehen Sie sich das Profil von Andi Beck an!   Senden Sie eine Private Message an Andi Beck  Schreiben Sie einen Gästebucheintrag für Andi Beck

Beiträge: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 27. Mrz. 2014 15:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ernieundbert 10 Unities + Antwort hilfreich


direkt-Drucken-Oki-C610.zip

 
Hallo Thomas,
versuch mal

swModel.PrintDirect

oder pass dir mein Makro an.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ernieundbert
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Ernieundbert an!   Senden Sie eine Private Message an Ernieundbert  Schreiben Sie einen Gästebucheintrag für Ernieundbert

Beiträge: 99
Registriert: 25.10.2011

Solid Works 2013 SP5
PDM Workgroup
Win 7 64bit
Fujitsu Celsius M460
Quadro FX 3800
Intel Core2Quad CPU 9330 2,5GHz
8GB RAM

erstellt am: 28. Mrz. 2014 07:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Andi,

Print.Direct bedient sich auch am in der Zeichnung vorgewählten Drucker. Anhand deines Makros habe ich mir aber mein Makro so einstellen können das ich den Drucker zumindest vorwählen kann. Danke dir!

------------------
Einen schönen Gruß, Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

Beiträge: 1358
Registriert: 24.07.2002

AutoCAD ACA 2019
Solidworks 2021 Sp5.1
Enterprise PDM 2021 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell T3620
Intel Core i7-7700K
16 GB Arbeitsspeicher
2x Dell Ultrasharp U2415
Dell M4800

erstellt am: 28. Mrz. 2014 08:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ernieundbert 10 Unities + Antwort hilfreich

Hi Thomas,

Hier mal ein Code um den Standard Windows Drucker zu ermitteln:

Code:

Public Sub GetStdPrinterName(strPrinterName As String, strDriver As String, strPort As String)
    Dim Buffer As String
    Dim lngReturn1 As Long, lngReturn2 As Long, lngReturn3 As Long
    Buffer = Space(8192)
    lngReturn1 = GetProfileString("windows", "Device", "", Buffer, Len(Buffer))
    If lngReturn1 Then
        Buffer = Mid$(Buffer, 1, lngReturn1)
        lngReturn2 = InStr(Buffer, ",")
        strPrinterName = Mid$(Buffer, 1, lngReturn2 - 1)
        lngReturn3 = InStr(lngReturn2 + 1, Buffer, ",")
        strDriver = Mid$(Buffer, lngReturn2 + 1, lngReturn3 - lngReturn2 - 1)
        strPort = Mid$(Buffer, lngReturn3 + 1)
    Else
        strPrinterName = ""
        strDriver = ""
        strPort = ""
    End If
End Sub

Aufrufen und zuweisen mit:

Code:
'Standard-Drucker ermitteln und setzen.
Dim strPrinterName As String, strDriver As String, strPort As String
Call GetStdPrinterName(strPrinterName, strDriver, strPort)
oDrw.Printer = strPrinterName

Vielleicht kann es ja noch jemand brauchen.

Gruß, Carsten

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

HenryV
Mitglied
Konstrukteur, Engineering


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 28. Mrz. 2014 08:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Ernieundbert 10 Unities + Antwort hilfreich

Hallo Thomas

Hier noch eine weitere Variante zum ermitteln des Standarddruckerbnamens.

Code:
#If VBA7 Then    ' VBA7
Public Declare PtrSafe Function GetProfileString Lib "kernel32" _
        Alias "GetProfileStringA" _
        (ByVal lpAppName As String, _
        ByVal lpKeyName As String, _
        ByVal lpDefault As String, _
        ByVal lpReturnedString As String, _
        ByVal nSize As Long) As Long
#Else    ' Downlevel when using previous version of VBA7
Public Declare Function GetProfileString Lib "kernel32" _
        Alias "GetProfileStringA" _
        (ByVal lpAppName As String, _
        ByVal lpKeyName As String, _
        ByVal lpDefault As String, _
        ByVal lpReturnedString As String,
        ByVal nSize As Long) As Long
#End If

Public Function DefaultPrinter() As String
  Dim strReturn As String
  Dim intReturn As Integer
  strReturn = Space(255)
  intReturn = GetProfileString("Windows", ByVal "device", "", _
  strReturn, Len(strReturn))
  If intReturn Then
    strReturn = UCase(Left(strReturn, InStr(strReturn, ",") - 1))
  End If
  DefaultPrinter = strReturn
End Function


Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ernieundbert
Mitglied
Konstrukteur


Sehen Sie sich das Profil von Ernieundbert an!   Senden Sie eine Private Message an Ernieundbert  Schreiben Sie einen Gästebucheintrag für Ernieundbert

Beiträge: 99
Registriert: 25.10.2011

Solid Works 2013 SP5
PDM Workgroup
Win 7 64bit
Fujitsu Celsius M460
Quadro FX 3800
Intel Core2Quad CPU 9330 2,5GHz
8GB RAM

erstellt am: 03. Apr. 2014 09:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von Carsten1210:
Hi Thomas,

Hier mal ein Code um den Standard Windows Drucker zu ermitteln:

Code:

Public Sub GetStdPrinterName(strPrinterName As String, strDriver As String, strPort As String)
    Dim Buffer As String
    Dim lngReturn1 As Long, lngReturn2 As Long, lngReturn3 As Long
    Buffer = Space(8192)
    lngReturn1 = GetProfileString("windows", "Device", "", Buffer, Len(Buffer))
    If lngReturn1 Then
        Buffer = Mid$(Buffer, 1, lngReturn1)
        lngReturn2 = InStr(Buffer, ",")
        strPrinterName = Mid$(Buffer, 1, lngReturn2 - 1)
        lngReturn3 = InStr(lngReturn2 + 1, Buffer, ",")
        strDriver = Mid$(Buffer, lngReturn2 + 1, lngReturn3 - lngReturn2 - 1)
        strPort = Mid$(Buffer, lngReturn3 + 1)
    Else
        strPrinterName = ""
        strDriver = ""
        strPort = ""
    End If
End Sub

Aufrufen und zuweisen mit:

Code:
'Standard-Drucker ermitteln und setzen.
Dim strPrinterName As String, strDriver As String, strPort As String
Call GetStdPrinterName(strPrinterName, strDriver, strPort)
oDrw.Printer = strPrinterName

Vielleicht kann es ja noch jemand brauchen.

Gruß, Carsten


Hallo Carsten,

wenn ich den Code so laufen lasse bekomme ich an der Stelle GetProfileString immer die Fehlermeldung das die Sub oder function nicht definiert ist. Muss ich das noch irgendwie anders einbinden?

------------------
Einen schönen Gruß, Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz