TfrxHotPDFExport

FastReport 4 / FastReport VCL adapter (Lib\Addons\FastReport4\frxHotPDFExport.pas)

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

Filtro de exportación PDF de FastReport 4 / FastReport VCL que usa HotPDF como backend PDF subyacente en lugar del propio escritor PDF integrado de FastReport. Pensado para proyectos que ya integran HotPDF y quieren un único backend PDF en toda la aplicación

 

Declaración en Delphi:

type

  TfrxHotPDFExport = class(TfrxCustomExportFilter)

  published

    property Compressed: Boolean default True;

    property Title, Author, Subject, Keywords: string;

    property PDFVersion: TPDFVersType default pdf17;

    property CompressionLevel: TPDFCompressionLevel default clDefault;

    property RenderDPI: Integer default 200;

  end;

 

Descripción

TfrxHotPDFExport desciende de TfrxCustomExportFilter, así que se integra en el flujo normal MyReport.Export(MyExportInstance) sin cambios en el núcleo de FastReport. La unidad llama a RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), por lo que el filtro aparece en la paleta de componentes del IDE una vez que la unidad se agrega a un paquete

 

En lugar de volver a implementar el emisor PDF completo de FastReport por objeto, el adaptador envía cada página preparada al importador de metarchivos mejorados de HotPDF:

 

1. Start crea una instancia nueva de THotPDF y establece los metadatos del documento (Title / Author / Subject / Keywords / PDFVersion / Compression)

2. StartPage ajusta el tamaño de la nueva página de HotPDF en puntos para que coincida con las dimensiones en milímetros de la página del informe de FastReport

3. ExportObject no hace nada (la página completa se captura en FinishPage, no por objeto)

4. FinishPage renderiza la página preparada de FastReport en un TMetafile mediante Report.PreviewPages.DrawPage y luego reproduce el metarchivo a través del importador con autoescalado ShowEnhancedMetafile de HotPDF

5. Finish llama a EndDoc y copia el PDF temporal al Stream proporcionado por el llamador si hace falta

 

Propiedades

Compressed - compresión de flujo de HotPDF activada (valor predeterminado True). Establece False para PDFs de diagnóstico (~5 veces más grandes)

Title / Author / Subject / Keywords - metadatos del documento. Cuando Title está vacío, el adaptador recurre a Report.Name para que el PDF siempre tenga un título no vacío

PDFVersion - nivel de especificación PDF al que debe apuntar el documento. El valor predeterminado es pdf17

CompressionLevel - nivel de FlateDecode. El valor predeterminado es clDefault

RenderDPI - densidad de píxeles usada al rasterizar la página de FastReport mediante TMetafileCanvas. Más alto = texto y líneas más nítidos, pero metarchivo y PDF más grandes. 96 es el DPI nativo de pantalla de FastReport; 200 (predeterminado) da resultados con calidad de impresión sin archivos enormes

 

Flujo de trabajo típico

 

Exp := TfrxHotPDFExport.Create(nil);

try

  Exp.FileName := 'Report.pdf';

  Exp.Title := 'Monthly Statement';

  Exp.PDFVersion := pdf17;

  Exp.RenderDPI := 200;

  frxReport1.Export(Exp);

finally

  Exp.Free;

end;

 

Capacidades preservadas

Contenido de página vectorial y rasterizado (texto, líneas, rectángulos, rellenos, mapas de bits) renderizado por el motor de composición estándar de FastReport. Cadenas de texto resueltas por GDI (HotPDF incrusta las fuentes resueltas por Windows mediante la ruta normal de subconjuntos de fuentes de HotPDF). Metadatos a nivel de documento

 

Limitaciones del puente de metarchivos

Como las páginas se capturan como metarchivos mejorados, no se propagan las funciones PDF específicas de FastReport que requieren información estructural (campos AcroForm, destinos con nombre, esquemas del documento, controles de conformidad PDF/A o PDF/X). La salida es una reproducción visual fiel de lo que FastReport renderiza en pantalla / impresora, no un PDF estructurado. Los proyectos que necesiten salida AcroForm o conformidad PDF/A deben usar HotPDF directamente mediante su API nativa

 

Nota de empaquetado

El adaptador vive en Lib\Addons\FastReport4\ y no forma parte de los paquetes principales HotPDF*.dpk, así que la dependencia de FastReport solo entra en los proyectos que optan por el adaptador. Hay una prueba de humo (smoke_frx_hotpdf.dpr) junto a la unidad

 

Ver también: TQRHotPDFExportFilter, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Soporte EMF/WMF mejorado