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.

    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.
    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.

    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.

    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.

    pdf01.SetFontSize 10


Ajustar el tamaño de la fuente.

    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
    pdf01.SetFontColor "#0000AA"



Color de la fuente en notación HTML.

    pdf01.AddText "Consejería de Sanidad y Asuntos Sociales"


Añade un texto sin salto de línea.


    pdf01.AddTextLine "Consejería de Sanidad y Asuntos Sociales"


Añade un texto con salto de línea al documento.


    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.



    pdf01.AddHyperlink "Google", "http://www.google.com"


Añade un enlace al documento.


    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.


    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



    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.



    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.



    pdf01.NewLine

Añade una nueva línea.
Se le puede pasar un entero como parámetro y hará esos saltos.


    pdf01.NewPage

Salta a la página siguiente del PDF.


    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.


    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.



    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.



    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.



    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.



    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.



    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.




    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.


    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.




    pdf01.CreateTable 5

Inicializa una tabla simple.

Primer parámetro Número de columnas de una fila.



    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.


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.


pdf01.SetTableWidth 300


Con esto ajustamos el ancho total de la tabla.
El alto vendrá determinado por el número de filas añadidas.


    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“topAñade el borde superior.
setcellborder “bottomAñade el borde inferior.
setcellborder “rightAñade el borde derecha.
setcellborder “leftAñade el borde izquierda.
setcellborder “all Añade todos los bordes.
    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.
    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.
    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.
    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.

    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.

	pdf01.BeginHeader

Las siguientes llamadas de dibujo del pdf constituirán la cabecera del documento, hasta que se llame a endheader.

	pdf01.EndHeader

Finaliza el bloque de la cabecera.

	pdf01.BeginFooter

Las siguientes llamadas de dibujo del pdf constituirán el pie de página del documento, hasta que se llame a 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
    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.

    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.

    pdf01.AddAttachment "/mnt/sdcard/xone/archivoadjunto.txt"

Adjunta (incrusta) un fichero al pdf.
Pueden ser de todo tipo, incluso una URL.

    pdf01.Delete "/mnt/sdcard/xone/testpdf01.pdf"

Borra el fichero.

    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().

    pdf01.SetCompression "false"

Define si se quiere comprimir el documento.
Por defecto es igual a true.

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

    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().

    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”


    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” .
    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.
    pdf01.EncryptWithCertificate "testpdf.pdf", "testpdfencriptado.pdf", "certificado.cer"

Encripta un documento usando un certificado.

    pdf01.SignPDFWithKey "testpdf.pdf", "testpdffirmado.pdf", "keystore.pfx", "1234", "Nombre de la clave", "Contraseña de la clave"

Firma digitalmente un documento.

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