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
  Em 26/09/2024 at 13:13, Juliomar Marchetti disse:

Acho que isso já é tratado no componente

olha que tem o evento nele para carregar a imagem

Expandir  

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
  Em 27/09/2024 at 12:33, 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

Expandir  

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
  Em 27/09/2024 at 16: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.

 

Expandir  

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: juliomar_m@yahoo.com.br
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado
  Em 27/09/2024 at 16: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.

 

Expandir  

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.rarFetching info...

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
  Em 17/12/2024 at 19:39, Alexandre de Paula disse:

Boa tarde @tborges,

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

Obrigado

Expandir  

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
  Em 18/12/2024 at 11:46, tborges disse:

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

Expandir  

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: juliomar_m@yahoo.com.br
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado
  Em 18/12/2024 at 12:35, 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

Expandir  

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

  • 3 meses depois ...
  • Consultores
Postado
  Em 18/12/2024 at 12:37, tborges disse:

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á.

Expandir  

na versão atual desta semana ainda ocorre essa situação?

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"

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