Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

  • Membros Pro
Postado

Ao tentar imprimir um boleto, onde a logo é uma imagem .png com fundo transparante, o componente esta imprimindo ela com fundo preto.

Conforme orientado via discord, poderiam analisar esse ceário e verificar a possibilidade de ser impresso normalmente?

Captura de tela 2024-09-25 102853.png

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

  • Daniel InfoCotidiano changed the title to Logo PNG com fundo transparente sendo impressa com fundo preto.
  • Consultores
Postado

Anexe a imagem, e qual gerador está sendo utilizado?

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado

Aproveitando o tópico, seria possivel criar uma propriedade do tipo Image no boleto, para que ao invés de eu informar o caminho de um arquivo salvo na pasta local, já possa passar diretamente o valor Byte salvo no banco de dados?

Hoje nosso sistema armazena a logo direto no banco de dados e preciso salvar essa imagem em uma pasta temp antes de emitir um boleto para preencher a propriedade ArquivoLogoEmp

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

  • Membros Pro
Postado
23 minutos atrás, Juliomar Marchetti disse:

Acho que isso já é tratado no componente

olha que tem o evento nele para carregar a imagem

Julio, não localizei uma forma de informar diretamente a imagem via componente e nem uma forma do png não estar com fundo preto. Em conversa com o Daniel, ele disse que isso ainda esta em analise. Se já existe, poderia me ajudar como fazer?

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

  • Membros Pro
Postado
3 minutos atrás, Juliomar Marchetti disse:

Sim.

no componente de Boleto a parte de impressão tem o evento conforme abaixo

dai tu programa ele e carrega o logo do banco

image.png

Isso é para o logo do Banco certo? estou falando do logotipo da empresa

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

  • Membros Pro
Postado
3 horas atrás, Juliomar Marchetti disse:

Olhando mais atento ao que reportou está usando fast report, e a resposta é não tem mesmo para carregar a não ser via path

Nós podemos customizar esses modelos que utilizamos com o fast report? caso sim, poderia me dar uma orientação? nos arquivos de exemplo não há nada sobre isso.

 

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

  • Moderadores
Postado
19 minutos atrás, tborges disse:

Nós podemos customizar esses modelos que utilizamos com o fast report? caso sim, poderia me dar uma orientação? nos arquivos de exemplo não há nada sobre isso.

 

sim tu pode a vontade

é só abrir o fr3 e modificar. lembrando que toda a qualquer alteração feita nossa não irá mais receber pois o svn vai marcar como não atualizavel por conta da mudança.

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
 

 

Postado
Em 27/09/2024 at 13:31, tborges disse:

Nós podemos customizar esses modelos que utilizamos com o fast report? caso sim, poderia me dar uma orientação? nos arquivos de exemplo não há nada sobre isso.

 

Sim, vc pode personalizar, até colocar salvar no cliente, o modelo do boleto, eu tenho dessa forma, o cara quer algo diferente, edito, salvo no banco e vida que segue.

Abstraia o código:

procedure TDMBoleto.ConfigurarFastReport;
var
  ST: TMemoryStream;
begin
  frxReport1.Clear;
  frxReport1.Report.Clear;

  frxDBReceber.RangeBegin := rbFirst;
  frxDBReceber.RangeEnd   := reLast;

  frxReport1.EnabledDataSets.Clear;
  frxReport1.DataSets.Clear;

  frxReport1.DataSets.Add(frxDBReceber);
  frxReport1.EnabledDataSets.Add(frxDBReceber);

  ST := TMemoryStream.Create;
  try
    if FDSCfgMod.FieldByName('ARQUIVO_CFGBLMOD').IsNull then // Quando for atualizado, em Novembro de 2018, esse campo vai ficar vazio na tabela
    begin
      case FDSCfgMod.FieldByName('LAYOUT_CFGBLMOD').AsInteger of
        1:
          begin
            TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_1PP_PIX', sNomeDaDLL, ST);
          end;
        2: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_2PP', sNomeDaDLL, ST);
        3: TFuncoesSistemaOperacional.LerRecursoDLL('BOLETO_3PP_CARNE', sNomeDaDLL, ST);
      else // 3
        raise Exception.Create('Tipo de Documento: Boleto ou carnê não selecionado na configuração.');
      end;
    end
    else
       TBlobField(FDSCfgMod.FieldByName('ARQUIVO_CFGBLMOD')).SaveToStream(ST);

    ST.Position := 0;

    frxReport1.LoadFromStream(ST);
  finally
    FreeAndNil(ST);
  end;

  // desnecessário, mantido pois tem modelo salvo no cliente, e gera erro
  Var
    S: string;

  with frxReport1 do
  begin
    S := 'procedure INICIALIZA()';
    if Script.FindLocal(S) = nil then
       Script.AddMethod(S, CallMethod);
  end;
end;


OnSaveReport, do Designer:

function TDMBoleto.frxDesignerBoleto_SaveReport(Report: TfrxReport;
  SaveAs: Boolean): Boolean;
var
  Stream: TStream;
begin
  Stream := TMemoryStream.Create;
  try
    Report.SaveToStream(Stream);
    Stream.Position := 0;

    IBQryCfgMod.Edit;
    TBlobField(IBQryCfgMod.FieldByName('ARQUIVO_CFGBLMOD')).LoadFromStream(Stream);
    IBQryCfgMod.Post;
  finally
    Stream.Free;
  end;

  Result := True;
end;

  • 2 meses depois ...
  • Consultores
Postado

image.png

as rotinas de Load do arquivo tanto em Fortes com FastReports não consegui recriar o problema.

 

Delphi 12.2 com PNG Transparente;

 

icons8-home-256.rar

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
Postado
16 horas atrás, Alexandre de Paula disse:

Boa tarde @tborges,

Qual a versão do Delphi que você utiliza?

Obrigado

Bom dia, Alexandre. Nós utilizamos a acbrlib em VB.Net, não usamos Delphi.

Tentamos de todas as formas utilizar um PNG da transparente e não conseguimos. Nossa solução (com um custo alto), foi salvar a imagem que esta no banco de dados em uma pasta temporaria com o fundo branco e ai passar essa imagem para a lib

 

        Call Financeira.Bancos.InitACBoleto(dtConta.Rows(0), ACBoleto)
        If ACBoleto Is Nothing Then Exit Sub


        If Not File.Exists(Application.StartupPath.ToString() + $"\\Temp\\Logo{DBNumber(FGrade.SelectedRows(0).Cells("PVendaNr").FormattedValue)}.JPG") Then
            Using cmd As New SqlCommand($"Select Logotipo from PVenda where PVendaNr={DBNumber(FGrade.SelectedRows(0).Cells("PVendaNr").FormattedValue)}", Global.ETL.Global.SQLConnect)
                Using reader As SqlDataReader = cmd.ExecuteReader()
                    While reader.Read
                        If Not reader("LogoTipo").ToString = "" Then
                            Dim bytes = CType(reader("LogoTipo"), Byte())
                            Using ms As New MemoryStream(bytes)
                                Dim originalImage As Image = Image.FromStream(ms)
                                Dim newImage As New Bitmap(originalImage.Width, originalImage.Height)

                                Using g As Graphics = Graphics.FromImage(newImage)
                                    g.Clear(Color.White) ' Preencher o fundo com branco
                                    g.DrawImage(originalImage, 0, 0, originalImage.Width, originalImage.Height)
                                End Using

                                Dim jpgEncoder As Imaging.ImageCodecInfo = Imaging.ImageCodecInfo.GetImageDecoders().FirstOrDefault(Function(codec) codec.FormatID = Imaging.ImageFormat.Jpeg.Guid)
                                Dim encoderParameters As New Imaging.EncoderParameters(1)
                                encoderParameters.Param(0) = New Imaging.EncoderParameter(Imaging.Encoder.Quality, 75L)

                                Dim filePath As String = Application.StartupPath.ToString() & "\\Temp\\Logo" & FGrade.SelectedRows(0).Cells("PVendaNr").Value & ".JPG"
                                newImage.Save(filePath, jpgEncoder, encoderParameters)
                            End Using


                            '                        Dim I As Image = CType(((New ImageConverter()).ConvertFrom(bytes)), Bitmap)
                            '                       I.Save(Application.StartupPath.ToString() + "\\Temp\\Logo" & FGrade.SelectedRows(0).Cells("PVendaNr").Value & ".JPG", Imaging.ImageFormat.Jpeg)

                        End If
                    End While
                End Using
            End Using
        End If

        ACBoleto.Config.Impressao.DirLogo = Application.StartupPath.ToString() + "\Recursos\Boletos"

 

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

  • Moderadores
Postado
48 minutos atrás, tborges disse:

Bom dia, Alexandre. Nós utilizamos a acbrlib em VB.Net, não usamos Delphi.

Então já começa aqui a situação. seria na Lib que deve tratar para saber o que e como fazer,

aqui estamos falando do componente e acabamos lhe passando informações que no caso da lib não é possível.

vou mover para um sub forum para continuar

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
 

 

  • Membros Pro
Postado
1 minuto atrás, Juliomar Marchetti disse:

Então já começa aqui a situação. seria na Lib que deve tratar para saber o que e como fazer,

aqui estamos falando do componente e acabamos lhe passando informações que no caso da lib não é possível.

vou mover para um sub forum para continuar

Ok, não devo ter me atentado a isso, como iniciei essa conversa lá no discord acabou passando batido já que já tinha explicado tudo lá.

  • Curtir 1

Tiago Borges
Head de Produtos

separado.png

logo.gif


Cel: (12) 98190.3952
Site:
www.estrategiasoftware.com.br

×
×
  • 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.

The popup will be closed in 10 segundos...