Herramientas de usuario

Herramientas del sitio


tecnicas:pdfviewer

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
tecnicas:pdfviewer [21/03/2021 21:21]
pedro [FastReport]
tecnicas:pdfviewer [02/07/2021 18:55] (actual)
pedro [wkhtmltopdf]
Línea 21: Línea 21:
 ====== Creando al vuelo Documentos/​Informes PDF con... ====== ====== Creando al vuelo Documentos/​Informes PDF con... ======
 ===== FastReport ===== ===== FastReport =====
 +Cuando queremos crear ficheros PDF utilizando FastReport tenemos que tener en cuenta que se va ha ejecutar en el servidor, por lo que no podemos permitir que nos pase la ejecución de nuestro CGI por un error o por que abra un dialogo pidiendo algún parámetro o avisándonos de algun mensaje.
 +
 +Por eso debemos asignarle unas cuantas propiedades a FastReport que lo evite.
 +  :​lAbortOnErrors := .F.  // Evitamos que cancele el proceso por un error
 +  :​oEngineOptions:​SetSilentMode( .T. )  // No queremos que de ningún mensaje
 +  :​SetProperty("​PDFExport",​ "​ShowDialog",​ .F.)  // No necesitamos que pregunte nada para exportar
 +La primera propiedad hemos de asignarla **antes** del :Create, las otras dos despues.
 + 
 <​Code:​xailer linenums:​1>​ <​Code:​xailer linenums:​1>​
    WITH OBJECT TFastReport():​New()    WITH OBJECT TFastReport():​New()
Línea 27: Línea 35:
      :​oEngineOptions:​SetSilentMode( .T. )  // No queremos que de ningún mensaje      :​oEngineOptions:​SetSilentMode( .T. )  // No queremos que de ningún mensaje
      // Parámetros del PDF      // Parámetros del PDF
 +     :​SetProperty("​PDFExport",​ "​ShowDialog",​ .F.)  // No necesitamos que pregunte nada para exportar
      :​SetProperty("​PDFExport",​ "​FileName",​ "​document.pdf"​)      :​SetProperty("​PDFExport",​ "​FileName",​ "​document.pdf"​)
-     :​SetProperty("​PDFExport",​ "​DefaultPath",​ cReportPath) // carpeta donde generara ​el PDF+     :​SetProperty("​PDFExport",​ "​DefaultPath",​ cReportPath) // carpeta donde se guardará ​el PDF generado
      :​SetProperty("​PDFExport",​ "​EmbeddedFonts",​ .t.)      :​SetProperty("​PDFExport",​ "​EmbeddedFonts",​ .t.)
-     :​SetProperty("​PDFExport",​ "​ShowDialog",​ .F.)  // No necesitamos que pregunte nada para exportar 
-     :​SetProperty("​PDFExport",​ "​Title",​ "​Informe de Eliminados por Bookings " + ::​oEd_Nombre:​Value) 
      :​SetProperty("​PDFExport",​ "​PrintOptimized",​ .T.)      :​SetProperty("​PDFExport",​ "​PrintOptimized",​ .T.)
 +     // Propiedades del PDF
 +     :​SetProperty("​PDFExport",​ "​Title",​ "​Informe de Eliminados por Bookings " + ::​oEd_Nombre:​Value)
      :​SetProperty("​PDFExport",​ "​Author",​ "​Néfele Project"​)      :​SetProperty("​PDFExport",​ "​Author",​ "​Néfele Project"​)
      :​SetProperty("​PDFExport",​ "​Producer",​ "​Néfele Project"​)      :​SetProperty("​PDFExport",​ "​Producer",​ "​Néfele Project"​)
Línea 50: Línea 59:
 </​Code>​ </​Code>​
 ===== wkhtmltopdf ===== ===== wkhtmltopdf =====
 +**wkhtmltopdf** es una herramienta de línea de comando de código abierto (LGPLv3) para renderizar HTML en PDF utilizando el motor de renderizado Qt WebKit. No requieren un servicio de visualización por lo que es ideal para ejecutar desde un CGI.
 +
 +[[https://​wkhtmltopdf.org/​]]
 ===== wPDFReport ===== ===== wPDFReport =====
 +
 +Con la Clase [[controles:​wPDFReport]] podemos crear un documento PDF elemento a elemento, en el servidor no se crea el PDF sino que se envía al navegador las instrucciones para que lo cree en el lado del cliente por lo que reducimos el tiempo de ejecución de nuestro CGI.
tecnicas/pdfviewer.1616361708.txt.gz · Última modificación: 21/03/2021 21:21 por pedro