Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

VBA: Imprimindo em Matricial

VBA: Imprimindo em Matricial


A impressão matricial continua sendo uma solução utilizada em setores que demandam eficiência e custos reduzidos. Neste artigo, apresentaremos uma função VBA que permite imprimir relatórios em impressoras matriciais, incluindo suporte para imagens e conteúdo dinâmico.


Eventualmente precisaremos imprimir dados em impressoras matriciais. E isso será possível por condicionarmos a saída dos dados pela porta LPT1.


 Manipulando Impressoras e Impressões: 


Código Revisado e Avançado

O código abaixo foi revisado para incorporar práticas modernas, organização e maior clareza. Ele também inclui comentários detalhados para facilitar o entendimento e a manutenção.


Código Revisado

vba
Function PrintMatricialReport() As Boolean ' Declaração de variáveis Dim portName As String ' Porta onde o relatório será enviado Dim logoFilePath As String ' Caminho para o arquivo de imagem Dim imgBuffer As String ' Buffer para armazenar o conteúdo da imagem Dim fileNumber As Integer ' Número do arquivo para saída na porta Dim imgNumber As Integer ' Número do arquivo para leitura do logo On Error GoTo ErrorHandler ' Manipulação de erros ' Configuração da porta e do arquivo de imagem portName = "LPT1" logoFilePath = "Logo.bmp" ' Abre a porta de saída e o arquivo de imagem fileNumber = FreeFile() ' Obtém um número de arquivo livre Open portName For Output As #fileNumber imgNumber = FreeFile() ' Obtém um número de arquivo livre para o logo Open logoFilePath For Binary As #imgNumber ' Carrega o conteúdo do arquivo de imagem no buffer imgBuffer = Space(LOF(imgNumber)) ' Ajusta o buffer ao tamanho do arquivo Get #imgNumber, 1, imgBuffer Close #imgNumber ' Fecha o arquivo de imagem após carregá-lo ' Inicia a impressão matricial Print #fileNumber, Chr(2) & "Relatório de Impressão Matricial" Print #fileNumber, imgBuffer ' Imprime o conteúdo da imagem Print #fileNumber, Chr(2) & "-------------------------------" Print #fileNumber, Chr(2) & "Detalhes do Relatório:" Print #fileNumber, Chr(2) & "-------------------------------" ' Exemplos de conteúdo dinâmico Print #fileNumber, "Nome: Bernardes" Print #fileNumber, "Título: Logo do Relatório" Print #fileNumber, "Departamento: Vendas" Print #fileNumber, "Código: 007" Print #fileNumber, "Mês: Outubro" ' Finaliza a impressão Print #fileNumber, Chr(2) & "Fim do Relatório" Close #fileNumber ' Fecha a conexão com a porta ' Retorna sucesso PrintMatricialReport = True Exit Function ErrorHandler: ' Tratamento de erros MsgBox "Erro ao imprimir o relatório: " & Err.Description, vbCritical, "Erro" PrintMatricialReport = False Exit Function End Function

Artigo para Blog

Título: Como Imprimir Relatórios Matriciais no VBA com Suporte a Imagens e Conteúdo Dinâmico


Introdução

A impressão matricial continua sendo uma solução utilizada em setores que demandam eficiência e custos reduzidos. Neste artigo, apresentaremos uma função VBA que permite imprimir relatórios em impressoras matriciais, incluindo suporte para imagens e conteúdo dinâmico.


Por Que Usar Impressão Matricial no VBA?

  • Baixo custo operacional: Ideal para documentos simples, como relatórios ou etiquetas.
  • Velocidade: Impressoras matriciais são rápidas e eficientes.
  • Flexibilidade: Permite incluir imagens e personalizar relatórios.
Function PrintMatricialReport() As Boolean
    ' Declaração de variáveis
    Dim portName As String   ' Porta onde o relatório será enviado
    Dim logoFilePath As String ' Caminho para o arquivo de imagem
    Dim imgBuffer As String  ' Buffer para armazenar o conteúdo da imagem
    Dim fileNumber As Integer ' Número do arquivo para saída na porta
    Dim imgNumber As Integer  ' Número do arquivo para leitura do logo
    
    On Error GoTo ErrorHandler ' Manipulação de erros

    ' Configuração da porta e do arquivo de imagem
    portName = "LPT1"
    logoFilePath = "Logo.bmp"
    
    ' Abre a porta de saída e o arquivo de imagem
    fileNumber = FreeFile() ' Obtém um número de arquivo livre
    Open portName For Output As #fileNumber
    
    imgNumber = FreeFile() ' Obtém um número de arquivo livre para o logo
    Open logoFilePath For Binary As #imgNumber

    ' Carrega o conteúdo do arquivo de imagem no buffer
    imgBuffer = Space(LOF(imgNumber)) ' Ajusta o buffer ao tamanho do arquivo
    Get #imgNumber, 1, imgBuffer
    Close #imgNumber ' Fecha o arquivo de imagem após carregá-lo

    ' Inicia a impressão matricial
    Print #fileNumber, Chr(2) & "Relatório de Impressão Matricial"
    Print #fileNumber, imgBuffer ' Imprime o conteúdo da imagem
    Print #fileNumber, Chr(2) & "-------------------------------"
    Print #fileNumber, Chr(2) & "Detalhes do Relatório:"
    Print #fileNumber, Chr(2) & "-------------------------------"

    ' Exemplos de conteúdo dinâmico
    Print #fileNumber, "Nome: Bernardes"
    Print #fileNumber, "Título: Logo do Relatório"
    Print #fileNumber, "Departamento: Vendas"
    Print #fileNumber, "Código: 007"
    Print #fileNumber, "Mês: Outubro"

    ' Finaliza a impressão
    Print #fileNumber, Chr(2) & "Fim do Relatório"
    Close #fileNumber ' Fecha a conexão com a porta

    ' Retorna sucesso
    PrintMatricialReport = True
    Exit Function

ErrorHandler:
    ' Tratamento de erros
    MsgBox "Erro ao imprimir o relatório: " & Err.Description, vbCritical, "Erro"
    PrintMatricialReport = False
    Exit Function
End Function

👉 Não se esqueça de seguir André Bernardes no Linkedin. Clique aqui e me contate via What's App. 

Comente e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com


 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

Nenhum comentário:

Postar um comentário

diHITT - Notícias