La Web del Programador: Comunidad de Programadores
 
    Pregunta:  533 - INFORME DE LA IMPRESORA
Autor:  Roberto Luis Estrada Mancillas
Mi duda es como puedo preguntarle a windows o al controlador de la impresora cuanto espasio esta dejando arroba, abajo, izquierdo y derecho la una hoja, osea una impresora laser deja 0.5 cm del principio de la hoja y enpiesa a imprimir pero como puedo hacerle la pregunta a windows para que me diga eso

De antemano agradesco su ayuda


  Respuesta:  Luis Pérez
Prueba esto a ver si es lo que necesitas:
´ En un módulo
Public Const PHYSICALOFFSETX As Long = 112
Public Const PHYSICALOFFSETY As Long = 113

Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

´ En el procedimiento de impresión

Printer.ScaleMode = vbTwips

´ Obtiene el margen izquierdo no imprimible en twips
LeftOffset = Printer.ScaleX(GetDeviceCaps(Printer.hdc, PHYSICALOFFSETX), vbPixels, vbTwips)

´ Obtiene el margen superior no imprimible en twips
TopOffset = Printer.ScaleY(GetDeviceCaps(Printer.hdc,PHYSICALOFFSETY), vbPixels, vbTwips)