Example #1
0
 public DocumentoImpreso(Documento documento)
 {
     _documento = documento;
     _Paginas   = new ListaPaginas(_documento, this);
     _Lineas    = new ListaLineas(documento, _Paginas);
     _Paginas.Iniciar(_Lineas);
 }
Example #2
0
        internal Posicion ObtenerPosicionPixels(ListaLineas _Lineas, Punto punto, Posicion posicion)
        {
            int      lim  = LineaInicio + Cantidad;
            Medicion suma = Medicion.Cero;
            Medicion posx = punto.X - Margen.Izquierdo;
            Medicion posy = punto.Y - Margen.Superior;

            if (posy < Medicion.Cero)
            {
                posy = Medicion.Cero;
            }
            Medicion anchoLineas = ObtenerAnchoLineas();

            for (int i = LineaInicio; i < lim; i++)
            {
                Linea l = _Lineas.Obtener(i);
                if (posy >= suma && posy <= suma + l.AltoLinea)
                {
                    int numcaracter = l.ObtenerNumCaracter(posx, anchoLineas);
                    Completar(_Lineas, posicion, i, numcaracter);
                    return(posicion);
                }
                suma = suma + l.AltoLinea;
            }
            if (posy > suma && Cantidad > 0)
            {
                Linea l  = _Lineas.Obtener(lim - 1);
                int   nc = l.ObtenerNumCaracter(posx, anchoLineas);
                Completar(_Lineas, posicion, lim - 1, nc);
                return(posicion);
                //return documento.CrearPosicion(numpagina, lim - 1, nc);
            }
            return(posicion);
        }
Example #3
0
 public void Completar(ListaLineas lineas, Posicion posicion, int lineaPagina, int numCaracter)
 {
     posicion.Linea             = lineas.Obtener(lineaPagina);
     posicion.IndiceLinea       = lineaPagina;
     posicion.IndiceLineaPagina = lineaPagina - posicion.Pagina.LineaInicio;
     posicion.Linea.Completar(lineas, posicion, ObtenerAnchoLineas(), numCaracter);
 }
Example #4
0
        public void Iniciar(ListaLineas listalineas)
        {
            _Lineas = listalineas;
            Pagina p = new Pagina(0, this, _Lineas);

            _Paginas.Add(p);
        }
Example #5
0
 public void Dispose()
 {
     if (lista != null)
     {
         lista.LiberarCursor();
         lista = null;
     }
 }
Example #6
0
 public void Completar(ListaLineas lineas, Posicion posicionLinea, Medicion anchoLinea, int numCaracter)
 {
     Normalizar(ref numCaracter);
     if (posicionLinea.ReferenciaX.HasValue)
     {
         numCaracter = ObtenerNumCaracter(posicionLinea.ReferenciaX.Value, anchoLinea);
     }
     posicionLinea.PosicionCaracter = numCaracter;
 }
Example #7
0
        private Medicion ObtenerAltoLineas(ListaLineas _Lineas)
        {
            int      lim  = LineaInicio + _Cantidad;
            Medicion suma = Medicion.Cero;

            for (int i = LineaInicio; i < lim; i++)
            {
                suma += _Lineas.Obtener(i).AltoLinea;
            }
            return(suma);
        }
Example #8
0
 public Pagina(int lineaInicio, ListaPaginas paginas, ListaLineas lineas)
 {
     _lineas     = lineas;
     _paginas    = paginas;
     LineaInicio = lineaInicio;
     Dimensiones = new TamBloque(new Medicion(210, Unidad.Milimetros), new Medicion(270, Unidad.Milimetros));
     Margen      = new Margen()
     {
         Derecho = new Medicion(10, Unidad.Milimetros), Izquierdo = new Medicion(10, Unidad.Milimetros), Superior = new Medicion(10, Unidad.Milimetros), Inferior = new Medicion(10, Unidad.Milimetros)
     };
     AltoActual = Medicion.Cero;
 }
Example #9
0
        public void Dibujar(IGraficador g, Punto esquinaSuperior, ListaLineas _Lineas, Seleccion seleccion, AvanceBloques avance)
        {
            CompletarLineas();
            Punto pt = esquinaSuperior;

            pt.X += Margen.Izquierdo;
            pt.Y += Margen.Superior;
            Medicion anchoPagina = ObtenerAnchoLineas();
            int      lim         = LineaInicio + Cantidad;

            for (int numlinea = LineaInicio; numlinea < lim; numlinea++)
            {
                Linea l = _Lineas.Obtener(numlinea);
                pt = l.Dibujar(g, pt, seleccion, avance, anchoPagina, true, true);
            }
        }
Example #10
0
        public void CompletarPosicionPixels(ListaLineas lineas, Posicion posicionLinea, Medicion anchoLinea, bool incluirEspacioAnterior, bool incluirEspacioPosterior)
        {
            Medicion suma = new Medicion(0);

            for (int i = posicionLinea.Pagina.LineaInicio; i < posicionLinea.IndiceLinea; i++)
            {
                suma += lineas.Obtener(i).AltoLinea;
            }
            Medicion deltaAnterior  = (incluirEspacioAnterior && EsPrimeraLineaParrafo ? Parrafo.Formato.ObtenerEspacioAnterior() : Medicion.Cero);
            Medicion deltaSiguiente = (incluirEspacioPosterior && EsUltimaLineaParrafo ? Parrafo.Formato.ObtenerEspacioPosterior() : Medicion.Cero);

            posicionLinea.PosicionPagina = new Punto(
                ObtenerPosicionCaracter(posicionLinea.PosicionCaracter)
                + ObtenerDeltaAlineacion(anchoLinea)
                , suma + deltaAnterior);
            posicionLinea.AltoLinea = AltoLinea
                                      - deltaSiguiente
                                      - deltaAnterior;
        }
Example #11
0
 internal void CompletarPixels(ListaLineas _Lineas, Posicion posicion)
 {
     posicion.Linea.CompletarPosicionPixels(_Lineas, posicion, ObtenerAnchoLineas(), true, true);
     posicion.PosicionPagina = posicion.PosicionPagina + (new Punto(Margen.Izquierdo, Margen.Superior));
 }
Example #12
0
 public CursorLineas(ListaLineas l, int indiceinicio)
 {
     lista      = l;
     indicebase = indiceinicio;
 }