pagina en construccion Puede tambien consultar el fichero coprint.chm.
Las operaciones de script de CoPrint pueden teclearse directamente en un miembro de script o ser generadas automaticamente por alguna de las utilidades de Coprint, como el emulador de impresora Coprint o el AutoPdf, etc.
Es muy facil hacer scripts de prueba con wAddServer, WA en PDM para CoPrint
Nota Importante sobre el orden numerico de los parametros:
Los parametros de las operaciones se separan con coma, y a la propia operacion se la trata como el param 1, de forma que en la operacion ;;Font,TNR12i la propia palabra ;;Font es el param1 y TNR12i es el param2.
Recomendamos que todo script lleve al principio un grupo de lineas entre entre ;;NewFrm y ;;EndFrm. A ese grupo se le denomina overlay o “scrip base”. El concepto es que ese grupo es lo primero que se imprime o trata en cada pagina, por lo que es ideal cuando un documento/spool tiene varias paginas.
Ver tambien BarCodes, Codigos de Barras en CoPrint.
;;Barcode ;;BarcodeT Imprime un codigo de barras. Si se usa ;;BarcodeT se imprime ademas el texto.
Ejemplo…
CODIGOS DE BARRAS SOPORTADOS EN COPRINT
;;Blanks activa uso de lineas vacias (contrario de ;;NoBlanks). Tiene muy poco uso.
;;Noblanks indica a CoPrint que NO trate las lineas en blanco del script. Esto permite mejorar la lectura humana para fase de pruebas. ;;Blanks vuelve a la situacion normal que es tratar (imprimir) las lineas en blanco.
;;Box imprimir Cuadro, Rectángulo
;;Line ;;Box ;;BoxF
Imprime una Linea, un Rectangulo o un Rectangulo con Fondo (relleno).
EJEMPLOS:
Nota: Se asume INCH -pulgada- (”) como unidad de medida para los ejemplos, y se usa punto como separador decimal.
;;Color - Establecer Color Activo. Ver pag ColorEjemplos.
Permite establecer atributos de color, los cuales seran vigentes para las proximas operaciones. El color de primer plano generalmente es valido para texto, los otros atributos son basicamente para rayas y cuadros.
Ejemplos…
Nota: puede utilizar el programa cpiCOLOR.exe para ver los colores.
Cualquier linea en el script que comience por ;;* es un comentario, no se imprime ni se hace nada con ella.
;;copyPI: COPIAS CON OPCION DE IMPRIMIR SEÑAL DIFERENTE EN CADA UNA
Por ejemplo, tenemos un spool de facturas y queremos imprimir por cada pagina dos paginas: una que ponga ORIGINAL y otra que ponga COPIA.
Es posible usar como señal diferenciadora una imagen (con la posibilidad de usar logos o imágenes) o texto simple.
Para usar un texto: Poner en el scrip base (entre newFrm y endFrm):
parametros:
Para usar una imagen:
Poner en el scrip base (entre newFrm y endFrm):
la op ;;copyPI es la como ;;Pos: indica donde poner la señal. en el ejemplo la señal se pone en la posicion (pulgada) 1 horizontal y 6 vertical.
la op ;;copy?I es la ;;Image a usar por cada copia ? (de 1 a 9). En el ejemplo se imprime la imagen original.bmp en la pagina original y la imagen copia.bmp en la copia, por lo que se imprimen dos paginas iguales (excepto la señal) por cada pagina original en el spool.
la D (o R) en el ejemplo significa “imprime la imagen a la derecha”, parametro igual que en la operacion ;;Image.
Si no se desea imprimir señal en la original, simplemente no escriba una linea ;;copy1i,etc
La forma de hacer esas imagenes es muy facil, usando por ejemplo PAINT de Microsoft. recomendamos BMP con 16 colores. Al ser una imagen la señal diferenciadora, no solo puede contener texto sino cualquier imagen o icono, colores, etc.
Por tanto CoPrint sabe cuantas copias quieres imprimir de un documento por el numero mas alto de ;;copy+I que exista en el script base.
Estas lineas deben ponerse en el script base antes de la linea de fin de script base que es ;;endFRM
;;eMail: Enviar E-Mail (p.e. un PDF generado).
Envia por E-Mail un fichero (opciona) con un asunto, un cuerpo de texto y texto adicional final opcional.
Nota:
Parametros:
Por ejemplo: ;;EMAIL,info@cpi.es,Asunto del envio,JOSEMARI,esto es un presupuesto
Dependiendo de si disponemos o no de los fuentes del programa de listado que queramos enviar por email (o queramos modificarlo) podemos incluir esta orden de varias formas.
Si disponemos de los fuentes lo mas facil será añadir la propia orden ;;MAIL en el listado, preferiblemente en las primeras líneas, en la posición 1. Definir un campo en el CoPrint que incluya esta línea para que sea procesada por el servidor de coprint. De esta forma, al ejecutarse el listado, ya debemos saber la direccióna quien se remite el documento e imprimiremos su dirección en el propio listado.
Si no disponemos de los fuentes o no queremos cambiarlos, distinguiremos entre dos casos:
Por supuesto, ahora puede combinarse esto con la funcion ;;Fldvar,n,campox y variables &&n&& en ;;eMail como hicimos en el caso anterior. Para ello tener en cuenta que el campo se llama CALLxxxx.
De igual forma que para savePdf en ;;printer, se admiten tambien variables &usrNN (como &usr01 o &usr02, etc).
Esto permite incluso definir las operaciones ;;printer (con savePdf) y ;;email dentro del bloque de overlay (;;newFrm y ;;endFrm) y hacer que ciertas variables sean tomadas de datos reales impresos en el spool.
Esta capacidad permite incluso habilitar estas funciones cuando no se tiene el fuente del programa para incluir ;;printer y ;;email como lineas de spool, dotando de mucha mayor flexibilidad la operativa.
;;eMailIN: Envio de correo/email inmediato
Es como una orden ;;email pero con mas opciones.
prm9 y prm10 pueden usarse igualmente en ;;email con reservas.
;;endFrm Vea la operacion ;;newFrm
Ver Zone
;;filePC
Permite imprimir con CoPrint textos desde un fichero .txt de PC y mezclarlos con los datos de spool de 400.
Estos textos permiten ordenes de coprint como ;;COLOR y ;;FONT.
Util cuando queremos poner un texto largo como por ejemplo unas condiciones de factura, en lugar de subir el texto al 400.
Ejemplo: ;;filePC,\\server\docum\condic.txt
;;FLD Imprimir un campo de Formulario
El Formato de parametros es el siguiente:
En el caso de Formularios definidos para imprimir Spool automatico del Ordenador Central estas operaciones ;;FLD se crean automáticamente por el API.
;;fldAtr Asignar atributos a campos de formulario por comparacion/busqueda con su contenido
Permite que un campo de formulario tenga un atributo diferente segun su contenido.
Por ejemplo, si un campo contiene unas veces URGENTE y otras veces NORMAL puede hacerse que cuando contenga URGENTE se imprima en negrita.
Por supuesto, si un “campo” es un grupo de lineas en el spool, cada una de esas lineas (campos) que tienen el mismo ID se tratan.
Se soportan los atributos (y ademas combinaciones separadas por blanco):
El formato es sencillo y práctico:
;;fldIn Definir espacio de interlineado para campos repetitivos de Formulario
En un trabajo que se use Formulario con Campos y existan campos asociados para ser impresos en lineas repetitivas (columnas, p.e.) con esta orden puede definirse el alto de la interlinea a crear entre cada linea.
El valor por omision es 4.
Ejemplo: ;;FLDIN,6
;;fldVar La operacion ;;fldVar,n,campoX asigna a la variable &&n&& el contenido del campoX.
En la operacion ;;eMail cuaquiera de sus parametros admite esas variables &&n&& por lo que se admite como variable el asunto, la firma o la dirección.
Se admiten las variables 1 a 9.
;;folderName se usa para dar nombre a una carpeta o path y luego usarla de forma mas corta.
;;folderName,dir1,\\192.168.3.1\img\ .... ;;image,*dir1*logo3.jpg
;;Font Permite definir el Font (Tipo de Letra, Tamaño, atributos) con el que se van a escribir las siguientes lineas de texto (y textos parciales) con o sin ;;Pos.
Cambiando la orden ;;font dinamícamente se pueden conseguir efectos de escritura con cambio dinámico de fonts, como es obvio.
Nota Importante: Sólo se recomienda el uso de fuentes que sean Truetype, porque son las que mejor se adaptan a cambio de impresoras, precisión, medidas, etc.
Puede usarse virtualmente cualquier font que sea compatible con Windows, pero debe tenerse en cuenta que los fonts definidos deben estar instalados en CADA PC donde el programa Coprint Server (y por tanto la impresión) deba procesarse.
Para mayor facilidad algunos fonts conocidos se pueden poner con nombre abreviado.
Los Fonts recomendados (por estar en practicamente cualquier PC) son:
Parametros:
ejemplos…
Notas:
pueden combinarse diversos Fonts en una misma linea:
Sabiendo que los textos de lineas normales terminadas en ;; (dos simbols puntocoma) NO saltan de linea y que tampoco saltan de linea los textos impresos con ;;Pos (si saltan los de ;;PosL) pueden utilizarse impresiones de texto seguidas de cambios de fonts, seguidas de impresiones de texto, etc.
Por ejemplo:
Para pruebas ver wAddServer, WA en PDM para CoPrint
Formulario es un Fichero de Imagen creado usando el programa para Diseñar Formularios en Windows. En un formulario pueden colocarse Textos, Rayas, Cuadros y CAMPOS.
Formularios CoPrint
Un Formulario es un Fichero de Imagen (WMF, standard Metafile) creado usando el programa para Diseñar Formularios en Windows.
Cuando ademas el formulario tiene campos, se genera tambien un fichero RFL.
En un formulario pueden colocarse
La ventaja de usar un formulario es que todos los elementos que se dibujen el él (Textos, Cajas, Lineas, ) se imprimen de una vez, además de que cualquier cambio de diseño se hace en Windows y sin intervencion de cambio de programacion, definicion en el Host, etc.
por ejemplo, para una Factura partiendo de un Spool del Host AS/400:
En el paso 51 de COPRINT en el Host
En el script general asociado al spool podemos poner
Para mas informacion ver ;;IMAGE o ;;FLDFILE
Ajuste de Tamaño.
El modo de uso de Formulario en CoPrint permite tener una casi perfecta aproximacion a los tamaños en pulgadas (en decimas de pulgada) definibles en el diseñador de formularios, pero si se necesitara un ajuste diferente puede controlarse con el control
Ajuste del tamaño de interlineas en Campos de Formulario multiLinea
La operacion ;;FLDIN,numero puede definir el valor de la interlinea que hace CoPrint entre dos lineas de campos de formulario. El valor por omision es 4, por lo que subiendo este valor se consigue que las lineas queden mas separadas, bajando el valor las lineas quedan mas juntas.
;;Image: Pegar/dibujar un fichero de Imagen.
Imprime una Imagen, tal como firma, logo, foto o formularios completos. Se soportan ficheros de imagen de los tipos mas comunes, tal como GIF, JPG, PNG, BMP, TIF, PCX, WMF, DIB…
Pero nuestra orden ;;image permite mucho más que sólo pintar una imagen, ya que tiene toda clase de funcionalidad posible, tales como:
Parametros:
Ejemplo:
Si se quiere obligar que una Imagen (como cualquier otro objeto) se ubique (comience) en una cirta posicion, use la operacion ;;Pos antes.
;;Info Imprime informacion para pruebas programacion
Imprime una linea informando de ciertos parametros de medidas asociados con la impresora.
Esta operacion, como la operacion ;;Regla1 puede ser útil en fase de pruebas para afinar el posicionamiento de los objetos en la página.
Ver ;;Box Box
;;Margin Establecer Margen Izquierdo
Establece la posicion para el margen de texto. El Margen de texto es la posicion donde se escriben las lineas normales de texto, así como aquellos objetos que se desean ubicar en esa posicion (indicada con M). Por omision CoPrint establece una posicion como Margen de Texto, pero con esta operacion puede cambiarse.
EJEMPLO:
;;Mode - Modo de Medicion
Permite cambiar ciertas reglas generales (de medición, p.e.) a la Impresión. Puede aparecer n veces. Lo normal es ponerla como primera instruccion detras de ;;newFrm
Parametros:
ejemplo…
Es posible incluso cambiar entre medidas, es decir que -como otras operaciones- se permiten varias operaciones ;;Mode dentro del mismo script.
;;NEWFRM Comienza ambito repetitivo Formulario (Overlay) hasta ;;ENDFRM
Las lineas (operaciones) contenidas entre las operaciones especiales ;;NEWFRM y ;;ENDFRM corresponden a OPERACIONES REPETITIVAS (Formulario/Overlay) en cada página.
Por ejemplo. si lo que se está creando es la impresion de facturas el grupo de lineas entre ;;Newform y ;;endform puede contener el diseño del formulario (cajas, cuadros, lineas y textos repetitivos como “Factura” “Iva” “Total”, etc): es decir aquello que se repetirá en cada página.
Estas operaciones NO tienen parametros.
ejemplo:
;;newFrm ;;Box,1,0,End ;;Font,TNR,24BUC Factura ;;EndFrm
;;noBlanks evita tratar lineas en blanco.
;;Noprint intenta evitar impresion real, p.e. para enviar correo, etc.
Aunque no se ordene ninguna impresión real en el script, la operación ;;noprint asegura un mayor cuidado para, por ejemplo, no expulsar página en blanco, etc.
Se recomienda ponerla dentro del NEWFORM (overlay) y como linea inicial del cuerpo.
;;Offset Sumar Posiciones a ordenes ;;pos/;;posL que sigan
Permite definir Posiciones Adicionales para posteriores Operaciones ;;pos/;;posL.
Esta es una operacion compleja, y depende del entorno a usar.
Veamos una explicacion:
Imaginemos que hay un grupo de operaciones ;;Pos con texto imprimiendo ciertos datos en posiciones fijas a la izquierda de la hoja y que queremos repetir todas esas posiciones pero mas a la derecha. Podemos escribir dos veces todas las operaciones ;;Pos y cambiar en cada una de ellas las posiciones, o bien podemos repetirlas y no cambiar todas ellas sino solo poner antes una operaicion offset tal como ;;Offset,3,0 para que todas las ;;Pos se situen 3 pulgadas mas a la derecha de lo que decimos.
(dificil?… no la use).
;;Overflow y ;;OF Control de Salto de Pagina automático
Permite ordenar a CoPrint que controle el overflow (impresion despues de fin de pagina). Con esta orden puede conseguirse o bien que CoPrint NO controle el overflow o bien que despues de impreso un cierto porcentaje de la pagina salte a la siguiente. Por omision se supone 99% (control muy escaso). Generalmente no hace falta esta orden.
Ejemplo:
;;Overlay Soporte Especial para Overlay (Formulario)
Permite un control especial sobre la capacidad de Imprimir Overlay (Formulario), es decir la parte fija que se imprime por cada hoja.
Tiene dos funciones:
Esta operacion es muy poco necesaria.
;;Page Saltar de Página
Obliga un avance de página y provoca con ello la impresión (en la nueva página) de las operaciones contenidas entre ;;newFRM y ;;endFRM. Debe tenerse en cuenta que en ciertas ocasiones tambien pueden producirse saltos de página a través del control de overflow automatico (el cual puede personalizarse con la op ;;overFlow).
→ Vea tambien la operacion ;;pageU
La operacion ;;Page admite algunos parametros, pero estan practicamente reservados para uso interno.
otra operacion ;;pageOnly salta de pagina sin las demas consideraciones de ;;Page.
;;PAGEU repone el contador de paginas de usuario (no el del sistema) con un numero. Esto tiene poco uso, solo cuando se quiere llevar un contador de paginas especial (parcial, p.e.) imprimiendolo con la variable &*pageU dentro de una ;;pos o ;;posL.
ejemplo…
;;pageID La operacion ;;pageID y ;;pageID1 estan reservadas para uso interno.
El concepto pageID permite que existan en un mismo spool mas de un formulario dependiendo del contenido de las propias paginas.
De esta forma decimos que pageId tiene cada pagina dependiendo de algun contenido en la propia pagina.
Por ejemplo, alguien tiene un spool que contiene paginas de albaranes y de notas de entrega, es posible asignar a cada pagina un formulario diferente buscando las propias cadenas de caracteres “albaran” o “entrega”.
Una vez identificada cada pagina diferente en el paso 51, en el script base se asocia ese pageID a cada formulario (;;IMAGE y ;;FLDFILE)
Ver PageId
;;Pageonly salta de pagina sin las demas consideraciones de ;;Page.
Ver ;;Page.
Ver ;;Page
;;Pause Permite hacer una parada en el PC visualizando un texto
Ejemplo:
;;Pos y ;;Posl
Pone el cursor de la impresora en una cierta posicion. Opcionalmente permite poner un texto en esa posicion. Si hay un texto opcional la operacion ;;Pos imprime ese texto dejando el cursor tras la ultima posic escrita.
la operacion ;;Posl es lo mismo pero hace ademas un avance de linea.
Estas operaciones se usan bien para poner el cursor en un cierto sitio para ubicar las siguientes operaciones, o bien para escribir un texto en un cierto sitio.
La posic Horizontal permite ademas anteponer la letra R para indicar que el texto que se imprime se va a ajustar a la derecha de la posicion indicada. Esto es muy bueno para imprimir datos encolumnados.
p.e. ;;Pos,r7,,xxxxx imprime el texto xxxxx a justado por la derecha en la pulgada 7 horizontal.
Dentro del texto se soportan una o varias Variables especiales o de Usuario puestas en cualquier orden, e incluso mezcladas con datos constantes (vea el ejemplo mas abajo de fecha y hora). Las variables de usuario &USRnn permiten un uso mas sofisticado en ciertos momentos.
Existe un uso especial de Variables de Usuario que permite una gran flexibilidad. las “Variables Tecleadas al Imprimir”. Podemos decir que el dato es una Variable Tecleada. Para ello en lugar de teclear el nombre fijo tecleamos &usr01(Texto-libre-x) y cuando se comienza la impresion real de la primera pag se le pregunta al usuario final el texto.
ejemplos… (se supone ;;Mode,,INCH)
;;Printer: Definir Impresora a usar y/o atributos de impresión.
Si se indica una impresora se pone como impresora por omision.
Parametros:
Ejemplo…
Nota: En coprint.ini puede indicarse una impresora por omision con el valor Printer0=
Ver Zone
;;Regla (o ;;Rule o ;;Ruler, o ;;Regla1) Imprime una regla de posiciones para permitir afinar en la ubicacion de objetos. Tambien existe la utilidad piprt_R.exe adicional de CoPrint para imprimir regla de posiciones.
ejemplo:
Un ejemplo mas elaborado que imprime la regla verde claro como fondo:
;;newFrm ;;mode,,inch ;;* ;;font,lc,9t ;;color,10 ;;Regla1,,P,80 ;;color,0 ;;pos,0,0 ........... ;;EndFrm
;;rstPos Reponer posic Horiz y Vertic de la ultima savPos
;;rstPos ;;rstPosX ;;rstPosY
Esta operacion solo se usa en situaciones complejas (…y cuando no lo es?)
ejemplo…
;;Run Permite ordenar funciones diversas en el PC Windows donde corre el CoPrint server:
Permite el uso de variables con ;;USR
Parámetros:
Ejemplo:
Se puede usar esta funcion con el comando COPRUN.
;;savPos
Salva (Guarda) las posiciones horizontal y vertical actual, de forma que pueda imprimirse luego algo y volver a reponer estas posiciones con las operaciones ;;rstPos+
ejemplo… ;;savPos
Ver la operacion RSTPOS++
Ver Zone
;;Time Imprime la fecha y la hora. La segunda vez imprime ademas la diferencia con la primera. Solo es util para pruebas de programacion y tiempos, p.e.
Para imprimir la hora normal (p.e. en cabecera de paginas) se cuenta con la variable &*time, igualmente que la &*date. tal como
;;Usr++ Variables de Usuario
Permite definir variables de usuario numericas (01 a 99) que pueden ser luego impresas en ;;pos o ;;posL usando la variable &usr++ siendo ++ el num de variable a imprimir.
Ademas de estas variables de usuario existen variables globales.
Variables Tecleadas al Imprimir.
Si se usa una variable que NO tiene asignado valor (p.e. se usa la variable &usr01 antes de haber encontrado una operacion ;;usr01 para asignarle valor) CoPrint pregunta al usuario final el valor de esa variable. Permite definir formularios con textos variables que se solicitan al imprimir al usuario.
ejemplo… (suponemos ;;Mode,,INCH para el ejemplo)
;;wait Espera tras imprimir
;;wait,segundos
;;waitPage Espera tras imprimir cada página.
;;waitPage,segundos
No serán de mucha utilidad, sólo para trabajar con impresoras lentas o forzar la espera de tareas (como ;;RUN o ;;EAMAILIN)
Operaciones ;;StrZone ;;EndZone ;;PrtZone.
Define zonas (grupos de lineas) en el script base de un documento que pueden imprimirse con una operacion asociada a un dato de spool por su codigo de zona.
Para asociar un dato, en la pantalla de AS400 de diseño de datos de un documento (paso 51) lo definiremos como tipo ZONE y en el campo de datos adicionales pondremos ;;prtZone,N para indicar que cuando se vaya a imprimir este campo se ejecuten las lineas del script base que esten entre ;;strZone,N y ;;endZone,N en el script.
El sistema de Zone permite impresión diferenciada por zonas, de cierta complejidad que requiere generalmente un análisis cuidadoso.