Jump to content
Fórum Script Brasil
  • 0

Impressão De Vários Boletos


torresson
 Share

Question

Olá pessoal, gostaria de saber se alguém teria uma rotina ou pudesse me ajudar, pois necessito imprimir vários boletos bancários seqüênciais sem a necessitade de gerar cada um para imprimir. Alguém poderia me ajudar ou teria algum script que faz isso?

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Claro que vai ter que criar... o modo mais fácil nesse caso é criar uma fonte pros boletos (de onde vão vir os dados como valor, nosso numero...) e enviar tudo para um PDF só, assim depois fica mais fácil gerenciar a impressão...

Link to comment
Share on other sites

  • 0

Na verdade já tenho o script do boleto, o que me falta é apenas conseguir imprimir sequencialmente, ou seja, necessito imprimir em média 20 ou 30 boletos de uma vez. Hoje quando tenho que imprimir, estou tendo que pegar e gerar cada um e imprimir e isso dá um trabalho imenso.

Link to comment
Share on other sites

  • 0

Eu sei... você vai ter que colocar o script que gera o boleto dentro de um laço para gerar todos os boletos de uma vez, só que também vai ter que implementar um sistema que informe as informações a cada boleto, pois com certeza você não vai querer 20~30 boletos com os mesmos dados (ao menos o nosso número e o sacado serão diferentes...)

Link to comment
Share on other sites

  • 0

Legal isso eu já fiz, mas na tela ele gera todos e não vai direto para a impressora.... necessito que esse laço vá direto a impressora e não fique gerando na tela. Hoje ele gera na tela diretamente todos os boletos uns sobre os outros e não imprime direto. Você teria como me ajudar nesse sentido?

Link to comment
Share on other sites

  • 0

Ai tem duas considerações:

1 - Você vai ter que em primeiro lugar modificar o HTML do sistema de boleto para que a cada volta do laço dê uma quebra de página...

2 - A geração é feita em localhost ou em servidor externo? Pois o PHP por ser uma linguagem server-side tem deficiências em gerenciamento de hardware, e mesmo mandar coisas para impressão pode ser bem problemático com o PHP, existem as funções de impressão, mas elas só funcionam se a impressora estiver ligada no servidor, logo, só se a sua geração for em localhost...

Link to comment
Share on other sites

  • 0

Cara, você pode definir o boleto por IDs e criar uma session.

Faz a consulta no MySQL para gerar apenas o boleto com aquela ID.

(Logicamente, faz a verificação para ver se não era o último né)

No começo da página você pode colocar:

<?php
$id = $_SESSION['id'];
?>
No final da página você poderá colocar um:
<?php
$id++;
$_SESSION['id'] = $id;
?>
<script language="JavaScript">
window.print();
window.location.href = "geraboleto.php";
</script>

Isso considerando que sua página se chamará geraboleto.php .

Link to comment
Share on other sites

  • 0

Já trabalhei nessas condições, mas não usando as funções de impressão... mas tentar é de graça, só não alimente muitas esperanças, porque como eu disse, essa parte de impressão é bem precária (por motivos óbvios) no PHP...

Link to comment
Share on other sites

  • 0

Se eu utilizar a função window.print() o server vai gerar o boleto na tela e não na impressora, a não ser se eu tivesse o direcionamento do saída de tela para a impressora. já tentei colocar o window.print() e o sistema gerava vários boletos na tela sem parar e quando terminava ai eu conseguia imprimir somente o último.

To achando que realmente teria que utilizat a DLL de impressão, mas preciso verificar se consigo, pois o servidor funciona com PHP e Windows.

Link to comment
Share on other sites

  • 0

Você tem certeza de que não abre o diálogo de impressão?

Segundo a documentação de JavaScript no site http://msdn2.microsoft.com/en-us/library/ms536672.aspx a função funciona da seguinte maneira:

Syntax

window.print()

Return Value

No return value.

Remarks

Calling the print method has the same effect as choosing Print from the Microsoft Internet Explorer File menu. The print method activates the Print dialog box, prompting the user to change print settings. When the user clicks the OK button, the following sequence of events occurs:

1. The onbeforeprint event fires.

2. The document prints.

3. The onafterprint event fires.

The onbeforeprint and onafterprint events are particularly useful when not all the information on the page is visible at all times. Use the onbeforeprint to modify the document to make all the information on the page visible for printing. To return the document to its original state, use the onafterprint event.

Standards Information

There is no public standard that applies to this method.

Applies To

window

Ou seja, ele abre o diálogo para impressão, e assim que clicado em Ok, ele enviará os boletos para a impressora.

Logicamente, você precisará ficar dando Ok toda hora naquele diálogo.

E realmente, as funções de impressão do PHP seriam mais eficazes no seu caso, mas para isso a porta de impressão precisará estar mapeada no servidor.

Link to comment
Share on other sites

  • 0

Como disse anteriormente ela funciona sim, mas se colocar o OK toda hora fica muito trabalhoso. Como disse seria sim muito mais eficiente utilizar as funções de impressão do PHP.

Acho que essa então seria a única forma de fazer isso então.

Alguém de vocês teria então o PRINTER.DLL para o PHP 4.3.7 ? ou saberia onde posso encontrar? pois no site do PHP não achei.

Link to comment
Share on other sites

  • 0
Guest Ruan Carlos

Olá caro amigo assim, você poderia gerar em uma página html todos so boletos, cada um em uma div. Existe uma regra css que quebra a página.

page-break-after: always; = Quebra a página depois do elemento.

Supondo seu código ficaria assim...

<html>

<STYLE TYPE="text/css">

.folha {

page-break-after: always;

}

</STYLE>

<head>

</head>

<body>

<div class="folha">

teste1

</div>

<div class="folha">

teste2

</div>

</body>

</html>

iria imprimir teste1 em uma página e teste2 em outra

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...