Ejemplos de scripts

Anuncio
Document Distributor
Ejemplos de scripts
Para ver o descargar ésta u otra publicación de Lexmark Document Solutions, haga clic aquí.
Octubre de 2003
www.lexmark.com
Edición: octubre de 2003
El siguiente párrafo no tiene vigencia en aquellos países en los que estas disposiciones entren en conflicto
con las leyes locales: LEXMARK INTERNATIONAL, INC. PROPORCIONA ESTA PUBLICACIÓN "TAL COMO
ESTÁ" SIN GARANTÍA DE NINGÚN TIPO, NI EXPRESA NI IMPLÍCITA, INCLUIDA PERO NO LIMITADA A LAS
GARANTÍAS IMPLÍCITAS DE COMERCIALIDAD O DE APTITUD PARA UN PROPÓSITO ESPECÍFICO. En algunos
estados no se permite la renuncia de garantías implícitas o explícitas en determinadas transacciones, por lo que
puede que esta declaración no se aplique.
La presente publicación puede incluir imprecisiones técnicas o errores tipográficos. De forma periódica, se realizan
modificaciones en la información aquí contenida; dichas modificaciones se incorporarán en ediciones posteriores.
En cualquier momento se pueden realizar mejoras o cambios en los productos o programas descritos.
Si desea realizar algún comentario sobre esta publicación, puede dirigirse a Lexmark International, Inc., Department
F95 / 032-2, 740 West New Circle Road, Lexington, Kentucky 40550, EE.UU. En el Reino Unido e Irlanda, envíelos
a Lexmark International Ltd., Marketing and Services Department, Westhorpe House, Westhorpe, Marlow Bucks
SL7 3RQ. Lexmark puede utilizar o distribuir cualquier información que suministre de la forma que crea conveniente
sin que ello implique ninguna obligación. Puede adquirir copias adicionales de las publicaciones relacionadas con este
producto llamando al 1-800-553.9727. En el Reino Unido e Irlanda, llame al +44 (0)8704 440 044. En los demás
países, póngase en contacto con el establecimiento de venta.
Las referencias en esta publicación a productos, programas o servicios no implican que el fabricante pretenda
ponerlos a disposición en todos los países en los que opera. Cualquier referencia a un producto, un programa
o un servicio no implica que sólo se deba utilizar dicho producto, programa o servicio. En su lugar, se puede utilizar
cualquier producto, programa o servicio de funcionalidad equivalente que no infrinja ningún derecho de propiedad
intelectual existente. Es responsabilidad del usuario la evaluación y verificación de funcionamiento junto con otros
productos, programas o servicios, a excepción de los designados expresamente por el fabricante.
ImageQuick, Optra, Lexmark y Lexmark con diamante son marcas comerciales de Lexmark International, Inc.,
registradas en los Estados Unidos y/o en otros países.
PostScript® es una marca registrada de Adobe Systems Incorporated.
Otras marcas comerciales pertenecen a sus respectivos propietarios.
© Copyright 2003 Lexmark International, Inc.
Reservados todos los derechos.
DERECHOS DEL GOBIERNO DE LOS ESTADOS UNIDOS
Este software y la documentación que lo acompaña que se proporcionan según este acuerdo constituyen software
y documentación comercial de ordenador desarrollados exclusivamente con capital privado.
Contenido
Capítulo 1: Introducción ............................................................... 1
Capítulo 2: Scripts de Document Distributor.............................. 2
Ejemplo 1: almacenamiento en un archivo ............................................... 2
Ejemplo 2: impresión de un documento ................................................... 3
Ejemplo 3: solicitud y envío de un e-mail ................................................. 5
Ejemplo 4: almacenamiento de datos en una base de datos ................... 8
Ejemplo 5: separación de páginas utilizando códigos de barras ............ 12
Ejemplo 6: solicitud avanzada I .............................................................. 15
Ejemplo 7: solicitud avanzada II ............................................................. 19
Capítulo 3: Scripts de Document Producer .............................. 23
Ejemplo 8: combinación de datos e impresión de un formulario ............ 23
Ejemplo 9: combinación de datos y envío por fax de un formulario ....... 25
Capítulo 4: Scripts de Document Portal .................................... 27
Ejemplo 10: impresión de un formulario en blanco ................................ 27
Ejemplo 11: solicitud al usuario e impresión de un formulario en blanco 29
Apéndice A: configuración de ODBC .................................................. 31
Apéndice B: configuración de FormSet .............................................. 32
iii
1
Introducción
Este libro proporciona ejemplos de las construcciones y objetos que componen el lenguaje de
scripts que utiliza el conjunto Lexmark Document Solutions. Los ejemplos se han dividido en tres
capítulos; cada uno corresponde a un miembro distinto del conjunto de aplicaciones. Puede
examinarlos todos o sólo los correspondientes a su aplicación.
Todos los ejemplos de este libro se incluyen en el software Workflow Composer. Se recomienda
tener acceso a Workflow Composer y a Server Manager o Document Portal Admin para poder
trabajar con los scripts mientras consulta el libro. Cuando cargue los scripts en Document Server,
se le pedirá información específica del entorno que sea necesaria para ejecutar los scripts. Por
ejemplo, cuando sea necesaria la dirección IP del servidor SMTP, el script mostrará
"local.mailserver" y se reemplazará por el valor que proporcione.
Introducción
1
2
Scripts de Document Distributor
Ejemplo 1: almacenamiento en un archivo
Descripción general: almacenamiento del documento digitalizado en un archivo
Detalles: un empleado necesita digitalizar facturas en una impresora multifunción y almacenarlas en
el sistema de archivos local.
Script:
with SaveToFile
.input=original.document
.Path="c:\lexmark\factura.tif"
.AppendTimestamp=TRUE
.CreateDirectory=TRUE
.Go()
endwith
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Mediante Server Manager, cree un perfil en una impresora multifunción.
Nota: definiendo AppendTimestamp en TRUE, se garantiza un nombre de archivo único
para cada archivo guardado. El nombre de archivo generado será:
c:\lexmark\factura_MES_DD_AAAA_HH_MM_SS_MS.tif
Es importante observar que se usa el mismo sello de hora para todo el script; al llamar a SaveToFile
varias veces en la misma ejecución del script se utilizará el mismo sello de hora. Si es necesario,
el sello de hora se puede generar manualmente mediante la propiedad usertime del objeto original
y añadiendo un valor único. Para ver un ejemplo, consulte el ejemplo 5: separación de páginas
utilizando códigos de barras.
Definiendo la propiedad CreateDirectory en TRUE, la acción creará los directorios que no existan en
la ruta de acceso. Esto resulta muy útil si el propio sello de hora se utilizará como parte del nombre
de directorio.
Scripts de Document Distributor
2
Ejemplo 2: impresión de un documento
Descripción general: impresión de un documento digitalizado en otra impresora
Detalles: un empleado necesita enviar un fax interno; un fax de una ubicación de la empresa a otra.
Puesto que existe una LAN para toda la empresa y las impresoras están disponibles en cada
ubicación, este script imprime directamente en las impresoras en vez de enviar un fax. Proporciona
una salida de mayor calidad y ahorra en costes telefónicos. Además, el sello de hora se agrega a la
copia impresa para que parezca un fax.
Script:
1 Utilice el método separate para dividir el valor de usertime en partes individuales. A
continuación, cree la cadena de información que se imprime en cada página de la copia
impresa. El formato de la cadena es "Enviado por dirección IP el fecha a las hora"
stringarray time = original.usertime.Separate("_")
string stamp = "Enviado por " + original.userip
stamp.Concatenate(" el " + time[2] + " " + time[3] + " " + time[4])
stamp.Concatenate(" a las " + time[5] + ":" + time[6])
2 Utilice la acción ImageText para agregar la información de sello de hora en la esquina inferior
derecha de todas las páginas que se enviarán.
with ImageText
.input=original.document
.Orientation=LDD_ORIENTATION_PORTRAIT
.Text=stamp
.Direction=LDD_IMGTEXTDIR_HORIZONTAL
.Font=LDD_IMGTEXTFONT_ARIAL
.Color=LDD_IMGTEXTCOLOR_BLACK
.Position=LDD_IMGTEXTPOS_BOTTOMRIGHT
.AllPages=TRUE
.Size=10
.Bold=TRUE
.Italic=TRUE
.Underline=FALSE
.Go()
endwith
3 Utilice la acción ConvertToDocument para convertir la imagen TIFF a PostScript de modo
que se pueda imprimir. Observe que utilizamos la salida de la acción ImageText, por lo que
obtendremos la imagen TIFF con la información de sello de hora.
with ConvertToDocument
.input=ImageText.output
.Format=LDD_DOCFORMAT_PS
.AllPages=TRUE
.PaperSize=LDD_PAPERSIZE_LETTER
.Orientation=LDD_ORIENTATION_AUTO
.Go()
endwith
Scripts de Document Distributor
3
4 Utilice la acción PrintJob para enviar el archivo PostScript a la impresora especificada.
Si la impresora tiene instalada una opción ImageQuick, el archivo TIFF se puede enviar
directamente a la impresora sin convertirlo primero a PostScript. Se ha definido un valor local
con el nombre printerip y un "Tipo" como "Texto" para su uso en la propiedad .IPAddress
de la acción PrintJob. Para obtener más información, consulte la ayuda "Valores locales" en
la aplicación Workflow Composer.
with PrintJob
.input=ConvertToDocument.output
.IPAddress=local.printerip
.Copies=1
.SetWaitTimeout(FALSE)
.PaperSource=LDD_PRINTER_DEFAULT
.PaperSize=LDD_PRINTER_DEFAULT
.OutputBin=LDD_PRINTER_DEFAULT
.Duplex=LDD_DUPLEX_OFF
.Orientation=LDD_PRINTER_DEFAULT
.Nup=LDD_NUP_OFF
.Collate=FALSE
.Staple=FALSE
.HolePunch=FALSE
.TonerSaver=FALSE
.SetConfidentialPrint(FALSE)
.Go()
endwith
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Configure la dirección IP de la impresora que se utilizará mediante los valores locales.
3 Cree un perfil en una impresora multifunción.
Scripts de Document Distributor
4
Ejemplo 3: solicitud y envío de un e-mail
Descripción general: realización de reconocimiento óptico de caracteres de un documento y envío
al usuario mediante e-mail
Detalles: una empresa desea facilitar a sus empleados la realización de reconocimiento óptico
de caracteres de documentos impresos sin tener que instalar software de OCR en los ordenadores
de la empresa. Este script se utiliza para solicitar al usuario su dirección de e-mail y, a continuación,
preguntarle si desea el documento en formato RTF (utilizado por muchos procesadores de textos)
o en formato PDF. El script lo convierte y lo envía al usuario mediante e-mail.
Script:
1 Este script realiza preguntas al usuario final, por lo que hay que configurarlas. La primera
pregunta es una cadena y pide una dirección de e-mail. La segunda es una lista de selección
única que pide el formato del archivo.
stringprompt email
email.SetPromptText("Introduzca la dirección de e-mail")
stringprompt format
with format
.SetPromptText("Seleccione el formato de archivo")
.AddPromptOption("RTF")
.AddPromptOption("PDF")
endwith
2 Las preguntas ya se han preparado. Ahora el bloque prompt se utiliza para realizar las
preguntas. Cuando el usuario selecciona este script, es la parte del mismo que se ejecuta
antes de que se efectúe la digitalización. Debido a que las respuestas a las preguntas no
afectan a las preguntas posteriores y debido a que las respuestas no se verifican, las
preguntas se pueden hacer en un solo paso.
prompt
step "prompts"
ask(email)
ask(format)
laststep
endprompt
3 Una vez efectuadas las preguntas, el documento se digitaliza y se envía como los demás
trabajos en los que no se hacen preguntas. El script reanudará la ejecución en este punto
cuando se reinicie el trabajo.
Scripts de Document Distributor
5
4 Examine el formato seleccionado y convierta el documento de entrada en PDF o RTF. La
salida se almacena en la variable ocr por lo que se puede utilizar para la acción de e-mail.
doc ocr
if (format == "PDF")
with ImageToPDF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.Format=LDD_PDFFORMAT_IMAGEONTEXT
.PictureResolution=300
.PictureQuality=75
.AllPages=TRUE
.Go()
ocr = .output
endwith
else
with ImageToRTF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.PaperSize=LDD_PAPERSIZE_LETTER
.KeepColor=TRUE
.KeepPictures=TRUE
.AllPages=TRUE
.Go()
ocr = .output
endwith
endif
5 La acción EmailSMTP se utiliza ahora para enviar el e-mail con la salida de OCR como
anexo. La dirección de e-mail utilizada se obtuvo del usuario final cuando se envió el trabajo.
La dirección IP del servidor SMTP se definió como un valor local; cuando el script se carga
en el servidor, Server Manager solicita el valor que se utilizará para esta propiedad.
with EmailSMTP
.Server=local.emailserver
.To=email
.From=email
.Subject="Documento digitalizado"
.Message="Se incluye el documento digitalizado en el formato"_
"solicitado."
.CharacterSet=LDD_SMTPCHARSET_US
.Attachments=ocr
.Go()
endwith
Scripts de Document Distributor
6
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Configure la dirección del servidor SMTP mediante los valores locales.
3 Para poder utilizar este script en una impresora multifunción, debe tener una pantalla táctil.
Si no está disponible, utilice Select'N'Send o Print'N'Send en su lugar. Si está disponible,
cree un perfil utilizando un TIFF, una resolución de 300 ppp y una oscuridad de 4. De este
modo se obtendrán los mejores resultados de OCR.
Nota: la acción EmailSMTP se puede reemplazar con objetos específicos admitidos
por GroupWare, como Lotus Notes (EmailNotes), Microsoft Exchange
(EmailExchange) y Novell GroupWise (GWMail). La principal ventaja de utilizar
estos objetos es que el script puede aprovechar la libreta de direcciones y las
características específicas de GroupWare; sin embargo, el uso de estos objetos
implica más requisitos de configuración. En la mayoría de los casos, los servidores
GroupWare se pueden configurar para aceptar correo SMTP. Si el script no
necesita características especiales, debe ser suficiente con la acción general
EmailSMTP.
Scripts de Document Distributor
7
Ejemplo 4: almacenamiento de datos en una base de datos
Descripción general: almacenamiento del documento digitalizado en una base de datos
Detalles: un departamento de recursos humanos está encargado de realizar el seguimiento de
todos los historiales. El script se utilizará para almacenar el historial en una base de datos. Además,
el historial se convertirá a texto, que también se almacenará en la base de datos. Al almacenar
el texto, se pueden buscar en la base de datos determinadas palabras clave y, a continuación,
se puede obtener una lista de todos los historiales que coincidan con la búsqueda. Debido a que
el historial también estará almacenado, se puede ver, imprimir o direccionar a otra ubicación.
•
Las bases de datos que emplean BLOB (objetos grandes binarios) deben utilizar el script 4A. Los
BLOB los utilizan las bases de datos que permiten almacenar archivos en ellas. Ejemplos de estas
bases de datos son Oracle, Microsoft SQL Server e IBM DB2.
•
Las bases de datos, como Microsoft Access, que no admitan BLOB deben utilizar el script 4B.
Para llevar a cabo la mista tarea, el documento se debe guardar en el sistema de archivos local.
A continuación, la ubicación del archivo se guarda en la base de datos para que se pueda recuperar
más adelante.
Script 4A:
1 Convierta el documento enviado en texto; este texto se almacenará en la base de datos
y se enlazará con este historial, de modo que se puedan realizar búsquedas en él.
with ImageToText
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.OneLine=TRUE
.SeparateParagraphs=TRUE
.PageBreaks=FALSE
.AppendEOF=FALSE
.AllPages=TRUE
.Go()
endwith
2 Mediante el objeto textfile, lea el texto generado por la acción ImageToText y almacénelo
en una cadena.
textfile tf
string ocrText
tf.Open(ImageToText.output)
ocrText = tf.Read(tf.Size())
tf.Close()
3 Inserte el historial junto con el texto en la base de datos para que se pueda recuperar
posteriormente. Las propiedades de la información de la base de datos se configuran
mediante los valores locales cuando el script se carga en el servidor.
with ODBCWrite
.DataSource=local.DataSource
.TableName=local.TableName
.LogonName=local.LogonName
Scripts de Document Distributor
8
.LogonPassword=local.LogonPassword
.AssignValue("ScanDate","")
.AssignValue("OCRText",ocrText)
.AssignValue("Resume",original.document)
.Go()
endwith
Para ejecutar este script:
1 En el equipo del servidor, configure la base de datos que se utilizará. Los archivos
LDDOracleTable.sql y LDDSQLServerTable.sql se proporcionan para crear las tablas
de ejemplo en Oracle y Microsoft SQL Server. Estos archivos se encuentran en el directorio
de ejemplos de scripts instalado con Workflow Composer. Después de configurar la base
de datos, configure la conexión ODBC. Para obtener información al respecto, consulte el
Apéndice A: configuración de ODBC.
2 Cárguelo en el servidor con Workflow Composer o Server Manager.
3 Configure la información de conexión ODBC mediante los valores locales.
4 Cree un perfil en una impresora multifunción.
Scripts de Document Distributor
9
Script 4B:
1 Convierta el documento enviado en texto; este texto se almacenará en la base de datos
y se enlazará con este historial, de modo que se puedan realizar búsquedas en él.
with ImageToText
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.OneLine=TRUE
.SeparateParagraphs=TRUE
.PageBreaks=FALSE
.AppendEOF=FALSE
.AllPages=TRUE
.Go()
endwith
2 Mediante el objeto textfile, lea el texto generado por la acción ImageToText y almacénelo
en una cadena.
textfile tf
string ocrText
tf.Open(ImageToText.output)
ocrText = tf.Read(tf.Size())
tf.Close()
3 Configure la ruta de acceso para guardar el archivo. El archivo se guardará en el sistema
de archivos local en un directorio denominado c:\lexmark. El nombre de archivo será
historial_sellohora.tif.
string filepath = "c:\lexmark\historial" + original.usertime + ".tif"
4 Debido a que el documento no se puede insertar en la base de datos, guárdelo en el sistema
de archivos local. AppendTimestamp está definido en FALSE debido a que se ha agregado
manualmente el sello de hora en el paso anterior. CreateDirectory está definido en TRUE por
lo que c:\lexmark se creará si no existe.
with SaveToFile
.input=original.document
.AppendTimestamp=FALSE
.Overwrite=FALSE
.Path=filepath
.CreateDirectory=TRUE
.Go()
endwith
Scripts de Document Distributor
10
5 Inserte el nombre de archivo junto con el texto en la base de datos para que se pueda
recuperar posteriormente. Las propiedades de la información de la base de datos se
configuran mediante los valores locales cuando el script se carga en el servidor.
with ODBCWrite
.DataSource=local.DataSource
.TableName=local.TableName
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.AssignValue("ScanDate","")
.AssignValue("OCRText",ocrText)
.AssignValue("ResumeFile",filepath)
.Go()
endwith
Para ejecutar este script:
1 En el equipo del servidor, configure la base de datos que se utilizará. Se proporciona la base
de datos resumes.mdb de Microsoft Access para utilizarla en este ejemplo. Este archivo
se encuentra en el directorio de ejemplos de scripts instalado con Workflow Composer.
Después de configurar la base de datos o utilizar la suministrada, configure la conexión
ODBC. Para obtener información al respecto, consulte el Apéndice A.
2 Cárguelo en el servidor con Workflow Composer o Server Manager.
3 Configure la información de conexión ODBC mediante los valores locales.
4 Cree un perfil en una impresora multifunción.
Scripts de Document Distributor
11
Ejemplo 5: separación de páginas utilizando códigos de barras
Descripción general: uso de una página de separación de código de barras para dividir los trabajos
de longitud de página variable en archivos independientes
Detalles: un empleado necesita digitalizar y procesar varios conjuntos de documentos. Cada
conjunto se debe digitalizar por separado, pero resulta más sencillo, y preferible, digitalizarlos todos
a la vez. Esta operación se puede realizar utilizando una página de separación de código de barras
para indicar el inicio de un nuevo conjunto. El uso de la página de separación permitirá que cada
conjunto contenga varias páginas. El script buscará un código de barras en cada página del
documento digitalizado. Cuando encuentre uno, marcará el final del conjunto anterior, que se
guardará en un archivo, y marcará el comienzo de un nuevo conjunto.
Script:
1 Declare todas las variables que se utilizan en este script.
doc separated
int i, startpage, lastpage
bool found
string fullpath, bcode
2 Separe el documento digitalizado de modo que cada página esté en su propio archivo.
Esta operación es necesaria para que cada grupo de páginas que componen un conjunto
se puedan combinar en un único archivo.
with ImageSeparate
.input=original.document
.AllPages=TRUE
.Go()
separated =.output
endwith
3 Utilice la variable startpage para indicar la primera página del conjunto actual. Inicialícela
en la primera página del conjunto digitalizado.
startpage = 1
4 Realice un bucle en todas las páginas que se han enviado.
loop i from 1 to separated.GetNumberFiles()
5 La variable found indica que un nuevo grupo de páginas está listo para guardarlo.
Restablezca dicha variable antes de procesar cada página.
found = false
Scripts de Document Distributor
12
6 Utilice la acción BarcodeRead para determinar si hay un código de barras en esta página.
with BarcodeRead
.Reset()
.Input=separated.GetFile(i)
.Type=LDD_BARCODE_CODE128
.Direction=LDD_BCDIR_HORIZ
.Quality=LDD_BCQUALITY_GOOD
.Fixed=FALSE
.Validate=TRUE
.Length=0
.PageNumber=1
.WholePage=TRUE
.Go()
bcode = .Results
endwith
7 En este ejemplo (y en el archivo de ejemplo suministrado), el código de barras es la palabra
"BREAK". Compruebe si se ha encontrado en esta página.
if (bcode.Contains("BREAK")) then
8 Se ha encontrado un código de barras. Si el valor de la página de inicio es igual al de la
página actual (por ejemplo, el valor de startpage es igual a 1 y la primera página del
documento digitalizado es una página de separación), no es necesario guardar ninguna
página. En este caso, la página de inicio del siguiente conjunto se define en la siguiente
página. De lo contrario, la última página del conjunto actual se define en la página anterior.
(No lo defina igual a esta página o también se guardará la página de separación.) Defina
el indicador found para indicar que es necesario guardar un conjunto de páginas.
if (startpage == i)
startpage = i + 1
else
lastpage = i - 1
found = true
endif
9 No se ha encontrado ningún código de barras. Compruebe si es la última página del
documento enviado. Si lo es, ésta tiene que ser la última página del conjunto actual. Defina
lastpage en la página actual y defina el indicador found para indicar que es necesario
guardar un conjunto de páginas.
else
if (i == separated.GetNumberFiles()) then
lastpage = i
found = true
endif
endif
10 Si se ha encontrado un nuevo conjunto de páginas, es necesario guardarlo.
if (found == true) then
Scripts de Document Distributor
13
11 Utilice la acción ImageCombine para combinar el conjunto de páginas en un documento.
with ImageCombine
.input=separated.GetFileRange(startpage, lastpage)
.Format=LDD_IMGFORMAT_TIFG4
.ColorDepth=LDD_IMGDEPTH_BW
.Go()
endwith
12 Determine el nombre del archivo que se utilizará para guardar el nuevo documento. Los conjuntos
se guardarán en el directorio c:\lexmark. El nombre del archivo será
conjunto_sellohora_página.tif. Debido a que todos los archivos guardados en un trabajo
tendrán el mismo sello de hora, se agregará el número de la última página del conjunto para obtener
un nombre de archivo único.
fullpath = "c:\lexmark\conjunto" + original.usertime + "_" + _
lastpage.AsString() + ".tif"
13 Guarde el nuevo documento en el disco. AppendTimestamp está definido en FALSE debido a que
se ha agregado manualmente en el paso anterior. CreateDirectory está definido en TRUE por lo que
el directorio c:\lexmark se creará si no existe.
with SaveToFile
.input = ImageCombine.output
.Path=fullpath
.AppendTimestamp=FALSE
.Overwrite=FALSE
.Go()
endwith
14 El conjunto actual ya se ha guardado. Defina la página de inicio del siguiente conjunto para que sea la
siguiente página del documento. No lo defina en la página actual; de lo contrario, el siguiente conjunto
incluirá la página de separación como parte del documento guardado.
startpage = i + 1;
endif
endloop
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Cree un perfil en una impresora multifunción utilizando TIFF, una resolución de 300 ppp
y una oscuridad de 3 o 4.
3 El archivo, fullset.tif, se encuentra en el directorio de ejemplos de scripts instalado con
Workflow Composer. Este archivo se puede imprimir y digitalizar o enviar mediante
Select'N'Send. Cuando se utiliza con este script, crea tres archivos independientes con
3, 2 y 4 páginas respectivamente.
Scripts de Document Distributor
14
Ejemplo 6: solicitud avanzada I
Descripción general: uso de las respuestas a las preguntas para determinar la siguiente pregunta
Detalles: este script permite que un usuario digitalice un documento y envíe el original o una versión
editable del mismo mediante e-mail. Se trata de una ampliación del script del ejemplo 3: solicitud
y envío de un e-mail. Al usuario se le pedirá una dirección de e-mail para enviar el documento
y, a continuación, se le preguntará si desea realizar un reconocimiento óptico de caracteres del
documento. Según la respuesta, en la siguiente pregunta se le pedirá el formato adecuado. Aunque
se trata de un script simple, muestra la potencia de las solicitudes y cómo la respuesta a una
pregunta puede servir de ayuda para determinar la siguiente pregunta.
Script:
1 Este script realiza preguntas al usuario final, por lo que hay que configurarlas aquí. La
primera pregunta es una cadena y pide una dirección de e-mail. La segunda es una solicitud
booleana; el usuario la activará para realizar un reconocimiento óptico de caracteres del
documento; de lo contrario, se enviará como imagen.
stringprompt email
email.SetPromptText("Dirección de e-mail para enviar el documento")
boolprompt ocr
ocr.SetPromptText("Haga clic para realizar un reconocimiento óptico de
caracteres del documento.")
2 Si el usuario decide realizar el reconocimiento óptico de caracteres, se utiliza esta pregunta.
Se trata de una lista de selección única que permite elegir el formato del documento OCR.
stringprompt ocrformat
with ocrformat
.SetPromptText("Seleccione el formato de OCR")
.AddPromptOption("RTF")
.AddPromptOption("PDF (Searchable)")
endwith
3 Si el usuario decide no realizar el reconocimiento óptico de caracteres, se utiliza esta
pregunta. Se trata de una lista de selección única que permite elegir el formato del
documento de imagen.
stringprompt imgformat
with imgformat
.SetPromptText("Seleccione el formato de imagen")
.AddPromptOption("TIFF")
.AddPromptOption("PDF (Not Searchable)")
endwith
4 Las preguntas ya se han preparado. Ahora el bloque prompt se utiliza para realizar las
preguntas. Cuando el usuario selecciona este script, se ejecuta la parte de solicitud del script
antes de que se efectúe la digitalización. Debido a que las respuestas a las preguntas se
utilizan para seleccionar la siguiente pregunta, se emplean varios pasos.
prompt
Scripts de Document Distributor
15
5 Este paso contiene dos preguntas: cuál es la dirección de e-mail y si se realizará un
reconocimiento óptico de caracteres del documento. Ambas preguntas se hacen en un
solo paso porque no afectan a la otra. Después de hacer la pregunta de OCR, se comprueba
el valor devuelto. Si se ha seleccionado OCR, la siguiente pregunta a ejecutar es oformat;
de lo contrario, el siguiente paso es iformat. Cada paso debe tener una directiva nextstep
o laststep.
step "email"
ask(email)
ask(ocr)
if (ocr == TRUE)
nextstep "oformat"
else
nextstep "iformat"
endif
6 Este paso se elige cuando el usuario selecciona OCR. Le pide al usuario que elija el formato
del documento OCR. Es la última pregunta de esta ruta, por lo que se utiliza la directiva
laststep.
step "oformat"
ask(ocrformat)
laststep
7 Este paso se elige cuando el usuario no selecciona OCR. Le pedirá al usuario que elija el
formato de la imagen. Es la última pregunta de esta ruta, por lo que se utiliza la directiva
laststep.
step "iformat"
ask(imgformat)
laststep
endprompt
8 Una vez efectuadas las preguntas, el documento se digitaliza y se envía como los demás
trabajos en los que no se hacen preguntas. El script reanudará la ejecución en este punto
cuando se reinicie el trabajo. Compruebe la solicitud ocr para averiguar si el usuario desea
realizar un reconocimiento óptico de caracteres del documento.
doc attach
if (ocr == TRUE)
Scripts de Document Distributor
16
9 El usuario desea realizar reconocimiento óptico de caracteres, compruebe que el formato es el
que desea y realice la conversión. Almacene la salida de la conversión en la variable attach.
if (ocrformat == "RTF")
with ImageToRTF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.PaperSize=LDD_PAPERSIZE_LETTER
.KeepColor=TRUE
.KeepPictures=TRUE
.AllPages=TRUE
.Go()
attach =.output
endwith
else
with ImageToPDF
.input=original.document
.Language=LDD_LANG_ENGLISH
.TextType=LDD_TEXTTYPE_NORMAL
.Format=LDD_PDFFORMAT_IMAGEONTEXT
.PictureResolution=72
.PictureQuality=50
.AllPages=TRUE
.Go()
attach =.output
endwith
endif
10 El usuario no desea realizar reconocimiento óptico de caracteres; compruebe que el formato de
imagen es el que desea y realice la conversión si es necesario. Debido a que el documento se
digitalizó como TIFF, no es necesario realizar ninguna conversión si se ha elegido ese formato.
Almacene la salida de la conversión en la variable attach.
else
if (imgformat == "TIFF")
attach = original.document
else
with ConvertToDocument
.input=original.document
.Format=LDD_DOCFORMAT_PDF
.AllPages=TRUE
.PaperSize=LDD_PAPERSIZE_LETTER
.Orientation=LDD_ORIENTATION_AUTO
.Go()
attach =.output
endwith
endif
endif
Scripts de Document Distributor
17
11 La acción EmailSMTP se utiliza ahora para enviar el e-mail con la salida seleccionada como anexo.
La dirección de e-mail utilizada se obtuvo del usuario final cuando se envió el trabajo. La dirección
IP del servidor SMTP se definió como un valor local; cuando el script se carga en el servidor, Server
Manager solicita el valor que se utilizará para esta propiedad.
with EmailSMTP
.Server=local.emailserver
.To=email
.cc=""
.bcc=""
.From=email
.ReplyTo=""
.Sender=""
.Subject="Documento digitalizado"
.Message="Éste es el documento digitalizado"
.CharacterSet=LDD_SMTPCHARSET_US
.Attachments=attach
.Go()
endwith
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Configure la dirección del servidor SMTP mediante los valores locales.
3 Para poder utilizar este script en una impresora multifunción, debe tener una pantalla táctil.
Si no está disponible, utilice Select'N'Send o Print'N'Send en su lugar. Si está disponible,
cree un perfil utilizando un TIFF, una resolución de 300 ppp y una oscuridad de 4. De este
modo se obtendrán los mejores resultados de OCR.
Scripts de Document Distributor
18
Ejemplo 7: solicitud avanzada II
Descripción general: realización de validación de datos a medida que el usuario final responde
a las solicitudes dinámicas
Detalles: un empleado necesita digitalizar documentos pero desea separarlos según el almacén que
necesita el documento y, a continuación, según el departamento del almacén. Este script solicitará
el número de almacén. Si el número de almacén es válido, al usuario se le presenta una lista de los
departamentos de dicho almacén. De lo contrario, se muestra un mensaje de error y se vuelve a
solicitar al usuario el número de almacén. Después de recopilar toda la información necesaria, el
documento se digitaliza y se guarda en la ubicación adecuada del sistema de archivos local.
Script:
1 Este script realiza preguntas al usuario final, por lo que primero hay que configurarlas. La
primera pregunta es un entero y solicita un número de almacén. La segunda es un mensaje
de error que se muestra si el número de almacén introducido no es válido. La tercera
solicitud se declara aquí pero se configurará después de responder a la pregunta; todas
las solicitudes y las variables utilizadas en el bloque prompt se deben declarar antes de
introducir el bloque prompt.
intprompt store
store.SetPromptText("Introduzca el número de almacén:")
messageprompt errmsg
errmsg.SetPromptText("Número de almacén no válido; vuelva a introducirlo.")
stringprompt dept
string storename, item
2 Algunas preguntas se han preparado y las demás se han declarado. Ahora el bloque prompt
se utiliza para realizar las preguntas. Cuando el usuario selecciona este script, es la parte
del mismo que se ejecuta antes de que se efectúe la digitalización. Debido a que las
respuestas se van a validar y utilizar para formar otras preguntas, se emplean varios pasos.
prompt
Scripts de Document Distributor
19
3 Este paso contiene una pregunta: cuál es el número de almacén. Después de proporcionar
el número de almacén, se busca en la base de datos para comprobar que se trata de un
número de almacén válido. Si lo es, se recupera el nombre de almacén de la base de datos
y nextstep se define en dept. Si no es válido, nextstep se define en error.
step "storenum"
ask(store)
with ODBCRead
.Reset()
.DataSource=local.DataSource
.TableName="stores"
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.DataColumns="StoreName"
.WhereClause="StoreNumber=" + store.AsString()
.Go()
if (.GetNextRow())
then
storename = .GetString("StoreName")
nextstep "dept"
else
nextstep "error"
endif
.Finished()
endwith
4 Este paso se utiliza si se proporciona un número de almacén no válido. Sólo se muestra
un mensaje de error y se indica al usuario que vuelva a introducirlo. El usuario aceptará
el mensaje y, a continuación, nextstep se define en storenum; es decir, se vuelve a hacer
la primera pregunta.
step "error"
ask(errmsg)
nextstep "storenum"
5 Este paso se utiliza cuando se ha indicado un número de almacén válido. El texto de la
solicitud se define aquí para que pueda incluir el nombre del almacén seleccionado. A
continuación, los departamentos válidos de dicho almacén se recuperan de la base de datos.
step "dept"
dept.SetPromptText("Seleccione el departamento de " + storename)
with ODBCRead
.Reset()
.DataSource=local.DataSource
.TableName="departments"
.LogonName=local.LogonName
.LogonPassword=local.LogonPassword
.DataColumns="Department"
.WhereClause="StoreNumber=" + store.AsString()
.Go()
Scripts de Document Distributor
20
6 Cada departamento se agrega a la lista de selección única como opción.
repeat until (.GetNextRow() == FALSE)
item = .GetString("Department")
dept.AddPromptOption(item)
endrepeat
.Finished()
endwith
7 La pregunta ya se ha configurado por completo. El usuario podrá seleccionar el
departamento al que va dirigido el documento digitalizado. Es la pregunta final, por lo que
se utiliza la directiva laststep.
ask(dept)
laststep
endprompt
8 Una vez efectuadas las preguntas, el documento se digitaliza y se envía como los demás
trabajos en los que no se hacen preguntas. El script reanudará la ejecución en este punto
cuando se reinicie el trabajo. Cree la ruta de acceso completa y el nombre de archivo que se
utilizarán para guardar el archivo. El archivo se guardará en el directorio c:\lexmark debajo
de un directorio que utiliza el número de almacén y, a continuación, en un subdirectorio para
dicho departamento. El nombre final se parecerá al siguiente:
c:\lexmark\número_almacén\nombre departamento\digitalización_sellohora.tif.
string filepath = "c:\lexmark\" + store.AsString() + "\" + dept +
"\scan.tif"
9 El archivo se guarda en el disco mediante la acción SaveToFile y la ruta de archivo
especificada en el paso anterior. AppendTimestamp está definido en TRUE, por lo que
se garantiza un nombre de archivo único. CreateDirectory está definido en TRUE, por lo que
se crearán los directorios que no existan.
with SaveToFile
.input=original.document
.Path=filepath
.AppendTimestamp=TRUE
.CreateDirectory=TRUE
.Go()
endwith
Para ejecutar este script:
1 En el equipo del servidor, configure la base de datos que se utilizará. Se proporciona la base
de datos stores.mdb de Microsoft Access para utilizarla en este ejemplo. Este archivo se
encuentra en el directorio de ejemplos de scripts instalado con Workflow Composer.
Configure la conexión ODBC. Para obtener información al respecto, consulte el Apéndice A.
2 Cárguelo en el servidor con Workflow Composer o Server Manager.
3 Configure la información de conexión ODBC mediante los valores locales.
Scripts de Document Distributor
21
4 Para poder utilizar este script en una impresora multifunción, debe tener una pantalla táctil.
Si no está disponible, utilice Select'N'Send o Print'N'Send en su lugar. Si está disponible,
cree un perfil.
5 La base de datos tiene tres números de almacén: 10, 20 y 30. Si se proporciona un número
no válido, se mostrará un mensaje de error.
Este script demuestra la potencia de las solicitudes para validar datos a medida que el usuario
los introduce y utilizar las respuestas suministradas con el fin de proporcionar dinámicamente
selecciones al usuario. Aunque este ejemplo guarda el archivo en el disco, se puede utilizar para
ampliar el ejemplo 2: impresión de un documento. En este caso, la dirección IP de la impresora que
se corresponde al almacén y departamento seleccionados se recuperaría de la base de datos y se
utilizaría para enviar el trabajo de impresión.
Scripts de Document Distributor
22
3
Scripts de Document Producer
Ejemplo 8: combinación de datos e impresión de un formulario
Descripción general: combinación de datos en un formulario e impresión
Detalles: con Document Producer, una empresa va a redirigir su flujo de impresión ASCII desde
una impresora cargada con formularios preimpresos a Document Server. Este script se utiliza para
combinar los datos entrantes con un FormSet creado con Forms Composer e imprimirlo en papel
en blanco.
Script:
1 Utilice los datos entrantes, original.dataset, con la acción MergeForm para crear un PDF
del formulario relleno.
with MergeForm
.input=original.dataset
.Go()
endwith
2 Las opciones de impresión, como dúplex, origen del papel y tamaño de papel, se configuran
cuando el FormSet se crea y pasa mediante la propiedad printoptions. Las opciones
de acabado, como grapadora y perforador, no se pueden configurar en el FormSet. Para
agregar valores adicionales o anular los valores del FormSet, cree un objeto printoptions
y especifique los valores que desee. En este caso, se va a activar el perforador.
printoptions po = MergeForm.printoptions
po.SetJobOption(LDD_PRINTOPTION_HOLEPUNCH, LDD_HOLEPUNCH_ON)
3 Utilice la acción PrintForm para imprimir el formulario PDF. La dirección IP y el tipo de
impresora se configuran mediante los valores locales. Si la impresora que se va a utilizar
dispone de una opción ImageQuick, el formulario PDF se envía directamente a la impresora.
De lo contrario, el formulario PDF se convierte a PostScript y, a continuación, se envía
a la impresora. En el campo PrinterType la variable local (PrinterType) debe estar
configurada como una variable de enumeración. Consulte el tema "Valores locales"
en la aplicación Workflow Composer para obtener más información.
with PrintForm
.input=MergeForm.output
.IPAddress=local.PrinterAddress
.PrinterType=local.PrinterType
.PrintOptions=po
.WaitForCompletion=FALSE
.Go()
endwith
Scripts de Document Producer
23
Material confidencial de Lexmark hasta próximo aviso
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Configure la información de la impresora mediante los valores locales.
3 Cargue el ejemplo de nota de cargo incluido con Forms Composer. Cree una canalización
con nombre denominada "test". Para obtener más información al respecto, consulte el
Apéndice B.
4 Abra una ventana de símbolo del sistema en el equipo donde está instalado Document
Server. Mediante el archivo de datos de ejemplo incluido en Forms Composer, emule un flujo
de impresión escribiendo lo siguiente:
copy /b debittext.txt \\.\pipe\test
La opción /b realiza una copia binaria. El archivo debittext.txt contiene un archivo de datos
de ejemplo con un formato como si se enviaran a una impresora. Con \\.\pipe\test se copia
el archivo en la canalización con nombre creada en el Apéndice B. Si se ejecuta desde otro
ordenador en el que no esté instalado Document Server, reemplace "." (punto) por la
dirección IP del equipo donde está instalado el servidor.
Nota: para obtener información sobre cómo configurar colas de impresora de Windows,
consulte la ayuda en línea de Forms Composer y Server Manager.
Scripts de Document Producer
24
Material confidencial de Lexmark hasta próximo aviso
Ejemplo 9: combinación de datos y envío por fax de un formulario
Descripción general: combinación de datos en un formulario y envío por fax
Detalles: con Document Producer, una empresa va a redirigir su flujo de impresión ASCII desde
una impresora cargada con formularios preimpresos a Document Server. Este script se utiliza para
combinar los datos entrantes con un FormSet creado con Forms Composer y enviar por fax el
documento creado.
Script:
1 Utilice los datos entrantes, original.dataset, con la acción MergeForm para crear un PDF del
formulario relleno.
with MergeForm
.input=original.dataset
.Go()
endwith
2 La salida de la acción MergeForm es un PDF. Se tiene que convertir en una imagen TIFF
de modo que se pueda convertir en PostScript.
with ConvertImageFormat
.input=MergeForm.output
.Format=LDD_IMGFORMAT_TIFG4
.ColorDepth=LDD_IMGDEPTH_BW
.AllPages=TRUE
.Go()
endwith
3 Convierta la imagen TIFF en PostScript para que se pueda enviar por fax.
with ConvertToDocument
.input=ConvertImageFormat.output
.Format=LDD_DOCFORMAT_PS
.AllPages=TRUE
.PaperSize=LDD_PAPERSIZE_LETTER
.Orientation=LDD_ORIENTATION_AUTO
.Go()
endwith
4 Obtenga el número de teléfono del fax a partir del dataset enviado. Cualquier valor de
variable de un FormSet se puede recuperar y utilizar en un script.
string faxnumber = original.dataset.GetDataItem("FAX_NUMBER")
5 Utilice la acción FaxByPrinter para enviar el fax. El fax se envía mediante una impresora
multifunción con funciones de fax. La dirección IP de la impresora multifunción se configura
mediante un valor local.
with FaxByPrinter
.input=ConvertToDocument.output
.IPAddress=local.IpAddress
.StationID="ID de estación de fax"
.FaxNumber=faxnumber
Scripts de Document Producer
25
Material confidencial de Lexmark hasta próximo aviso
.WaitForCompletion=FALSE
.RedialMinutes=5
.RedialTimes=3
.Go()
endwith
Para ejecutar este script:
1 Cárguelo en el servidor con Workflow Composer o Server Manager.
2 Configure la información de la impresora mediante los valores locales.
3 Cargue el ejemplo de portada de fax incluido con Forms Composer. Cree una canalización
con nombre denominada "test". Para obtener más información al respecto, consulte el
Apéndice B.
4 Abra una ventana de símbolo del sistema en el equipo donde está instalado Document
Server. Mediante el archivo de datos de ejemplo incluido en Forms Composer, emule un flujo
de impresión escribiendo lo siguiente:
copy /b faxcover.txt \\.\pipe\test
La opción /b realiza una copia binaria. El archivo faxcover.txt contiene un archivo de datos
de ejemplo con un formato como si se enviaran a una impresora. Con \\.\pipe\test se copia
el archivo en la canalización con nombre creada en el Apéndice B. Si se ejecuta desde otro
ordenador en el que no esté instalado Document Server, reemplace "." (punto) por la
dirección IP del equipo donde está instalado el servidor.
Nota: aunque el script sólo recupera el número de fax, se puede obtener una dirección
de e-mail, un número de cliente o cualquier otra variable de un FormSet. Estos
valores se pueden utilizar en el script. Este script envía por fax mediante una
impresora multifunción; se puede escribir el script de modo que envíe por fax a
través de un servidor de fax que admita e-mail SMTP. El formulario también se
podría archivar para utilizarlo posteriormente mediante cualquier acción admitida
por el servidor.
Scripts de Document Producer
26
4
Scripts de Document Portal
Ejemplo 10: impresión de un formulario en blanco
Descripción general: impresión de un formulario en blanco
Detalles: se trata de un script básico que utiliza Document Portal para imprimir formularios en
blanco mediante una impresora PostScript.
Script:
1 Cree un dataset que se pasará a la acción MergeForm. Este dataset sólo contendrá
el nombre del FormSet que se utilizará; no se pasará ningún dato ya que se desea un
formulario en blanco. El FormSet que se utilizará se pasa mediante la propiedad
formsetname del objeto original.
dataset merge_input
merge_input.SetFormset(original.formsetname)
2 Utilice la acción MergeForm para generar el formulario PDF en blanco.
with MergeForm
.input=merge_input
.Go()
endwith
3 Utilice la acción PrintForm para imprimir el PDF generado por la acción MergeForm. La
dirección IP de la impresora y las opciones de impresión que se utilizarán se pasan mediante
las propiedades printerip y printeroptions del objeto original. Estos valores se configuran en
Document Portal Admin. En este caso, el tipo de impresora se define en PostScript; si la
impresora que se va a utilizar tiene la opción ImageQuick, cambie el tipo de impresora a
LDD_PRINTERTYPE_LEXIQ.
with PrintForm
.input=MergeForm.output
.IPAddress=original.printerip
.PrinterType=LDD_PRINTERTYPE_LEXPS
.PrintOptions=original.printoptions
.WaitForCompletion=FALSE
.Go()
endwith
Scripts de Document Portal
27
Para ejecutar este script:
1 Cargue el script en el servidor con Document Portal Admin. NO utilice Workflow Composer
ni Server Manager para cargarlo.
2 Si no se ha cargado ningún PDF o FormSet en el servidor, cargue uno. Asocie el script
a un FormSet cargado.
3 Utilizando una impresora multifunción con pantalla táctil, seleccione el icono Formularios
y, a continuación, seleccione el formulario asociado a este script.
Scripts de Document Portal
28
Ejemplo 11: solicitud al usuario e impresión de un formulario en blanco
Descripción general: solicitud al usuario e impresión del formulario seleccionado
Detalles: este script resulta útil para impresoras en color. Pregunta al usuario si el formulario se
debe imprimir en color o en blanco y negro. De este modo se puede utilizar un solo script para
ambos tipos de salida.
Script:
1 Este script realiza una pregunta al usuario final, por lo que hay que configurarla aquí. La
pregunta es una lista de selección única que permite al usuario seleccionar la salida en
blanco y negro o en color. Al igual que todos los scripts que hacen preguntas, todas las
solicitudes y variables utilizadas en el bloque prompt se deben declarar antes de introducir
el bloque prompt.
stringprompt color
with color
.SetPromptText("Seleccione la salida de color deseada:")
.AddPromptOption("Blanco y negro")
.AddPromptOption("Color")
endwith
2 La pregunta ya se ha preparado. Ahora el bloque prompt se utiliza para realizar la pregunta.
Cuando el usuario selecciona este script, es la parte del mismo que se ejecuta antes de que
se envíe el trabajo al servidor. Debido a que sólo hay una pregunta, únicamente se necesita
un paso.
prompt
step "prompts"
ask(color)
laststep
endprompt
3 Una vez efectuada la pregunta, el trabajo se envía como los demás trabajos en los que
no se hacen preguntas. El script reanudará la ejecución en este punto cuando se reinicie
el trabajo.
4 Cree un dataset que se pasará a la acción MergeForm. Este dataset sólo contendrá
el nombre del FormSet que se utilizará; no se pasará ningún dato ya que se desea
un formulario en blanco. El FormSet que se utilizará se pasa mediante la propiedad
formsetname del objeto original.
dataset merge_input
merge_input.SetFormset(original.formsetname)
5 Utilice la acción MergeForm para generar el formulario PDF en blanco.
with MergeForm
.input=merge_input
.Go()
endwith
Scripts de Document Portal
29
6 El script modificará las opciones de impresión enviadas junto con el trabajo. Según la
selección del usuario, la impresora se configurará para imprimir con los cartuchos de color
o sólo con el cartucho negro.
printoptions opts = original.printoptions
if (color == "Color")
opts.SetJobOption(LDD_PRINTOPTION_COLORMODEL, LDD_COLORMODEL_CMYK)
else
opts.SetJobOption(LDD_PRINTOPTION_COLORMODEL, LDD_COLORMODEL_BLACK)
endif
7 Utilice la acción PrintForm para imprimir el PDF generado por la acción MergeForm.
La dirección IP de la impresora se pasa mediante la propiedad printerip del objeto original.
Las opciones de impresión son la versión modificada creada en el paso anterior. Los valores
de impresión originales se configuran en Document Portal Admin. En este caso, el tipo de
impresora se define en PostScript; si la impresora que se va a utilizar tiene la opción
ImageQuick, cambie el tipo de impresora a LDD_PRINTERTYPE_LEXIQ.
with PrintForm
.input=MergeForm.output
.IPAddress=original.printerip
.PrinterType=LDD_PRINTERTYPE_LEXPS
.PrintOptions=opts
.WaitForCompletion=FALSE
.Go()
endwith
Para ejecutar este script:
1 Cargue el script en el servidor con Document Portal Admin. NO utilice Workflow Composer ni
Server Manager para cargarlo.
2 Si no se ha cargado ningún PDF o FormSet en el servidor, cargue uno. Asocie el script
a un FormSet cargado.
3 Utilizando una impresora multifunción con pantalla táctil conectada a una impresora en
color, seleccione el icono Formularios y, a continuación, seleccione el formulario asociado
a este script.
Scripts de Document Portal
30
Apéndice A: configuración de ODBC
Siga estos pasos para crear las conexiones DSN de ODBC utilizadas en los ejemplos 4 y 7.
Los DSN se crean en el mismo equipo en el que está instalado Document Server.
1 En Windows NT: Vaya a Configuración
Panel de control.
En Windows 2000/XP: Vaya a Configuración
Panel de control
administrativas.
Herramientas
2 Seleccione Orígenes de datos (ODBC).
3 Seleccione la ficha DSN de sistema. Haga clic en Agregar. Aparece la lista de los
controladores ODBC que se han instalado en este equipo. Seleccione "Microsoft Access
Driver (*.mdb)" en la lista y haga clic en Finalizar.
4 Aparece el cuadro de diálogo Configuración de ODBC Microsoft Access. Para el ejemplo 4,
introduzca el nombre del origen de datos "LDD1"; para el ejemplo 7, introduzca "LDD2".
Haga clic en el botón Seleccionar para buscar la base de datos que utilizará esta conexión.
Para el ejemplo 4, seleccione la base de datos "resumes.mdb". Para el ejemplo 7, seleccione
"stores.mdb". Haga clic en Aceptar.
5 Después de agregar ambas bases de datos, aparecerán en la lista DSN de sistema.
6 Haga clic en Aceptar para cerrar el cuadro de diálogo. Ahora las conexiones están
configuradas y se pueden utilizar desde un script.
Cuando se carguen los scripts, habrá disponibles valores locales para los ejemplos 4 y 7
que permiten configurar los valores ODBC. En general, se necesitan dos datos para todas
las conexiones ODBC, mientras que los otros dos son opcionales.
–
–
–
–
Se debe proporcionar el DSN. El nombre del origen de datos es el que se proporciona
en el paso 4 anterior.
Se debe proporcionar el nombre de tabla. Se trata del nombre de la tabla que contiene
los datos utilizados en el script. Si se utilizan las bases de datos incluidas en los
ejemplos, se pueden usar los nombres de tabla predeterminados proporcionados en los
valores locales.
El nombre de usuario es opcional. Si no se requiere conexión, se puede quedar
en blanco. (De forma predeterminada, no se requiere conexión para Access.)
La contraseña es opcional. Si no se requiere conexión, se puede quedar en blanco.
31
Apéndice B: configuración de FormSet
En este apéndice se describen los pasos necesarios para cargar un FormSet y configurar la
canalización con nombre con el fin de trabajar con él. Esta información se utiliza para ejecutar los
ejemplos 8 y 9.
En Server Manager:
1 Si no lo ha hecho aún, cargue el script que se usará para este FormSet. Para estos
ejemplos, cargue los scripts "example08.xdd" o "example09.xdd".
2 Haga clic en Agregar FormSet en la página de inicio. De este modo se inicia el Asistente
para agregar Formsets. El primer paso del asistente consiste en seleccionar el FormSet que
se cargará. Para el ejemplo 8, seleccione "debitmemo.fdd"; para el ejemplo 9, seleccione
"faxcover.fdd". Ambos están incluidos en el directorio de ejemplos instalados con Forms
Composer. Haga clic en Siguiente. La siguiente página del asistente le permite seleccionar
la acción que se ejecutará cuando se reciban datos para este FormSet. Hay tres opciones:
–
–
–
la canalización especificará la acción o se especificará en el flujo de datos
se debe utilizar una de las acciones predefinidas o
se debe utilizar un script personalizado.
Para nuestros ejemplos, utilizaremos un script personalizado. Seleccione el script adecuado
(example08 o example09) en la lista.
3 Haga clic en Siguiente. La última página del asistente proporciona un resumen. Si no ha
creado anteriormente la canalización con nombre para utilizarla en los ejemplos, desactive
la casilla que inicia el Asistente para crear canalizaciones con nombre.
4 Haga clic en Terminar. Si tiene que crear la canalización con nombre, se iniciará el Asistente
para crear canalizaciones con nombre; de lo contrario, terminará y podrá continuar con la
ejecución del script.
5 Para el Asistente para crear canalizaciones con nombre, el primer paso es dar nombre
a la canalización. En nuestros ejemplos, sólo crearemos una canalización. Se puede utilizar
en los ejemplos 8 y 9. Denomine "test" a la canalización e introduzca una descripción si lo
desea. Haga clic en Siguiente.
6 La siguiente página del asistente configura la canalización con el fin de aceptar datos para
un FormSet específico o varios FormSets. Debido a que la canalización se va a crear para
los ejemplos 8 y 9, seleccione "Varios Formsets utilizarán esta canalización". Haga clic en
Siguiente.
32
7 La siguiente página del asistente configura la acción que se realizará cuando se reciban
datos en la canalización. Es similar a la página del Asistente para agregar FormSets que
permite configurar lo que sucede cuando se reciben datos para el Formset. Debido a que
ya se ha configurado lo que sucede con el Formset (ejecuta un script personalizado),
seleccione "La acción se especificará en el flujo de impresión". Haga clic en Siguiente.
8 La siguiente página del asistente permite configurar el tipo de datos que recibe la
canalización. En nuestro caso, enviaremos archivos de texto; por lo tanto, el tipo de datos
es siempre el mismo. Seleccione "Los datos siempre son de este tipo" y elija "un flujo de
texto normal" en la lista. Haga clic en Siguiente.
9 La última página del asistente presenta un resumen de las opciones seleccionadas.
Haga clic en Terminar. Ahora ya puede ejecutar el script.
Para obtener más información sobre las distintas opciones al cargar Formsets y al crear
canalizaciones con nombre, consulte la ayuda en línea disponible en Server Manager.
33
Lexmark y Lexmark con diamante son marcas comerciales de Lexmark International, Inc.,
registradas en los Estados Unidos y/o en otros países.
© 2003 Lexmark International, Inc.
740 West New Circle Road
Lexington, Kentucky 40550
www.lexmark.com
Descargar