====== wPDFReport ====== Esta Clase nos permite crear documentos PDF sin utilizar ninguna herramienta externa, y además la creación del PDF se realiza del lado del cliente con el consiguiente ahorro de tiempo de ejecución de nuestro CGI. Tendremos que ir creando por código los elementos que componen el documento que queremos crear ([[pdfreport:Text|Textos]], [[pdfreport:HLine|Línea]], [[pdfreport:Rec|Recuadros]], [[pdfreport:QrCode|Códigos QR]], [[pdfreport:Image|Imágenes]], Tablas, etc... ) Todas las medidas que se indiquen serán en mm pudiendo poner decimales. ===== Ejemplo de uso ===== {{url>https://samples.nefele.dev/wiki/pdf 100%,402px}} /* */ ---- ===== Propiedades ===== ^Nombre ^Init ^Descripción ^Versión ^ | **Objetos que definen el documento** ||| | |[[pdfreport:Header|oHeader]] | | Cabecera del documento, se repetirá en todas las páginas | 0.4| |[[pdfreport:Body|oBody]] | | Cuerpo del documento | 0.4| |[[pdfreport:Footer|oFooter]] | | Pie del documento, se repetirá en todas las páginas | 0.4| |oMsgFinish | | Objeto de clase [[controles:WMsgAlert]] con el que definir el mensaje de documento creado | 0.4| | **Metadatos del documento PDF** ||| | |cFile | | Nombre del documento PDF | 0.4| |cTitle | | Título del documento PDF | 0.4| |cSubject | | Subject del documento PDF | 0.4| |cAuthor | | Autor del documento PDF | 0.4| |cKeywords | | Palabras Claves del documento PDF | 0.4| |cCreator | | Creador del documento PDF | 0.4| | **Opciones de salida** ||| | |lPrint | .F. | Abrirá la ventana de Impresión una vez creado el documento | 0.4| |lShow | .T. | Se visualizara el documento en una página | 0.4| |lPDFObject | .T. | Se tratarán los PDF como un objeto en la página web. Recomendamos .T. | 0.4| |lPDFjs | .F. | Utilizaremos el visor de PDF PDF.js adaptado para Néfele y no el del navegador. En dispositivos móviles hay navegadores que no soportan la visualización de PDF y fuerzan siempre a descargarlo. Si esta propiedad esta a .F. saldrá un mensaje bastante aparente para proceder a la descarga del documento | 0.4| |cAjaxBevel | "nflcargo" | wBevel donde se recibirá el script enviado por el CGI para la creación del PDF en el navegador | 0.4| |cOutputBevel | | cId del wBevel donde se montará la visualización del PDF, tendrá que estar creado ya en la página. | 0.4| |lModalResult | .F. | Si queremos que la visualización del PDF se realice en una ventana modal y que esta se abra automáticamente para visualizar el PDF, tendremos indicar el cId del wBevel Modal en la propiedad cOutputBevel y habilitar lModalResult | 0.4| | **Parámetros de la Página** ||| | |[[propiedades:PdfFormat|cFormat]] | "a4" | Formato de Página | 0.4| |cOrientation | "portrait" | Orientación de la página, puede ser "portrait" o "landscape" | 0.4| |nMargin | 5 | Margen de la página en mm | 0.4| | **Formato por defecto de los elementos de la Página** ||| | |[[propiedades:pdffont|cFontName]] | "times" | Fuente de letra que se utilizará | 0.4| |nFontSize | 10 | Tamaño de la Fuente de letra que se utilizará | 0.4| |cFontStyle | "normal" | Estilo de la Fuente de letra que se utilizará, puede ser "normal", "bold" o "italic" | 0.4| |[[propiedades:cClrText]] | clBlack | Color del Texto | 0.4| |[[propiedades:cClrPane]] | clWhite | Color del fondo de la página | 0.4| |[[propiedades:PdfClrLine|cClrLine]] | clBlack | Color de las Líneas | 0.4| | **Envío de PDF generado al CGI** ||| | |[[propiedades:PdfcOnCreate|cOnCreate]] | | Método de nuestro CGI al que se enviara el PDF generado | 0.4.5| ===== Métodos ===== ^Método ^Descripción ^Versión ^ |[[pdfreport:SetFont]] | Cambio de la Fuente a utilizar. | 0.4| |[[pdfreport:Text]] | Añadir una cadena de texto. | 0.4| |[[pdfreport:Memo]] | Añadir un bloque de texto. | 0.4| |[[pdfreport:HLine]] | Añadir una línea Horizontal. | 0.4| |[[pdfreport:VLine]] | Añadir una línea Vertical. | 0.4| |[[pdfreport:Rec]] | Añadir un recuadro. | 0.4| |[[pdfreport:RecRound]] | Añadir un recuadro con las esquinas redondeadas. | 0.4| |[[pdfreport:Image]] | Añadir una imagen. | 0.4| |[[pdfreport:QrCode]] | Añadir un Código QR. | 0.4| |[[pdfreport:Table]] | Crear una tablas. | 0.4| |[[pdfreport:AddBand]] | Añadir una banda a la página. | 0.4| |[[pdfreport:NewPage]] | Salto de página, con el mismo oHeader, oBody y oFooter. | 0.4| |[[pdfreport:StartPage]] | Comienza nueva página, con un nuevo oHeader, oBody y oFooter. | 0.4.5| |[[metodos:AddParam]] | Añade un parámetro a la propiedad [[propiedades:aParams]], hay que pasarle un array {"nombre","valor"} | 0.4.5| ===== Variables del documento ====== ^Variable ^Descripción ^Versión ^ |page | Número de la página actual | 0.4| |pages | Número total de paginas del documento | 0.4| Para incluir una variable del Documento en un Text o Memo hay que poner la variable entre '%%', por ejemplo **%%page%%** para incluir el número de página donde este el Texto.