vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Druckqualität ändern 
Autor: RalfH
Datum: 31.03.05 13:59

Servus,

je nach Druckertreiber liefert Dir "Printer.PrintQuality" verschiedene Rückgabewerte.

[u]Wenn der Rückgabewert kleiner "0" ist: (VB-Konstanten)
vbPRPQDraft = -1 = Entwurf
vbPRPQLow = -2 = Niedrig
vbPRPQMedium = -3 = Normal
vbPRPQHigh = -4 = Hoch

[u]Wenn der Rückgabewert größer "0" ist:
entspricht der Wert der Druckauflösung.

Ändern kannst Du die Eigenschaft aber nur mit den VB-Konstanten vbPRPQDraft , vbPRPQLow, vbPRPQMedium, vbPRPQHigh !

Du musst also vorher schon mal prüfen, welche Druckauflösung mit welcher VB-Konstante erreicht werden kann.
Option Explicit
 
Private PrintQuality(vbPRPQHigh To vbPRPQDraft) As String
 
Private Function GetQuality(ByVal S As String) As Long
  On Error Resume Next
 
  Dim l As Long, X As Long
 
  For X = LBound(PrintQuality) To UBound(PrintQuality)
    If PrintQuality(X) = S Then
      GetQuality = X
      Exit Function
    End If
  Next X
 
  GetQuality = 0
End Function
 
Private Sub Combo1_Click()
  Dim X As Long, lOldQuality As Long, sOldPrinter As String
  Dim P As Printer, Y As Long, bFound As Boolean, S As String
 
  Combo2.Clear
 
  If Combo1.ListIndex < 0 Then Exit Sub
 
  sOldPrinter = Printer.DeviceName
 
  For X = LBound(PrintQuality) To UBound(PrintQuality)
    PrintQuality(X) = ""
  Next X
 
  For Each P In Printers
    If P.DeviceName = Combo1.Text Then
      Set Printer = P
      Exit For
    End If
  Next P
  Set P = Nothing
 
  If Printer Is Nothing Then Exit Sub
 
  lOldQuality = Printer.PrintQuality
 
  For X = vbPRPQDraft To vbPRPQHigh Step -1
    bFound = False
    Printer.PrintQuality = X
    S = Printer.PrintQuality
 
    If IsNumeric(S) Then
      If (CLng(S) <= vbPRPQDraft) And (CLng(S) >= vbPRPQHigh) Then
        Select Case CLng(S)
          Case vbPRPQDraft: S = "Entwurf"
          Case vbPRPQLow: S = "Niedrig"
          Case vbPRPQMedium: S = "Normal"
          Case vbPRPQHigh: S = "Hoch"
        End Select
      Else
        S = S & " dpi"
      End If
    End If
 
    For Y = 0 To Combo2.ListCount
      If Combo2.List(Y) = S Then
        bFound = True
        Exit For
      End If
    Next Y
 
    If Not bFound Then
      Combo2.AddItem S
      PrintQuality(X) = S
    End If
  Next X
 
  Combo2.ListIndex = 0
  Printer.PrintQuality = lOldQuality
 
  For Each P In Printers
    If P.DeviceName = sOldPrinter Then
      Set Printer = P
      Exit For
    End If
  Next P
  Set P = Nothing
End Sub
 
Private Sub Command1_Click()
  MsgBox "Printer.DeviceName = " & Combo1.List(Combo1.ListIndex) & vbNewLine & _
    "Printer.PrintQuality = " & GetQuality(Combo2.List(Combo2.ListIndex))
End Sub
 
Private Sub Form_Load()
  Dim P As Printer, X As Long
 
  If Printers.Count < 0 Then
    MsgBox "Kein Drucker installiert!", vbCritical
  End If
 
  For Each P In Printers
    Combo1.AddItem P.DeviceName
  Next P
 
  For X = 0 To Combo1.ListCount
    If Printer.DeviceName = Combo1.List(X) Then
      Combo1.ListIndex = X
      Exit For
    End If
  Next X
 
  Set P = Nothing
End Sub

Viel Spass,
R@lf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Druckqualität ändern1.518Oliver50031.03.05 12:36
Re: Druckqualität ändern1.162RalfH31.03.05 13:59
Re: Druckqualität ändern1.130Oliver50031.03.05 17:00
Druckqualität ändern1.162Oliver50006.04.05 13:09
Re: Druckqualität ändern1.301Oliver50013.04.05 17:29

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel