Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer RedditCambios recientesSend via e-MailImprimirEnlace permanente × Tabla de Contenidos Generación de PDFs Create Open Close SetFont SetFontSize SetFontStyle SetFontColor AddText AddTextLine AddImage AddHyperlink AddTextSetX AddCheckboxSetX AddImageSetX AddTextFieldSetX NewLine NewPage Opciones de dibujo directo GetVerticalPosition AddTextSetXY AddSquare AddRectangle AddImageSetXY AddCheckboxSetXY AddBarcode AddBarcode (QRCode) AddTextFieldSetXY Tablas CreateTable SetTableCellWidths SetAlignment SetTableWidth SetCellBorder AddCellText AddCellHyperlink AddCellImage AddTable AddTableSetXY Cabecera y pie de página BeginHeader EndHeader BeginFooter EndFooter Ejemplo de uso de cabecera y pie de página Otros LaunchPDF GetCurrentPage AddAttachment Delete SetPDFVersion SetCompression Opciones de metadatos Protección del PDF y permisos Permissions SetEncryption EncryptPDF DecryptPDF EncryptWithCertificate SignPDFWithKey Ayudas visuales para posicionamiento Ejemplo de uso Generación de PDFs En Android e iOS, es posible generar ficheros PDF mediante script. A continuación se describen brevemente las funciones. Set pdf01 = CreateObject("XOnePDF") Con esto inicializamos un objeto xonepdf al que podemos modificarle las propiedades con los siguientes métodos. Create pdf01.Create "/mnt/sdcard/test.pdf" pdf01.Create "/mnt/sdcard/test.pdf", 700, 300 Aquí creamos el archivo. Es esencial llamar a este método antes que nada. Es posible encriptar el documento con encriptación estándar de 128 bits. Primer parámetro Ruta del fichero. Si le pasamos una ruta completa, lo escribirá ahí. Esto es útil para previsualizar el PDF a la hora de desarrollar la aplicación. Si sólo se especifica el nombre, el fichero irá a la carpeta files. Segundo parámetro Opcional junto al tercero. Indica el ancho del documento. Los valores posibles van entre 0 y 14400. Tercer parámetro Opcional junto al segundo. Indica el alto del documento. Los valores posibles van entre 0 y 14400. Open pdf01.Open Abre el documento para escribir sobre él. Es necesario llamarlo antes de empezar a dibujar sobre él y después de ajustar la encriptación y los permisos. Close pdf01.Close Set pdf01 = nothing Aquí se aplican todos los cambios al PDF, se guarda, se cierra y destruimos el objeto. Es esencial y hay que llamarlo al final. SetFont pdf01.SetFont "helvetica" Cambia la fuente. Valores posibles helvetica, courier, times. En vez de usar cualquiera de estas tres fuentes incrustadas, se puede especificar como parámetro la ruta de un archivo de tipo de letra, de extensión .ttf o .otf. Si sólo se especifica el nombre del fichero, lo buscará en la carpeta del proyecto. Si no existe, hay que crearla. SetFontSize pdf01.SetFontSize 10 Ajustar el tamaño de la fuente. SetFontStyle pdf01.SetFontStyle "bold" Opciones de letra. Valores posibles italic (cursiva) bold(negrita) underline (subrayado) strike (tachado) bolditalic (negrita cursiva) boldunderline (negrita subrayado) bolditalicunderline (negrita subrayado cursiva) italicunderline (cursiva subrayado) y normal SetFontColor pdf01.SetFontColor "#0000AA" Color de la fuente en notación HTML. AddText pdf01.AddText "Consejería de Sanidad y Asuntos Sociales" Añade un texto sin salto de línea. AddTextLine pdf01.AddTextLine "Consejería de Sanidad y Asuntos Sociales" Añade un texto con salto de línea al documento. AddImage pdf01.AddImage "logoxone.png", 50, 50 Añade una imagen al documento de la carpeta files, se puede especificar una ruta completa para pruebas. Primer parámetro Ruta. Segundo parámetro Opcional. Redimensiona el ancho de la imagen. Tercer parámetro Opcional. Redimensiona el alto de la imagen. AddHyperlink pdf01.AddHyperlink "Google", "http://www.google.com" Añade un enlace al documento. AddTextSetX pdf01.AddTextSetX "Consejería de Sanidad y Asuntos Sociales", 125 Añade texto en la posición absoluta según el eje X y la posición actual en el eje Y. Primer parámetro Texto a añadir. Segundo parámetro Posición en el eje X. AddCheckboxSetX pdf01.AddCheckboxSetX "Se realiza toma de muestra", 230, 145, 20, "check", "true", "true" Añade un control de tipo checkbox al documento. Primer parámetro Texto que le acompaña. Segundo parámetro Posición en el eje X. Tercer parámetro Tipo de checkbox. Valores posibles:“star”, “square”, “circle”, “cross”, “diamond”, “check”. Cuarto parámetro Opcional.Valor del checkbox. Valores posibles: “true”, “false”. Quinto parámetro Opcional. Checkbox de sólo lectura. Valores posibles: “true”, “false”. Algunos lectores de PDF podrían no respetarlo, para bloquear completamente combinar con setencryption AddImageSetX pdf01.AddImageSetX "logoxone.png", 125, 50, 50 Añade una imagen al documento de la carpeta files, en la posición especificada en el eje X. Primer parámetro Ruta. Segundo parámetro Posición en el eje X. Tercer parámetro Opcional. Redimensiona el ancho de la imagen. Cuarto parámetro Opcional. Redimensiona el alto de la imagen. AddTextFieldSetX pdf01.AddTextFieldSetX "campo02", 250, 50, 100 Añade un campo de texto editable. El documento no debe estar bloqueado. Primer parámetro Nombre interno para poder referenciar al campo más tarde. Segundo parámetro Ancho del campo de texto. Tercer parámetro Alto del campo de texto. Cuarto parámetro Posición en el eje X. NewLine pdf01.NewLine Añade una nueva línea. Se le puede pasar un entero como parámetro y hará esos saltos. NewPage pdf01.NewPage Salta a la página siguiente del PDF. Opciones de dibujo directo GetVerticalPosition nYPos = pdf01.GetVerticalPosition Obtiene la posición actual del cursor en el eje Y. Este método se introdujo oficialmente en la versión 1.3.1.0 del módulo xonepdf. AddTextSetXY pdf01.AddTextSetXY "Consejería de Sanidad y Asuntos Sociales", 125, 750 Añade texto en la posición absoluta según el eje X e Y. Primer parámetro Texto a añadir. Segundo parámetro Posición en el eje X. Tercer parámetro Posición en el eje Y. AddSquare pdf01.AddSquare 100, 700, 20, 1 Dibuja un cuadrado en el documento. Primer parámetro Posición en el eje X del ángulo inferior izquierdo. Segundo parámetro Posición en el eje y del ángulo inferior izquierdo. Tercer parámetro Tamaño del cuadrado. Cuarto parámetro Grosor de la línea del cuadrado. Quinto parámetro Opcional. Color de fondo del cuadrado. Sexto parámetro Opcional. Color de la línea del cuadrado. AddRectangle pdf01.AddRectangle 100, 700, 150, 100, 1 Dibuja un rectángulo en el documento. Primer parámetro Posición en el eje X del ángulo inferior izquierdo. Segundo parámetro Posición en el eje Y del ángulo inferior izquierdo. Tercer parámetro Ancho del rectángulo. Cuarto parámetro Alto del rectángulo. Quinto parámetro Grosor de la línea del rectángulo. Sexto parámetro Opcional. Color de fondo del rectángulo. Séptimo parámetro Opcional. Color de la línea del rectángulo. AddImageSetXY pdf01.AddImageSetXY "logoxone.png", 0, 750, 50, 50 Añade una imagen al documento de la carpeta files, en la posición especificada. Primer parámetro Ruta. Segundo parámetro Posición en el eje X . Tercer parámetro Posición en el eje Y. Cuarto parámetro Opcional. Redimensiona el ancho de la imagen. Quinto parámetro Opcional. Redimensiona el alto de la imagen. AddCheckboxSetXY pdf01.AddCheckboxSetXY "Se realiza toma de muestra", 230, 145, 20, "check", "true", "true" Añade un control de tipo checkbox al documento. Primer parámetro Texto que le acompaña. Segundo parámetro Posición en el eje X. Tercer parámetro Posición en el eje Y. Cuarto parámetro Tipo de checkbox. Valores posibles: “star”, “square”, “circle”, “cross”, “diamond”, “check”. Quinto parámetro Opcional. Valor del checkbox. Valores posibles: “true”, “false”. Sexto parámetro Opcional. Checkbox de solo lectura. Valores posibles: “true”, “false”. Algunos lectores de PDF podrían no respetarlo, para bloquear completamente combinar con setencryption. AddBarcode pdf01.AddBarcode "(00)350123451234567894", "ean128", 100, 100, 100, 200 Añade un código de barras al documento. Los 4 primeros parámetros son obligatorios, los dos últimos son opcionales. Primer parámetro Dato para generar el código. Debe pasarse con el formato adecuado para cada código de barras. Segundo parámetro Tipo de código de barras. Códigos de barras soportados: codabar, code11, code128, code25, code39, code93, datamatrix, ean128, ean13, ean8, isbn, issn, itf14, identcode, interleaved2of5, leitcode, msi, onecode, pdf417, planet, postnet, rm4scc, upca, upce. Tercer parámetro Ancho del código de barras. Cuarto parámetro Alto del código de barras. Quinto parámetro Opcional. Posición en el eje X. Sexto parámetro Opcional. Posición en el eje Y. AddBarcode (QRCode) pdf01.AddBarcode "BIZCARD:N:Pepito;X:Grillo;T:Programador informático;C:CGSoft;A:Dirección;B:+34600404040;F:+34924202020;M:+34902202020;E:pepe@xone.es;;", "qrcode", 300, 300 Añade un código QR al documento. Debe seguir el formato pasado en el ejemplo, por lo demás, igual que el anterior método. AddTextFieldSetXY pdf01.AddTextFieldSetXY "campo01", 250, 50, 100, 700 Añade un campo de texto editable en el eje XY. El documento no debe estar bloqueado. Primer parámetro Nombre interno para poder referenciar al campo más tarde. Segundo parámetro Ancho del campo de texto. Tercer parámetro Alto del campo de texto. Cuarto parámetro Posición en el eje X. Quinto parámetro Posición en el eje Y. Tablas CreateTable pdf01.CreateTable 5 Inicializa una tabla simple. Primer parámetro Número de columnas de una fila. SetTableCellWidths pdf01.SetTableCellWidths 50, 100, 150 Ajusta el ancho de las columnas. Debe invocarse con tantos parámetros como columnas se hayan definido en la tabla. Este método se introdujo en la versión 1.3.1.0 del módulo xonepdf. SetAlignment pdf01.SetAlignment "center" pdf01.SetAlignment "left" pdf01.SetAlignment "right" pdf01.SetAlignment "none" Especifica la orientación del texto en las celdas subsiguientes. Ajustar a “none” para volver a la orientación normal. SetTableWidth pdf01.SetTableWidth 300 Con esto ajustamos el ancho total de la tabla. El alto vendrá determinado por el número de filas añadidas. SetCellBorder pdf01.SetCellBorder "top" Al invocar este método, las celdas siguientes que se añadan a la tabla abierta tendrán el borde especificado. Estas llamadas se pueden sumar para tener esquinas, por ejemplo. Por defecto las celdas tienen todos los bordes. Valores posibles: setcellborder “none”. Quita todos los bordes. setcellborder“top” Añade el borde superior. setcellborder “bottom” Añade el borde inferior. setcellborder “right” Añade el borde derecha. setcellborder “left” Añade el borde izquierda. setcellborder “all“ Añade todos los bordes. AddCellText pdf01.AddCellText "Transportistas S.A.","#000000" Añade una celda con texto a la tabla. Se irán añadiendo según el orden de aparición en el script. Primer parámetro Texto a introducir. Segundo parámetro Opcional. Color de fondo de la celda. AddCellHyperlink pdf01.AddCellHyperlink "Google", "http://www.google.com" Añade un enlace a la celda de la tabla. Primer parámetro Texto de enlace. Segundo parámetro URL del enlace. AddCellImage pdf01.AddCellImage "/mnt/sdcard/xone/logoxone.gif" Añade una imagen a la tabla. Se irán añadiendo según el orden de aparición en el script. Primer parámetro Ruta de la imagen. Si sólo se especifica el nombre, buscará en la carpeta files de la aplicación. Segundo parámetro Opcional. Para reescalado. Ancho de la imagen en píxeles. Tercer parámetro Opcional. Para reescalado. Alto de la imagen en píxeles. AddTable pdf01.AddTable Finaliza la tabla y la añade al documento. Es imprescindible llamar a esta función o a su función hermana addtablesetxy. AddTableSetXY pdf01.AddTableSetXY 50, 600 Finaliza la tabla y la añade al documento en la posición especificada en el eje X e Y que se le pase por parámetro. Es imprescindible llamar a esta función o a su función hermana addtable. Antes de dibujar directamente una tabla en el documento, hace falta especificar su ancho con settablewidth. Cabecera y pie de página BeginHeader pdf01.BeginHeader Las siguientes llamadas de dibujo del pdf constituirán la cabecera del documento, hasta que se llame a endheader. EndHeader pdf01.EndHeader Finaliza el bloque de la cabecera. BeginFooter pdf01.BeginFooter Las siguientes llamadas de dibujo del pdf constituirán el pie de página del documento, hasta que se llame a endfooter. EndFooter pdf01.EndFooter Finaliza el bloque del pie de página. Ejemplo de uso de cabecera y pie de página Es necesario definir la cabecera antes de que la llamada a pdf01.Open, pues en ese momento se abre el documento. pdf01.BeginHeader pdf01.AddImageSetXY "logoempresa.png", 0, 750, 100, 50 pdf01.SetFont "helvetica" pdf01.SetFontSize 10 pdf01.SetFontStyle "bold" pdf01.SetFontColor "#0000AA" pdf01.AddTextLine chr(10) + chr(10) + chr(10) + " Sociedad Limitada" pdf01.EndHeader pdf01.BeginFooter pdf01.CreateTable 1 pdf01.SetTableWidth 300 pdf01.SetCellBorder "all" pdf01.SetAlignment "center" pdf01.AddCellText "Pie de página, línea 1" pdf01.AddCellText "Pie de página, línea 2" pdf01.AddTableSetXY 0, 600 pdf01.EndFooter pdf01.Open Otros LaunchPDF pdf01.LaunchPDF "/mnt/sdcard/xone/testpdf01.pdf" Este método manda a Android la orden de abrir el PDF especificado en el lector de PDFs que haya instalado en el sistema. Vale cualquier archivo PDF. Es suficiente con instalar el “Adobe Reader” desde la Play Store. Se puede, por ejemplo, generar el PDF, pedirle al usuario que lo rellene mediante este método y mandarlo a imprimir. No se pueden lanzar PDFs generados con XOne que no hayan sido finalizados con el método Close. Si no se especifica la ruta completa se buscará en la carpeta files. Este método tira una excepción si no encuentra el documento, abortando el script. GetCurrentPage nPagina = pdf01.GetCurrentPage Este método devuelve la página en la cual se encuentra el cursor en el momento de llamarlo. Puede servir para el pie de página. Este método se introdujo en la versión 1.3.1.0 del módulo xonepdf. AddAttachment pdf01.AddAttachment "/mnt/sdcard/xone/archivoadjunto.txt" Adjunta (incrusta) un fichero al pdf. Pueden ser de todo tipo, incluso una URL. Delete pdf01.Delete "/mnt/sdcard/xone/testpdf01.pdf" Borra el fichero. SetPDFVersion pdf01.SetPDFVersion "1.7" Ajusta la versión del formato de PDF que se quiere generar. Por defecto se ajusta a “1.7”. Valores inferiores a éste podrían no soportar el resto de métodos. Valores posibles “1.2” “1.3” “1.4” “1.5” “1.6” “1.7” Debe invocarse antes que Open(). SetCompression pdf01.SetCompression "false" Define si se quiere comprimir el documento. Por defecto es igual a true. Opciones de metadatos Estos métodos modifican las propiedades del documento, tales como el autor y la fecha de creación. pdf01.AddTitle "Título del documento" pdf01.AddAuthor "John Doe" pdf01.AddCreationDate "10/10/2010" pdf01.AddCreator "John Doe" pdf01.AddKeywords "palabra clave" pdf01.AddSubject "Asunto" Protección del PDF y permisos Permissions pdf01.Permissions "degradedprint" pdf01.Permissions "modifyannotations" pdf01.Permissions "screenreaders" pdf01.Permissions "assembly" pdf01.Permissions "print" pdf01.Permissions "copy" pdf01.Permissions "modifycontents" pdf01.Permissions "fillin" Ajusta los permisos que contendrá el documento. Se debe invocar en este orden si se quiere que los permisos tengan efecto: Create() → Permissions() → setencryption(). Se pueden añadir varias llamadas para sumar permisos. Con “clear”, se reinicia la actual selección de permisos, pero este método no tiene efecto si es llamado después de setencryption(). SetEncryption pdf01.SetEncryption "passwordusuario", "passwordpropietario", "128bits" Define la encriptación del documento. Es necesario llamarlo si se quiere que los permisos hagan efecto. Se pueden dejar las contraseñas a null. Debe llamarse después de Create(), después de Permissions() y antes de Open(). Primer parámetro Contraseña de lectura. Segundo parámetro Contraseña de propietario. El propietario tendrá todos los permisos sobre el documento. Tercer parámetro Tamaño del bloque de encriptación. Valores posibles: “40bits”, “128bits” EncryptPDF pdf01.EncryptPDF "/mnt/sdcard/desencriptado.pdf", "encriptado.pdf", "passwordusuario", "passwordpropietario", "128bits" Encripta un PDF. Primer parámetro Ruta origen. Segundo parámetro Ruta destino. Tercer parámetro Password del usuario. Cuarto parámetro Password del propietario. Quinto parámetro Bits de bloque de la encriptación. Valores posibles:“40bits”, “128bits” . DecryptPDF pdf01.DecryptPDF "encriptado.pdf", "/mnt/sdcard/desencriptado.pdf", "passwordpropietario" Desencripta un fichero. Primer parámetro Ruta origen. Segundo parámetro Ruta destino. Tercer parámetro Password del propietario. EncryptWithCertificate pdf01.EncryptWithCertificate "testpdf.pdf", "testpdfencriptado.pdf", "certificado.cer" Encripta un documento usando un certificado. SignPDFWithKey pdf01.SignPDFWithKey "testpdf.pdf", "testpdffirmado.pdf", "keystore.pfx", "1234", "Nombre de la clave", "Contraseña de la clave" Firma digitalmente un documento. Ayudas visuales para posicionamiento Cuando estemos creando nuestro PDF, podemos hacer uso de la siguiente función para ayudarnos a posicionar los distintos elementos en el eje de coordenadas que es nuestro archivo, de forma que sea mucho más sencilla su maquetación. function showGridDebug(pdf) 'Tabla para saber las posiciones X e Y de un PDF 'Para el EJE X pdf.SetAlignment "center" pdf.SetFontSize 9 pdf.SetFontStyle "bold" pdf.SetFontColor "#0000CC" for i=2 to 26 i=cint(i*20) 'Esta es la primera fila del Eje X, Arriba, Y=840 pdf.CreateTable 1 pdf.SetTableWidth 20 pdf.AddCellText i pdf.AddTableSetXY i,840 'pdf.AddRectangle PosX, PosY, Ancho, Alto, Grosor, ColorFondo, ColorLinea pdf.AddRectangle i, 20, 0, 820, 0, "#FF0000", "#FF0000" 'Esta es la segunda fila del Eje X, Abajo, Y=20 pdf.CreateTable 1 pdf.SetTableWidth 20 pdf.AddCellText i pdf.AddTableSetXY i,20 next 'Para el EJE Y pdf.SetFontColor "#009900" for i=0 to 42 i=cint(i*20) 'Esta es la primera columna del Eje Y, en la izquierda X=10 pdf.CreateTable 1 'pdf.AddCellText "10,"+i pdf.SetTableWidth 30 pdf.AddCellText i pdf.AddTableSetXY 10,i 'pdf.AddRectangle PosX, PosY, Ancho, Alto, Grosor, ColorFondo, ColorLinea pdf.AddRectangle 10, i, 540, 0, 0, "#FF0000", "#FF0000" 'Esta es la segunda columna del Eje Y, en la derecha X=540 pdf.CreateTable 1 pdf.SetTableWidth 30 'pdf.AddCellText "540,"+i pdf.AddCellText i pdf.AddTableSetXY 540,i next pdf.SetFontStyle "normal" pdf.SetFontColor "#000000" end function Ejemplo de uso Descarga de el ejemplo completo con xonepdf v1.1.7 y PDF resultante: http://www.xoneisp.com/jc/TestPDFs.rar Set pdf01 = CreateObject("XOnePDF") 'pdf01.AddPermission "degradedprint" 'pdf01.AddPermission "modifyannotations" 'pdf01.AddPermission "screenreaders" 'pdf01.AddPermission "assembly" pdf01.Permissions "print" 'pdf01.AddPermission "copy" 'pdf01.AddPermission "modifycontents" 'pdf01.AddPermission "fillin" pdf01.Create "/mnt/sdcard/xone/testpdf01.pdf" pdf01.SetEncryption "", "1234", "128bits" pdf01.Open pdf01.AddImageSetXY "logo.png", 0, 750, 75, 50 pdf01.SetFont "helvetica" 'pdf01.SetFont "ssf4.ttf" 'pdf01.SetFont "courier" 'pdf01.SetFont "times" pdf01.CreateTable 3 pdf01.AddCellImage "logo.png", 25, 25 pdf01.AddCellText "test" pdf01.AddCellText "1234" pdf01.AddTable pdf01.SetFontSize 10 pdf01.SetFontStyle "normal" pdf01.SetFontColor "#0000AA" pdf01.AddTextSetXY "Consejería de Sanidad", 125, 750 pdf01.AddText chr(10) + chr(10) + chr(10) + chr(10) pdf01.SetFontColor "#000000" pdf01.SetFontStyle "normal" pdf01.NewLine pdf01.AddText "CLAVE/CÓDIGO: " pdf01.SetFontStyle "bold" pdf01.AddText "Establecimiento" pdf01.SetFontStyle "normal" pdf01.NewLine pdf01.AddText "ACTIVIDAD: " pdf01.SetFontStyle "bold" pdf01.AddText "003 (RESTAURANTES DE 101 A 200 COMENSALES)" pdf01.SetFontStyle "normal" pdf01.NewLine pdf01.AddText "NOMBRE O RAZÓN SOCIAL: " pdf01.SetFontStyle "bold" pdf01.AddText "EL COMILÓN S.L." pdf01.SetFontStyle "normal" pdf01.NewLine pdf01.AddText "DOMICILIO: " pdf01.SetFontStyle "bold" pdf01.AddText "CALLE 123, Nº 23." pdf01.SetFontStyle "normal" pdf01.AddTextSetXY "Nº RGSEAA/INEA ", 400, 685 pdf01.SetFontStyle "bold" pdf01.AddTextSetXY "222.111/33", 485, 685 pdf01.SetFontStyle "normal" pdf01.NewLine pdf01.AddText "LOCALIDAD: " pdf01.SetFontStyle "bold" pdf01.AddText "BADAJOZ" pdf01.SetFontStyle "normal" pdf01.AddTextSetXY "PROVINCIA:", 400, 670 pdf01.SetFontStyle "bold" pdf01.AddTextSetXY "BADAJOZ", 485, 670 pdf01.NewLine 2 pdf01.AddTextLine "* En inspección oficial realizada en el establecimiento en el día de la fecha, se efectúan los controles oficiales que se detallan y se ponen de manifiesto las siguientes incidencias:" pdf01.NewLine 2 pdf01.SetFontSize 9 pdf01.SetFontStyle "underline" pdf01.AddTextLine "CONTROL DE INSTALACIONES Y MANTENIMIENTO DE INSTALACIONES" pdf01.SetFontStyle "normal" pdf01.AddTextLine "En la inspección realizada en el establecimiento con fecha 8 de febrero de 2012 se constató que la campana extractora de la cocina no disponía de salida exterior de humos. Se comprueba que se ha dotado la campana extractora de salida de humos protegida en adecuadas condiciones..." pdf01.NewLine pdf01.SetFontStyle "underline" pdf01.AddTextLine("CONTROL DE HIGIENE DE INSTALACIONES Y PROGRAMA DE LIMPIEZA:") pdf01.SetFontStyle "normal" pdf01.AddTextLine "Se revisan las condiciones higiénicas de las instalaciones. En la cocina se observan restos de suciedad acumulada en lugares de difícil acceso a la limpieza: esquinas, rincones, alrededores de las patas del mobiliario de la cocina e interruptores. En el establecimiento disponen de un Plan de Limpieza y Desinfección en el que se detallan las tareas a realizar, las frecuencias y los responsables de ejecutarlas. Se revisan los registros de verificación y se observa que se cumplimentan tal como está establecido en el Plan de Limpieza y Desinfección." pdf01.NewLine pdf01.SetFontStyle "underline" pdf01.AddTextLine "CONTROL DE TEMPERATURAS:" pdf01.SetFontStyle "normal" pdf01.AddTextLine "Se controla la temperatura de las cámaras (cámara de producto refrigerado, cámara de congelación y vitrina expositora). Todas cuentan con termómetro indicador de la temperatura de funcionamiento y no se observan restos de escarchamiento o de goteos desde los motores. Las cámaras de producto refrigerado y la de congelación funcionan a temperatura adecuada, de +4ºC y -19ºC, respectivamente. Se controla la temperatura de la vitrina expositora con un termómetro sonda del propio establecimiento, que indica una temperatura del producto de + 12ºC. El representante del establecimiento decide retirar las tapas expuestas en la vitrina y proceder a su destrucción." 'pdf01.SetFont "ssf4.ttf" 'pdf01.SetFontColor "#33AA88" 'pdf01.CreateTable 2 'pdf01.AddCellText "aaaa" 'pdf01.AddCellHyperlink "aaaaa", "bbbbbb" 'pdf01.AddTable pdf01.AddCheckboxSetX "Se levanta acta de inspección nº de acta......", 230, 20, "check" pdf01.AddCheckboxSetX "Se realiza toma de muestra nº de acta......", 230, 20, "check" pdf01.AddBarcode "1030000010000814919999", "interleaved2of5", 200, 50, 50, 60 pdf01.Close 'pdf01.DecryptPDF "/mnt/sdcard/xone/testpdf01.pdf", "/mnt/sdcard/xone/testpdf01decrypt.pdf", "1234" pdf01.LaunchPDF "/mnt/sdcard/xone/testpdf01.pdf" Set pdf01 = nothing Véase también: Control para visualización de PDFs