/*
 * $Id: tprint.txt,v 1.5 2012/09/30 23:22:57 fyurisich Exp $
 */

CLASE TPRINT

TPRINT(ctlibrary)
  Inicializa la clase y establece la librera de impresin a usar.
  Retorna un objeto que permite configurar un trabajo de impresin,
  crearlo e imprimirlo o guardarlo en disco.
  Forma de uso:
    oTPrintObject := TPRINT(ctlibrary)
  Los valores posibles de ctlibrary son:
    "HBPRINTER"        Imprime usando la librera HBprinter
    "MINIPRINT"        Imprime usando la librera Miniprint
    "DOSPRINT"         Imprime directamente a impresora como DOS
    "CALCPRINT"        Imprime generando un archivo OpenOffice CALC
                       (hay que tener OpenOffice instalado)
    "EXCELPRINT"       Genera un archivo Excel
                       (hay que tener Excel instalado)
    "RTFPRINT"         Genera un archivo formato RTF
    "HTMLPRINT"        Genera un archivo HTML
    "PDFPRINT"         Genera un archivo PDF
    "CSVPRINT"         Genera un archivo con sus elementos separados
                       por comas (CSV)
    "RAWPRINT"         Imprime directamente a una cola de spool
                       (en formato binario)
    "SPREADSHEETPRINT" Genera un archivo Excel en formato BIFF
                       (no se necesita Excel ni OpenOffice)
  Si se omite el parmetro, la librera seleccionada depende de la
  variable _OOHG_PrintLibrary (vea ms adelante).
  Si el tipo del parmetro no es string o, siendo string, no es un
  valor vlido, la librera seleccionada es "MINIPRINT".



MTODOS PRINCIPALES

Se detallan a continuacin los mtodos disponibles y sus parmetros.
Nota: Todos los parmetros de todos los mtodos son opcionales.


::Init()
  Inicializa algunas variables necesarias para cada librera.

::SelPrinter(lselect, lpreview, llandscape, npapersize, cprinterx, lshow, nres, nbin)
  Inicializa la impresora.
    lselect    = .T. muestra cuadro de dilogo para seleccionar impresora
    lselect    = .F. utiliza la impresora por defecto
    lpreview   = .T. muestra la vista previa antes de imprimir (valor por defecto)
    lpreview   = .F. no muestra la vista previa
    llandscape = .T. impresin horizontal
    llanscape  = .F. impresin vertical
    npapersize =     tamao del papel segn estndares del HBPRINTER,
                     ver al final de este documento
    cprinterx  =     nombre de la impresora si se quiere hacer una impresin
                     directa sin usar la impresora por defecto y sin
                     seleccionarla por dilogo
    lshow      = .T. muestra la ventana de espera mientras se prepara la impresin (valor por defecto)
    lshow      = .F. oculta la ventana de espera mientras se prepara la impresin
    nres       =     resolucin, defaults to PRINTER_RES_MEDIUM
    nbin       =     nmero de bandeja de la cual se toma el papel (defaults to NIL)

::BeginDoc(cname)
  Inicia el documento.
    cname = nombre del documento (si no se coloca asume por defecto
            el de la librera de impresin.
  En los casos en que se genera un archivo, cName es tambin el nombre del
  archivo generado con la extensin del tipo de archivo generado.
  En caso de necesitar guardarlo en una carpeta diferente de la actual la
  ruta deber incluirse en el nombre.

::SetPreviewSize()
  Setea el tamao del preview para HBPRINTER (no tiene efecto para las
  dems libreras).
  Los valores pueden ser:
    1 menor
    2 ms grande
    3 an ms grande
    etc.

::BeginPage()
  Empieza una pgina.

::PrintData(nfila, ncolumna, dato a imprimir, ctipoletra, ntamaoletra,
            lbold, acolor, calineacion, nancho)
  Imprime datos.
    nfila =           fila de impresin
    ncolumna =        columna de impresin
    dato a imprimir = puede ser de cualquier tipo
    ctipoletra =      tipo de letra a usar, si no se especifica toma la
                      que est en curso (por defecto Courier New)
    ntamaoletra =    tamao de la letra en puntos
    lbold = .T.       negrita
    lbold = .F.       normal
    acolor =          arreglo RGB para darle un color al texto
    calineacion =     alineacin del dato:
                        "L" izquierda (opcin por defecto)
                        "C" centro
                        "R" derecha
    nancho =          tamao del campo, se debe utilizar cuando se quiere
                      alinear al centro o a la derecha, por defecto es 15

::PrintImage(nfila, ncol, nfilaf, ncolf, cimagen)
  Imprime una imagen.
    nfila =   fila de impresin inicial
    ncol =    columna inicial
    nfilaf =  fila final
    ncolf =   columna final
    cimagen = grfico a imprimir

::PrintLine(nfila, ncol, nfilaf, ncolf, atcolor, ntwpen)
  Imprime una lnea desde una posicin hasta otra.
    nfila =   fila de impresin inicial
    ncol =    columna inicial
    nfilaf =  fila final
    ncolf =   columna final
    atcolor = arreglo RGB del color a usar
    ntwpen =  ancho del pincel, por defecto 1
  Nota: si es DOS solo imprime si la lnea inicial es igual a la final.

::PrintRectangle(nfila, ncol, nfilaf, ncolf, atcolor, ntwpen)
  Imprime un rectngulo.
    nfila =   fila de impresin inicial
    ncol =    columna inicial
    nfilaf =  fila final
    ncolf =   columna final
    atcolor = arreglo RGB del color a usar
    ntwpen =  ancho del pincel, por defecto 1

::PrintRoundRectangle(nfila, ncol, nfilaf, ncolf, atcolor, ntwpen)
  Imprime un rectngulo con esquinas redondeadas.
    nfila =   fila de impresin inicial
    ncol =    columna inicial
    nfilaf =  fila final
    ncolf =   columna final
    atcolor = arreglo RGB del color a usar
    ntwpen =  ancho del pincel  por defecto 1

::SetColor(atcolor)
  Setea el color en curso a un nuevo valor.
    atcolor = arreglo RGB

::GetDefPrinter()
  Obtiene la impresora por defecto.

::SetUnits(cunits)
  Establece las unidades a usar. Por defecto usa ROWCOL aunque
  internamente todo se hace en MM para que sea ms exacto entre
  varias impresoras.
    cunits = los posibles valores son "MM" y "ROWCOL"

::EndPage()
  Finaliza una pgina.

::EndDoc()
  Termina un documento.

::Release()
  Libera el objeto TPRINT.

::Version()
  Devuelve la versin de la clase.

::SetLMargin(nlmar)
  Establece el margen izquierdo.

::SetTMargin(ntmar)
  Establece el margen superior.

::SetFont(cfont, nsize, acolor, lbold, litalic)
  Establece la fuente por defecto.
  cfont =   nombre
  nsize =   tamao
  acolor =  color
  lbold =   negrita
  litalic = itlica

::SetCPL(ncpl)
  Establece la tamao de la fuente en caracters por lnea.
  Los valores vlidos de ncpl son:
     60 - se usa tamao de fuente 14
     80 - se usa tamao de fuente 12 (valor por defecto)
     96 - se usa tamao de fuente 10
    120 - se usa tamao de fuente  8
    140 - se usa tamao de fuente  7
    160 - se usa tamao de fuente  6

::PrintBarCode(nlin, ncol, cbarcode, ctipo, acolor, lhori, nwidth, nheight)
  Imprime un cdigo de barras.
    nlin =     fila donde se imprimir
    ncol =     columna donde se imprimir
    cbarcode = cdigo a imprimir
    ctipo =    tipo de codificacin
    acolor =   color
    lhori =    orientacin (.T. = horizontal, .F. vertical)
    nwidth =   ancho de las barras
    nheight =  alto de las barras

:SetProp(lmode)
  Establece si el alto de las filas a imprimir ser proporcional al
  tamao de la letra actual global (lmode = .T.) o si ser proporcional
  al tamao de fuente 10 (lmode = .F.).



VARIABLES IMPORTANTES

_OOHG_PrintLibrary
  Definiendo esta variable como pblica, es posible indicar la librera de
  impresin a usar por defecto. Se puede utilizar cualquiera de los valores
  del parmetro ctlibrary. Esta variable es muy til para utilizar los
  comandos "Report form", "Edit" y "Edit Extended".
  Si no est definida o si su tipo no es string, la librera por defecto
  es "MINIPRINT". Si es un string no vlido, es "HBPRINTER".


::aPrinters
  Arreglo de las impresoras disponibles en el sistema.

::aPorts
  Arreglo de los puertos disponibles en el sistema.

::lPrError
  Variable lgica. Si ocurre un error devuelve .T., por defecto es .F.

::acolor
  Color actual del pincel utilizado en el dibujo de lneas y cuadros,
  por defecto negro.

::cfontname
  Letra actual, por defecto Courier New.

::nfontsize
  Tamao de letra actual global, por defecto 10. Usar con cuidado.

::afontcolor
  Color de la letra actual, por defecto negro.

::lfontbold
  .T. si la letra actual est en negrita.

::lfontitalic
  .T. si la letra actual est en itlica.

::cversion
  Nmero de versin de la clase.



TAMAO DEL PAPEL

Ver miniprint.ch, i_report.ch o winprint.ch
Nota: no todos los tamaos estn soportados en todas las versiones de
Windows, ver archivo wingdi.h en la carpeta include del compilador C.
