TfrxHotPDFExport

Adapter FastReport 4 / FastReport VCL

 

Adapter QuickReport  Dispositivo ReportBuilder  Adapter DevExpress

Filtro de exportação PDF FastReport 4 / FastReport VCL que usa o HotPDF como backend PDF subjacente em vez do gerador PDF embutido do próprio FastReport. Destinado a projetos que já embutem o HotPDF e querem um único backend PDF em toda a aplicação

 

Delphi declaration:

type

  TfrxHotPDFExport =class(TfrxCustomExportFilter)

  published

    property Compressed: Booleandefault True;

    property Title, Author, Subject, Keywords: string;

    property PageRange: string;

    property PDFVersion: TPDFVersTypedefault pdf17;

    property PDFACompliance: string;

    property PDFXCompliance: string;

    property CompressionLevel: TPDFCompressionLeveldefault clDefault;

    property RenderDPI: Integerdefault 200;

    property ExportMode: TfrxHotPDFExportModedefault hemPageMetafile;

    property AutoCreateURL: Booleandefault False;

    property FontEmbedding: Booleandefault True;

    property NotEmbeddedFonts: TStrings;

    property ActivateProtection: Booleandefault False;

    property UserPassword, OwnerPassword: string;

    property CryptKeyLength: THPDFKeyTypedefault k40;

    property ProtectOptions: THPDFProtectOptionsdefault [];

    property EncryptMetadata: Booleandefault True;

    property DialogDefaultFileName, DialogFilter, DialogTitle: string;

  end;

 

Descrição

TfrxHotPDFExport descende de TfrxCustomExportFilter, de modo que se encaixa no fluxo regular de MyReport.Export(MyExportInstance) sem qualquer mudança no núcleo do FastReport. A unidade chama RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), de modo que o filtro aparece na paleta de componentes do IDE assim que a unidade é adicionada a um package

 

Quando ShowDialog é True e nenhum stream de saída está definido, a exportação pede o arquivo com um save dialog. DialogDefaultFileName preenche o nome do arquivo (vazio: FileName, depois Title, depois o nome do relatório), DialogFilter define a lista de tipos de arquivo (vazio: arquivos PDF e todos os arquivos) e DialogTitle o caption (vazio: Export to PDF). Eles não têm efeito em exportações silenciosas

 

The adapter can export through one of three modes:

 

1. Start cria uma instância nova de THotPDF e define os metadados do documento (Title / Author / Subject / Keywords / PDFVersion / Compression)

2. PageRange opcionalmente filtra as páginas do FastReport antes de os objetos de página do HotPDF serem dimensionados ou preenchidos

3. StartPage dimensiona a nova página HotPDF em pontos para corresponder às dimensões em milímetros da página do relatório FastReport

4. hemPageMetafile mantém o caminho original de captura de preview da página inteira e o importa por meio de ShowEnhancedMetafile

5. hemObjectCanvas pede ao FastReport que desenhe cada view preparada em um metafile de página intermediário antes de o HotPDF importar essa página

6. hemNativeObjects mapeia views preparadas suportadas diretamente para chamadas de página do HotPDF: texto de memo selecionável com fundo, alinhamento, clipping, espaçamento de caracteres e estilo de frame, Image XObjects de figuras raster, geometria de shapes simples, strokes de linhas e anotações de URL de views

7. Finish chama EndDoc e copia o PDF temporário para o Stream fornecido pelo chamador, se necessário

 

Properties

Compressed - compressão de stream do HotPDF ligada (padrão True). Defina False para PDFs de diagnóstico (arquivos ~5x maiores).

Title / Author / Subject / Keywords - metadados do documento. Quando Title está vazio, o adapter recai em Report.Name, de modo que o PDF sempre tenha um título não vazio

PageRange - filtro opcional de páginas com base um usando a mesma sintaxe das operações de página do HotPDF, como 1, 1,3-5, ou uma string vazia para todas as páginas

PDFVersion - o nível da especificação PDF que o documento deve mirar. Padrão: pdf17

PDFACompliance e PDFXCompliance - encaminham os gates de conformidade com padrões do HotPDF para o PDF do relatório gerado. Os chamadores ainda preparam qualquer perfil ICC, OutputIntent, tagging ou ativo de prepress necessário pelo fluxo normal do HotPDF antes de confiar na reivindicação final de conformidade

CompressionLevel - nível de FlateDecode. Padrão: clDefault

RenderDPI - densidade de pixels usada ao rasterizar a página do FastReport por meio de TMetafileCanvas. Maior = texto e linhas mais nítidos, mas metafile e PDF maiores. 96 é o DPI de tela nativo do FastReport; 200 (padrão) dá resultados com qualidade de impressão sem arquivos enormes

ExportMode - escolhe exportação de metafile de página inteira, exportação de canvas por objeto ou exportação de objetos nativos para as classes de view do FastReport atualmente mapeadas

AutoCreateURL - encaminha para THotPDF.AutoCreateURL, de modo que texto de memo nativo possa criar anotações URI para URLs detectados

FontEmbedding e NotEmbeddedFonts - encaminham a política usual de embutimento de fontes do HotPDF para o PDF do relatório gerado

ActivateProtection, UserPassword, OwnerPassword, CryptKeyLength, ProtectOptions e EncryptMetadata - encaminham as configurações de segurança por senha do HotPDF quando é exigida saída de relatórios criptografada

 

Fluxo de trabalho típico

 

Exp := TfrxHotPDFExport.Create(nil);

try

  Exp.FileName := 'Report.pdf';

  Exp.Title := 'Monthly Statement';

  Exp.PDFVersion := pdf17;

  Exp.PDFACompliance := '3B';

  Exp.PageRange := '1,3-5';

  Exp.RenderDPI := 200;

  Exp.ExportMode := hemNativeObjects;

  Exp.AutoCreateURL := True;

  Exp.FontEmbedding := True;

  Exp.NotEmbeddedFonts.Add('Courier New');

  Exp.ActivateProtection := True;

  Exp.CryptKeyLength := aes256;

  Exp.OwnerPassword := 'owner';

  Exp.UserPassword := 'viewer';

  Exp.ProtectOptions := [prPrint, prInformationCopy];

  frxReport1.Export(Exp);

finally

  Exp.Free;

end

 

Capacidades preservadas

Os modos de página inteira e de canvas por objeto preservam o conteúdo vetorial e raster das páginas renderizado pela engine de layout padrão do FastReport. O modo de objetos nativos atualmente preserva texto de memo suportado como texto PDF com fundo, alinhamento horizontal e vertical e estilos de frame; views de figuras como Image XObjects; shapes simples como geometria PDF; views de linhas como strokes; e URLs de views como anotações de link URI. Os metadados no nível do documento são preservados em todos os modos

 

Limitations

Features PDF específicas do FastReport que exigem mapeamento estrutural adicional (campos AcroForm, destinos nomeados e outlines do documento) não são propagadas por este adapter. As propriedades de gate PDF/A e PDF/X são encaminhadas ao HotPDF, mas ativos específicos de padrões, como perfis de OutputIntent, permanecem responsabilidade do chamador

 

Nota sobre empacotamento

O adapter é distribuído como um add-on opt-in em vez de uma dependência dos packages principais de HotPDF*.dpk, de modo que projetos sem FastReport não puxam unidades do FastReport

 

See also: TQRHotPDFExportFilter, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Suporte aprimorado a EMF/WMF