+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sehr lesenswerter Artikel: http://praegnanz.de/weblog/72dpi

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

printerImage.Name ---> FS-1030D

hans@linux:~$ locate -b *.ppd | grep "FS-1030D"
/etc/cups/ppd/FS-1030D.ppd

hans@linux:~$ grep '*ImageableArea A4/A4' /etc/cups/ppd/FS-1030D.ppd
*ImageableArea A4/A4: "12 10 583 832"

Aus dem String "12 10 583 832" die 4 Werte isolieren:

(1) RandLinks = 12 * (1/72) * 2.54
(2) RandOben = 10 * (1/72) * 2.54
(3) Druckweite = 583 * (1/72) * 2.54
(4) DruckHöhe = 832 * (1/72) * 2.54

Po(obere linke Ecke) = (0,17"/0,14") = (0,432 mm / 3,55 mm)
P1(untere rechte Ecke) = (8,10"/11,56") = (205,7 mm / 293,51 mm)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  Zur Kontrolle:
  
  For Each sElement In aMatrix
      Print sElement
  Next ' sElement
  
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 'printerImage.OutputFile = "/home/hans/printimage.pdf"
  
  Print "DruckerName = ";; printerImage.Name
  Print "CollateCopies = ";; printerImage.CollateCopies
  Print "Count = ";; printerImage.Count
  Print "Duplex = ";; printerImage.Duplex
  Print "FirstPage = ";; printerImage.FirstPage
  Print "FullPage = ";; printerImage.FullPage
  Print "GrayScale = ";; printerImage.GrayScale
  Print "LastPage = ";; printerImage.LastPage
  Print "NumCopies = ";; printerImage.NumCopies
  Print "Orientation = ";; printerImage.Orientation
  If printerImage.OutputFile <> Null Then
     Print "OutputFile = ";; printerImage.OutputFile
  Else
     Print "OutputFile = NULL"
  Endif '  printerImage.OutputFile <> Null?
  Print "Paper (2=DINA4) = ";; printerImage.Paper
  Print "PaperHeight (mm) = ";; printerImage.PaperHeight
  Print "PaperWidth (mm) = ";; printerImage.PaperWidth
  Print "Resolution (DPI) = ";; printerImage.Resolution
  Print "ReverseOrder = ";; printerImage.ReverseOrder

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  Private iPrinterDPI As Integer
  
  Public Sub GetCurrentPrinterResolution()
  Dim sResultPath, sResultRow As String
  Dim iPosition As Integer
  
  Shell "locate -b *.ppd | grep " & printerImage.Name To sResultPath
  Shell "grep '*DefaultResolution:' " & sResultPath To sResultRow

  iPosition = InStr(sResultRow, Chr(58))
  iPrinterDPI = Mid(sResultRow, iPosition + 2, -4) ' FS-1030D = 600 dpi

End ' GetCurrentPrinterResolution()

Diese beiden Werte werden gegenwärtig nicht genutzt:

' Private fPaperPrintWidth As Float
' Private fPaperPrintHight As Float
  
' bedruckbare Weite auf dem Papier
  fPaperPrintWidth = Val(aMatrix[2]) * (25.4 / 72) - printerImage.PaperWidth 
' bedruckbare Höhe auf dem Papier
  fPaperPrintHight = Val(aMatrix[3]) * (25.4 / 72) - printerImage.PaperHeight
  