public DocumentoImpreso(Documento documento) { _documento = documento; _Paginas = new ListaPaginas(_documento, this); _Lineas = new ListaLineas(documento, _Paginas); _Paginas.Iniciar(_Lineas); }
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); }
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); }
public void Iniciar(ListaLineas listalineas) { _Lineas = listalineas; Pagina p = new Pagina(0, this, _Lineas); _Paginas.Add(p); }
public void Dispose() { if (lista != null) { lista.LiberarCursor(); lista = null; } }
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; }
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); }
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; }
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); } }
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; }
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)); }
public CursorLineas(ListaLineas l, int indiceinicio) { lista = l; indicebase = indiceinicio; }