Ir para conteúdo
  • Cadastre-se

dev botao

PDF desalinhado e cortando caracteres


Ver Solução Respondido por Edson.pol,
  • Este tópico foi criado há 2418 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde.

O PDF do DANFE gerado pelo FortesReport está "grudando" os valores nas bordas e cortando caracteres (ver imagem)

Tem cliente reclamando que na impressão do PDF, não dá pra ler o valor total da nota, porque corta metade do ultimo número do valor.

Na impressão sai corretamente, só no PDF que isto ocorre.

Alguém tem alguma dica pra minimizar este problema ?

[]´s

Edson

 

ImpressaoDanfe.png

Postado

Bom dia Juliomar.

Testei a geração do PDF via "PDF Creator" e "Microsoft Print to PDF". Nestes dois, o PDF gerado é exatamente igual ao Preview do Fortes.

Estou lendo os fontes do fortes, na unit RLPDFFilter.pas, e vi seu nome lá !!!

Sabe me dizer se seria "culpa" das funções DrawText e DrawRectangle ?

Tipo, na DrawRectangle daria para deixar o frame mais fino, e na DrawText, imprimir alguns pontos mais a esquerda ?

Nesta parte da função DrawText:

  WriteText(
    PDF_PixelsToPoints(L),
    PDF_PixelsToPoints(T),
    AObj.DisplayText, GetFontId(AObj.Font.Name, AObj.Font.Style), AObj.Font.Size);

Se diminuir o L e o T, imprimiria o texto mais acima e mais a esquerda ?

[]´s

Edson.

 

Postado

Aqui tb acontecia, resolvi assim: no pacote ACBr_NFeDanfeRL -> ACBrNFeDANFeRLRetrato.dfm-> evento BeforePrint de cada TRLLabel :

if (vAuxDiferencaPDF=10) then 
   TControl(sender).Top:=    TControl(sender).Top-2; 

 

  • Moderadores
Postado
Em 25/08/2016 at 11:10, Edson.pol disse:

Bom dia Juliomar.

Testei a geração do PDF via "PDF Creator" e "Microsoft Print to PDF". Nestes dois, o PDF gerado é exatamente igual ao Preview do Fortes.

Estou lendo os fontes do fortes, na unit RLPDFFilter.pas, e vi seu nome lá !!!

Sabe me dizer se seria "culpa" das funções DrawText e DrawRectangle ?

Tipo, na DrawRectangle daria para deixar o frame mais fino, e na DrawText, imprimir alguns pontos mais a esquerda ?

Nesta parte da função DrawText:

  WriteText(
    PDF_PixelsToPoints(L),
    PDF_PixelsToPoints(T),
    AObj.DisplayText, GetFontId(AObj.Font.Name, AObj.Font.Style), AObj.Font.Size);

Se diminuir o L e o T, imprimiria o texto mais acima e mais a esquerda ?

[]´s

Edson.

 

Boa noite!

acho que isso é fonte do windows ou configuração que está ocasionando o problema!

Veja por exemplo senão está o zoom do windows habilitado

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 2 meses depois ...
Postado

Boa tarde.

Ainda não resolvi o problema.

Na geração do PDF de um Conhecimento de Transporte (CTe), a situação é ainda pior que na NFe.

No preview do Fortes e na impressão  está tudo em ordem, o problema é somente no PDF.

Vejam um exemplo de PDF gerado pelo Fortes e outro impresso na impressora virtual "Microsoft Print to PDF" que já vem instalada no Windows 10.

Utilizo: Delphi 7, ACBr Atualizado, Fortes Comunity (atualizado via github).

Testei em:

Windows 7 - 32 e 64 bits   /   Windows 10 - 32 e 64 bits

Com resoluções diferentes, e monitores diferentes (17,19,23")  /   Todos com o zoom do Windows em 100%

Procurei fontes faltantes.... e nada.

Estou tentando debugar o Fortes, mas não consigo "ligar" o debug. Não sei qual diretiva está impedindo a depuração.

Não encontrei nenhum {-d} nos fontes.

No DPR existe a diretiva {$DEBUGINFO ON}

Alguém tem uma dica sobre como debugar ?

 

 

TesteExportPDF_Fortes.jpg

TesteMicrosfotPintToPdf.jpg

  • Solution
Postado

Prezados...

Encontrei o erro (e éra meu).

Fiz uma instalação limpa em um novo PC, somente com Delphi, ACBr e Fortes Report, e está tudo em ordem.

No PC antigo, vi que havia uma pasta antiga do Fortes no Library Path, antes da pasta do novo componente "Fortes Comunity Edition".

Removi a entrada no library path, renomeei a pasta antiga e deu tudo certo.

[]´s

Edson

  • 11 meses depois ...
  • 3 semanas depois ...
Postado

Reinstalei o fortes, atualizei os fontes do fortes e do ACBR, apaguei todo ACBR e instalei novamente e continua assim, o curioso é que somente abre dessa maneira no Adobe e nos outros views de PDF abre normal, testei abrindo com o Chrome e com o PDF-XChange Viewer.

  • 1 mês depois ...
Postado

Infelizmente tentei de todas maneiras possíveis, tentei compilar meu sistema em outro computador, reinstalei ACBR, reinstalei FORTES, tem alguns clientes que não acontece o problema. Outro ponto estranho é que o cliente gera o CT-e e salva o PDF, na maquina dele aparece tudo certinho sem problemas, manda por e-mail para as empresas la abre mas com o problema, fica igual da foto anterior. Vou acabar mudando de componente de impressão.

  • 2 semanas depois ...
  • 2 meses depois ...
Postado (editado)

Achei a solução, eu estava alimentando o componente com o caminho aonde supostamente estaria o logo, em vários lugares não era adicionado o logo no CT-e. Hoje analisando as funções que faz a geração do arquivo .pdf achei. Segue o if a baixo da unit ACBrCTeDACTeRLRetrato.pas, mesmo tendo "if FilesExists(FLogo) then" acabava entrando e dando erro logo a baixo pois não encontrava o logo. Solução foi verificar antes de informar o caminho no ACBrCTe1.DACTe.Logo se o logo existe. E ainda dependendo do aplicativo usado para visualizar o arquivo .pdf ele abria normalmente, mas no Acrobat não exibia corretamente. Abraço a todos.

 logo em todos clientes.

if (FLogo <> '') then
  begin
    if FilesExists(FLogo) then
      rliLogo.Picture.LoadFromFile(FLogo)
    else
    begin
      vStringStream := TStringStream.Create(FLogo);
      try
        try
          rliLogo.Picture.Bitmap.LoadFromStream(vStringStream);
        except
        end;
      finally
        vStringStream.Free;
      end;
    end;
  end

Editado por Eduardo Ciotti
  • Este tópico foi criado há 2418 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.