DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Access violation ao exportar para PDF – Fast Report – Como resolver?

Resolvendo o problema de Access violation ao exportar para PDF com o Fast Report

resolver problemas acceess violation export pdf-fast report

Indo ao assunto

Fala galera do Show Delphi, tudo beleza?

Então pessoal, dias atrás estava recebendo relatos sobre problemas ao exportar para PDF alguns relatórios, em especial em notebooks com o Windows 11.

O problema em questão era que ao tentar exportar o relatório para PDF ocorria um access violation, o arquivo até era gerado, mas parcialmente. A versão do Delphi em questão era o Delphi 10.3 Rio, mas tentei em outras versões e o problema tinha se repetindo.

Depois de muita pesquisa, encontrei materiais referenciando o problema a fontes que não estariam na máquina. Também encontrei códigos para contornar o problema.

 

Sugestão de Solução 1 – Ajustando o Fonte do Fast Report.

Para quem tem os fontes do Fast Report, encontrei na internet uma sugestão interessante, vamos a ela.

  • Procure a unit frxTrueTypeCollection
  • Localize a função TrueTypeCollection.LoadFont

Você precisará adicionar ao final da função o seguinte código:

if Result = nil then Result := ttf

 

Veja o exemplo abaixo:

 

1
2
3
4
5
6
7
8
function TrueTypeCollection.LoadFont( font: Tfont) : TrueTypeFont;
var
......
begin
......
 
  if Result = nil then Result := ttf //<-- aqui
end;

Após ajustar o código você precisa recompilar os pacotes do Fast Report, e você pode fazer isso fechando o Delphi e usando o recompiler.exe da própria pasta do Fast Report. Depois digo, ai sim você pode compilar seu projeto e testar.

Mas e se eu não tiver os fontes, o que fazer?

 

Sugestão de Solução 2 – Alterando propriedades do frxPDFExport

Como o problema parece estar relacionado a fontes, uma coisa que percebi é que o a propriedade EmbeddedFonts do frxPDFExport estava marcada como True, ou seja o componente tenta embarcar a fonte ao exportar.

Então, vamos mudar para False:

1
2
frxPDFExport.EmbeddedFonts := False;
frxPDFExport.Background := False;

A princípio também resolveu o problema no meu caso.

 

Então pessoal, tentem estas alternativas e comentem aqui se funcionou para vocês.

 

Bons códigos e até o próximo post.

 

Referencia:

https://forum.fast-report.com/en/discussion/12590/access-violation-when-export-to-pdf
https://www.projetoacbr.com.br/forum/topic/50719-access-violation-ao-gerar-pdf-de-carta-de-corre%C3%A7%C3%A3o-fast-report/

Facebook Comments Box
  • Giovani Da Cruz
  • 418 views
  • 0 comentários
  • 3 de julho de 2022

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados