Autor Tema: S.O.S. Con Page Setup  (Leído 3236 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
S.O.S. Con Page Setup
« en: Septiembre 14, 2010, 07:13:54 pm »
Hola estoy queriendo poner a un sistema que desarrolle la opción de Configurar Pagina y como es lo usual cargar el tamaño de papel en un combobox de acuerdo a la impresora que seleccione el usuario. Ahora como se leen los tamaños  papeles y de donde??
Algun ejemplo ??

Gracias!

Miguel
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:S.O.S. Con Page Setup
« Respuesta #1 en: Septiembre 15, 2010, 07:39:30 pm »
Hola estoy queriendo poner a un sistema que desarrolle la opción de Configurar Pagina y como es lo usual cargar el tamaño de papel en un combobox de acuerdo a la impresora que seleccione el usuario. Ahora como se leen los tamaños  papeles y de donde??
Algun ejemplo ??

Gracias!

Miguel

ALGUIEN POR FAVOR QUE ME TIRE UNA  PUNTA!!!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:S.O.S. Con Page Setup
« Respuesta #2 en: Septiembre 16, 2010, 12:57:55 pm »
Miguel no desesperes, solo debes aprender a buscar un poco y ya...!

Abre un proyecto nuevo y en el Form1 coloca una caja de texto y renombrala por txtConfiguracion.text. Colocas un Boton con el nombre cmdPageSetup. Agrega tambien un Modulo Bas.

Codigo para el Form1
Código: (VB) [Seleccionar]
Private Sub cmdPageSetup_Click()
    ShowPageSetup Me.hWnd, App.hInstance
End Sub

Codigo para el Modulo Bas. Module1
Código: (VB) [Seleccionar]

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Type Rect
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Type PageSetupDlg
        lStructSize As Long
        hwndOwner As Long
        hDevMode As Long
        hDevNames As Long
        flags As Long
        ptPaperSize As POINTAPI
        rtMinMargin As Rect
        rtMargin As Rect
        hInstance As Long
        lCustData As Long
        lpfnPageSetupHook As Long
        lpfnPagePaintHook As Long
        lpPageSetupTemplateName As String
        hPageSetupTemplate As Long
End Type

Private Declare Function PageSetupDlg Lib "comdlg32.dll" Alias "PageSetupDlgA" (pPagesetupdlg As PageSetupDlg) As Long
Public Function ShowPageSetup(ByVal lngOwner As Long, ByVal lngAppInstance As Long)

    On Error GoTo errHndl
   
    Dim objPDlg As PageSetupDlg
    Dim lDlgShow As Long
    Dim sSet As String
    sSet = ""
   
    With objPDlg
        .lStructSize = Len(objPDlg)
        .hwndOwner = lngOwner
        .hInstance = lngAppInstance
    End With
   
    lDlgShow = PageSetupDlg(objPDlg)
   
    With objPDlg
        sSet = sSet & "Settings from PageSetup : " & vbCrLf & vbCrLf
        sSet = sSet & "Left Margin : " & (.rtMargin.Left / 1000) & " inches" & vbCrLf
        sSet = sSet & "Right Margin : " & (.rtMargin.Right / 1000) & " inches" & vbCrLf
        sSet = sSet & "Top Margin : " & (.rtMargin.Top / 1000) & " inches" & vbCrLf
        sSet = sSet & "Bottom Margin : " & (.rtMargin.Bottom / 1000) & " inches" & vbCrLf
        sSet = sSet & vbCrLf & vbCrLf
        sSet = sSet & "Paper Size = " & (.ptPaperSize.x / 1000) & " x " & (.ptPaperSize.y / 1000) & " inches"
    End With
   
   Form1.txtConfiguracion.Text = sSet
   
    Exit Function
   
errHndl:
    MsgBox Err.Number & vbCrLf & vbCrLf & Err.Description
End Function

PD: El codigo no es de mi autoria, es un source que tengo desde hace un tiempo en mi empolvado directorio de Codigos Fuentes. Espero puedas darle el uso adecuado y aprendas un poco.
Miguel Núñez.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:S.O.S. Con Page Setup
« Respuesta #3 en: Septiembre 21, 2010, 09:11:05 am »
Hola Sscaann43 muchas gracias la verdad es que ma va a servir para otro momento. Lo unico que no es lo que necesito por que si bien me devuelve el tamaño del papel seleccionado por el usuario yo necesito que me devuelva todos los tamaños que soporta esa impresora predeterminada.
Abra alguna api o un modo de lograrlo por que veo que hay muchos programas que lo hacen.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.