En FastReport 2020.1 hemos añadido la posibilidad de cambiar los parámetros de exportación. Para hacer esto, debe suscribirse al evento ExportParameters en WebReport.Report.
Hasta ahora, la biblioteca FastReport.Net no proporcionaba acceso a los parámetros de exportación. O mejor dicho, lo hizo, pero solo para algunos de los parámetros y con la ayuda de propiedades individuales del informe web. Todas estas propiedades están amontonadas y trabajar con ellas utilizando intelisense es bastante incómodo, y no cubren todas las necesidades de los usuarios. Por lo tanto, se decidió dar a los usuarios acceso a todas las propiedades del objeto de exportación, mediante un evento especial ExportParameters. En el manejador de eventos, puede obtener el objeto de exportación y establecer todas las propiedades que necesita. Por lo tanto, ahora es posible configurar la exportación con mayor precisión debido a propiedades que antes no estaban disponibles. Así es como puede utilizar el nuevo evento:
1 2 3 4 5 6 7 8 9 |
WebReport.Report.ExportParameters += (sender, e) => { PDFExport export = e.Export as PDFExport; if (export != null) { export.Title = "test"; export.DefaultPage = 2; } }; |
En este ejemplo, solo cambiamos el encabezado y la página predeterminada. Tenga en cuenta que estamos esperando una exportación PDF durante el procesamiento, lo que significa que este código no funcionará para otro tipo de exportación. En un manejador, puede especificar la configuración para varios tipos de exportación a la vez.
Ahora, tomemos el ejemplo de la exportación de PDF como un ejemplo de cómo se han expandido las propiedades de exportación disponibles. Anteriormente, WebReport nos ofrecía un conjunto de propiedades de exportación, que eran esencialmente envoltorios sobre las propiedades del objeto de exportación PDFExport:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
public string PdfTitle { get; set; } public string PdfAuthor { get; set; } public string PdfSubject { get; set; } public string PdfKeywords { get; set; } public string PdfCreator { get; set; } public string PdfProducer { get; set; } public string PdfUserPassword { get; set; } public bool PdfPrintScaling { get; set; } public string PdfOwnerPassword { get; set; } public bool PdfAllowModify { get; set; } public bool PdfAllowCopy { get; set; } public bool PdfAllowAnnotate { get; set; } public bool PdfA { get; set; } public bool PdfShowPrintDialog { get; set; } public bool PdfImagesOriginalResolution { get; set; } public bool PdfJpegCompression { get; set; } public bool PdfAllowPrint { get; set; } public bool PdfCenterWindow { get; set; } public bool PdfHideWindowUI { get; set; } public bool PdfFitWindow { get; set; } public bool PdfEmbeddingFonts { get; set; } public bool PdfBackground { get; set; } public bool PdfInteractiveForms { get; set; } public bool PdfPrintOptimized { get; set; } public bool PdfOutline { get; set; } public bool PdfDisplayDocTitle { get; set; } public bool PdfHideToolbar { get; set; } public bool PdfHideMenubar { get; set; } public bool PdfTextInCurves { get; set; } |
Debo decir que esta lista de propiedades incluye las principales y las más populares, pero no todas. Muchos usuarios quieren más. Y ahora, con el nuevo evento ExportParameters tienen un conjunto completo de propiedades disponibles:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
public bool HideWindowUI { get; set; } - hide user interface; public bool ShowPrintDialog { get; set; } – show printing dialog; public bool HideToolbar { get; set; } – hide toolbar in PDF viewer; public bool HideMenubar { get; set; } – hide menubar in PDF viewer; public GradientInterpolationPointsEnum GradientInterpolationPoints { get; set; } – gradient interpolation poinrs; public bool FitWindow { get; set; } – enable window fitting; public bool CenterWindow { get; set; } – center window; public bool PrintScaling { get; set; } – show scaling; public bool Outline { get; set; } – show contents; public MagnificationFactor DefaultZoom { get; set; } – default zoom; public int RichTextQuality { get; set; } – RichText quality; public bool Compressed { get; set; } – compress file; public bool TransparentImages { get; set; } – transparent image; public bool DisplayDocTitle { get; set; } – display document title; public int DefaultPage { get; set; } – default page number; public byte[] ColorProfile { get; set; } – color profile; public ExportType ExportMode { get; set; } – export type; public bool InteractiveForms { get; set; } – enable interactive forms; public bool IsDigitalSignEnable { get; set; } – enable digital signature; public bool SaveDigitalSignCertificatePassword { get; set; } – save digital signature certificate password; public X509Certificate2 DigitalSignCertificate { set; } – digital signature certificate; public string DigitalSignCertificatePath { get; set; } – digital signature certificate path; public string DigitalSignCertificatePassword { set; } – ; digital signature certificate password public string DigitalSignLocation { get; set; } – digital signature location; public string DigitalSignReason { get; set; } – digital signature reason; public string DigitalSignContactInfo { get; set; } – digital signature contact info; public CurvesInterpolationEnum CurvesInterpolation { get; set; } – curves interpolation; public bool AllowAnnotate { get; set; } – allow annotation; public bool AllowCopy { get; set; } – allow copying; public bool AllowModify { get; set; } – allow editing; public bool AllowPrint { get; set; } – allow print; public GradientQualityEnum GradientQuality { get; set; } – gradient quality; public PdfStandard PdfCompliance { get; set; } – PDF standard complience; public bool EmbeddingFonts { get; set; } – enable embedded fonts; public bool Background { get; set; } – enable background; public CurvesInterpolationEnum CurvesInterpolationText { get; set; } – interpolation text curves; public PdfColorSpace ColorSpace { get; set; } – color space; public bool ImagesOriginalResolution { get; set; } – use original image resolution; public bool PrintOptimized { get; set; } – print optimization; public bool JpegCompression { get; set; } – Jpeg image compression; public bool TextInCurves { get; set; } – make text in curves; public string Title { get; set; } – title; public string UserPassword { get; set; } – user password for encrypted documents; public int JpegQuality { get; set; } – Jpeg image quality; public string OwnerPassword { get; set; } – Owner’s password; public string Producer { get; set; } – Producer; public bool SvgAsPicture { get; set; } – Display Svg objects as pisctures; public string Keywords { get; set; } – Keywords; public string Subject { get; set; } – Subject of the document; public string Author { get; set; } – Author; public string Creator { get; set; } – Creator; |
Y esto sin considerar las propiedades comunes a todas las exportaciones.
Resumamos los beneficios que nos trae el nuevo evento ExportParameters. Al usar un objeto para una exportación específica, solo podemos acceder a las propiedades de esa exportación. Anteriormente, se requería seleccionar de una lista común de propiedades de todas las exportaciones posibles, lo que no siempre es conveniente, porque los nombres de algunas propiedades no son obvios para identificar la exportación. Verá la lista completa de propiedades disponibles usando Intellisense o puede ver la lista completa de e propiedades disponibles.