<chapter id="technical-overview">
<title>Resumen técnico</title>

<para>Este capítulo pretende ofrecer un resumen técnico de &tdeprint; que sea comprensible para no programadores.</para>

<para>&tdeprint; es una herramienta nueva y revolucionaria que permite acceso a los servicios de impresión tanto para usuarios como para desarrolladores de &kde;.</para>

<sect1 id="brief-description">
<title>Breve descripción de &tdeprint;</title>

<para>Puede acceder a las funciones de &tdeprint; de diferentes modos: a través del administrador de impresión en &kcontrol;, a través de la orden <command>kprinter</command> o a través del diálogo emergente que aparece cuando va a imprimir.</para>

<sect2 id="what-tdeprint-is-not">
<title>Lo que <emphasis>no</emphasis> es</title>

<para>&tdeprint; <emphasis>no</emphasis> es un sustituto del subsistema de impresión por sí mismo. &tdeprint; por tanto <emphasis>no</emphasis> proporciona spooling (encolamiento y almacenamiento temporal) y <emphasis>no</emphasis> realizar el procesado básico del &PostScript; o de otros datos de impresión.</para>

</sect2>

<sect2 id="what-kde-print-is">
<title>Lo que <emphasis>si es</emphasis></title>
<para>&tdeprint; es una capa intermedia entre el almacenamiento temporal y el encolamiento y el subsistema de procesamiento de impresión (como esté instalado) y la aplicación que desea imprimir. &tdeprint; proporciona un interfaz común, para desarrolladores y usuarios de &kde; para los diferentes subsistemas de impresión. Al mismo tiempo, es personalizable y muy configurable.</para>

<para>&tdeprint; es fácil de usar por desarrolladores de &kde; y usuarios finales. Los desarrolladores pueden portar sus aplicaciones con cambios mínimos para utilizar &tdeprint; en lugar del viejo «sistema» de impresión de &Qt;. Los usuarios pueden elegir y configurar fácilmente sus subsistemas de impresión.</para>

<para>Como referencia para nuevos usuarios de &kde;: &Qt; es la biblioteca básica y el juego de herramientas gráficas utilizadas por todas las aplicaciones &kde;. &Qt; es desarrollada por TrollTech, una empresa de software noruega.</para>

</sect2>

</sect1>

<sect1 id="different-users">
<title>&tdeprint; -- Usos diferentes para gente diferente</title>

<para>&tdeprint; ofrece diferentes rostros para gente diferente.</para>

<sect2 id="what-users-can-do">
<title>Lo que los usuarios y administradores pueden hacer con &tdeprint;</title>

<para>&tdeprint; permite a los usuarios y/o administradores, dependiendo de sus permisos, acceder a los subsistemas de impresión (&CUPS;, <acronym>LPD</acronym>, <acronym>RLPR</acronym>, <application>LPRng</application>, <application>PDQ</application>, &etc;) a través de un interfaz de usuario gráfico de &kde; (&GUI;). Usando &tdeprint; se puede imprimir, administrar trabajos, impresoras y el demonio de impresión, todo cómodamente.</para>

<para>Los usuarios experimentados apreciarán la posibilidad de utilizar cualquier filtro que funcione para los datos de impresión entre la salida de su aplicación y la entrada en el sistema de impresión elegido. Algunos ejemplos de este tipo de funcionamiento ya están con «la opción sencilla» de &tdeprint;. Continúe leyendo.</para>

</sect2>


<sect2 id="what-developers-can-do">
<title>Lo que los desarrolladores de &kde; pueden hacer con ello...</title>

<para>Si un desarrollador de &kde; necesita acceso de impresión para su aplicación, no tiene que escribir el código desde el principio. Antes de &kde; 2.2 este servicio era proporcionado por la clase <classname>QPrinter</classname>, una biblioteca del conjunto de herramientas &Qt;. La clase <classname>QPrinter</classname> dependía de un desfasado «Demonio de impresión en línea» (<acronym>LPD</acronym>). La biblioteca &tdeprint; está fundada sobre el más moderno Sistema de Impresión Común de &UNIX; (&CUPS;), mientras que mantiene la compatabilidad con el anterior <acronym>LPD</acronym> y otros sistemas de impresión heredados o menos elaborados y «deja la puerta abierta» a cualquier desarrollo futuro.</para>

<para>Para que los desarrolladores de &kde; utilicen la nueva clase &tdeprint; en sus aplicaciones, necesitan cambios mínimos en su código: Cada llamada a <classname>QPrinter</classname>, necesitan cambiarla a <classname>KPrinter</classname>. Reemplazando un caracter (!) en unos pocos lugares, de forma que una vez que hayan hecho sus aplicaciones podrán hacer uso de todas las funcionalidades de la nueva biblioteca &tdeprint;.</para>

<para>Los desarrolladores más ambiciosos, o aquellos con necesidades especiales tienen más posibilidades: a pesar del rico entorno de propiedades de &tdeprint;, es posible personalizar el diálogo de impresión para su aplicación permitiendo la aparición de una «pestaña» adicional, donde pueden insertar de modo natural sus extensiones a &tdeprint;.</para>


<para>Esta última propiedad no se utiliza de modo extensivo en &kde; hasta la fecha, ya que los desarrolladores no conocen completamente la potencia de &tdeprint;. Es de esperar que veremos uso de esto en el futuro. Un ejemplo que descubrí es la aplicación &kcron;. Le permite editar su archivo crontab utilizando un &GUI;. Los desarrolladores han implementado una propiedad de impresión que le permite (o a <systemitem class="username">root</systemitem>) elegir si desea imprimir el crontab completo (para todos los usuarios) o simplemente la parte marcada. Puede ver los efectos de esa opción en &tdeprint; en las siguientes capturas de pantalla.</para>

<para>Esta captura muestra un ejemplo de la utilidad &kcron;. <screenshot>
<screeninfo>Utilidad &kcron;: una pequeña muestra de los trabajos del sistema planificados (crons) mostrados a través de un <acronym>GUI</acronym>&GUI; de &kde;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kcron_to_be_printed.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Los desarrolladores de &kcron; le permiten elegir imprimir la tabla cron completa o sólo la parte marcada.</phrase></textobject>
</mediaobject>
</screenshot>
</para>

<para>El diálogo para configurar las opciones de impresión de &kcron;: la pestaña adicional denominada  <guilabel>Opciones de cron</guilabel> pertenece a &kcron;, no a &tdeprint;; es una extensión especial añadida por los desarrolladores de &kcron; para extender las posibilidades de impresión. No tiene su origen en &tdeprint; pero es ejecutado por éste. Los desarrolladores de otras aplicaciones pueden añadir sus propias funcionalidades si así lo desean.</para>


<screenshot>
<screeninfo>Añadido de &kcron; al diálogo de &tdeprint;.</screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_with_kcron_developer_special.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Añadido de &kcron; al diálogo de &tdeprint;.</phrase></textobject>
<caption>
<para>Añadido de &kcron; al diálogo de &tdeprint;.</para>
</caption>
</mediaobject>
</screenshot>

</sect2>

<sect2>
<title>Lo que &tdeprint; ofrece a todo el mundo...</title>

<para>El interfaz de &tdeprint; es de manejo sencillo en todos los subsistemas de impresión soportados, pero no elimina las debilidades tradicionales de algunos de estos sistemas. Aunque sí lima algunos bordes. Usuarios diferentes pueden utilizar sistemas de impresión diferentes en la misma máquina. Incluso un usuario puede cambiar «sobre la marcha», desde el cuadro de diálogo de impresión, el subsistema de impresión a utilizar para el siguiente trabajo (ésto es posible si sistemas diferentes se instalan de modo que no «interfieran unos con otros»).</para>

<para>La mayor parte de los usuarios de &UNIX; están habituados al sistema de impresión <acronym>LPD</acronym>. <acronym>LPD</acronym> sólo proporciona funciones básicas de impresión, es bastante inflexible y no utiliza muchas de las opciones de los más modernos sistemas de impresión como &CUPS;. Aunque también funciona remotamente a cualquier distancia (como todos los protocolos basados en TCP/IP), el <acronym>LPD</acronym> carece de comunicación bidireccional, soporte de autentificación, de control de acceso y de cifrado.</para>

<para>&tdeprint; puede utilizar &CUPS; para soportar:</para>

<itemizedlist>
<listitem>
<para>La búsqueda de impresoras disponibles en la <acronym>LAN</acronym>.</para>
</listitem>
<listitem>
<para>Autentificación básica, organizada y certificada.</para>
</listitem>
<listitem>
<para>Control de acceso basado en direcciones <acronym>IP</acronym>, direcciones de red, máscaras de red y nombres de máquinas y de dominio.</para>
</listitem>
<listitem>
<para>Cifrado TLS o SSL3 de 128-Bits de los datos de impresión, para impedir la interceptación o, al menos, para dificultarla.</para>
</listitem>
</itemizedlist>

<para>Esto convierte a &tdeprint; una solución más robusta y fiable que utilizar el venerable <acronym>LPD</acronym>.</para>

</sect2>
<sect2>
<title>Cómo acceder a &tdeprint; </title>

<para>Puede acceder a &tdeprint; o partes de él de cuatro modos diferentes:</para>

<itemizedlist>
<listitem><para>A través de sus aplicaciones: si llama al diálogo de impresión (<menuchoice><guilabel>Archivo</guilabel> <guilabel>Imprimir...</guilabel></menuchoice>) o pulsa el botón que contiene una pequeña impresora, aparece el diálogo de impresión.</para></listitem>

<listitem><para>A través de la orden <command>kprinter</command> introducida desde un <application>terminal</application> o desde una ventana de &konsole; o desde <guilabel>Ejecutar orden...</guilabel> de la ventana mini-<acronym>CLI</acronym>: estas operaciones también abren el diálogo de impresión.</para></listitem>

<listitem><para>Desde el botón <inlinemediaobject><imageobject> <imagedata fileref="kcontrol-icon.png" format="PNG"/></imageobject> </inlinemediaobject>, iniciando &kcontrol; y después seleccionando <menuchoice><guilabel>Sistema</guilabel><guilabel>Administrador de impresión</guilabel></menuchoice>. Esta operación abre el administrador de &tdeprint; como parte del &kcontrolcenter; y le permite cambiar a otras partes de &kcontrol;.</para></listitem>

<listitem><para>Desde una línea de órdenes (&konsole; o mini-<acronym>CLI</acronym>) introduzca <userinput> <command>tdecmshell</command> <option>printmgr</option></userinput>. Esto abrirá la parte &tdeprint; correspondiente a &kcontrol; para configurar su opciones. </para></listitem>
</itemizedlist>
<screenshot>
<screeninfo>El diálogo de &kprinter; iniciado desde la ventana <guilabel>Ejecutar comand...</guilabel></screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter_called_from_run_command.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Iniciando el diálogo de &kprinter; desde una ventana de <guilabel>Ejecutar orden...</guilabel>.</phrase></textobject>
<caption><para>Iniciando el diálogo de &kprinter; desde una ventana de <guilabel>Ejecutar orden...</guilabel>.</para></caption>
</mediaobject>
</screenshot>

<!-- TODO: This one ought to be a screenshot LW. --> <para>Aquí un dibujo de &kivio; del diálogo de &kprinter; tal y como aparece después de ser iniciado ... Y siempre puede añadir una nueva impresora pulsando sobre el pequeño botón <guiicon>Asistente</guiicon> (marcado rojo/amarillo en este dibujo).</para>
  
<screenshot>
<screeninfo>Diálogo &kprinter; iniciado (dibujo borrador &kivio;) </screeninfo>
<mediaobject>
<imageobject>
<imagedata fileref="kprinter-kivio.png"
format="PNG"/></imageobject>
<textobject>
<phrase>Diálogo &kprinter; iniciado (dibujo borrador &kivio;)</phrase></textobject>
<caption><para>Diálogo &kprinter; iniciado (borrador de dibujo &kivio;)</para></caption>
</mediaobject>
</screenshot>

</sect2>

</sect1>

</chapter>
