window.print() não está funcionando

29/05/2020

10

Bom dia à todos,

Sou novo no aqui no forum então se eu violar alguma regra peço perdão já com antecedência. Dei uma pesquisada no assunto e não achei nenhum tópico que estivesse acontecendo o mesmo problema que o meu, que é o seguinte:

Tenho um formulário HTTP de dados, onde o usuário preencherá todos que achar necessário, irá salvar esses dados em um banco e, após isso, pressionar Ctrl + P pra imprimir a tela em forma de relatório.

Isso atualmente funciona, onde eu uso css pra "transformar" o meu formulário de dados em um relatório. O meu problema seria o seguinte, eu queria por essa função de impressão automática logo após ele confirmar os dados, ou mesmo um botão "Imprimir" que abriria a tela padrão de impressão dos navegadores que abrem através desse comando (Ctrl + P).

Dei uma pesquisada e achei a função "window.print()" em javascript para fazer essa função, porém não consigo fazer esse comando funcionar de forma alguma. Eu tentei por ele em uma função no javascript chamada em um evento de um botão, em um link, ou mesmo no evento "onclick" dele mesmo. Ele chama o meu evento "onbeforeprint" que alimenta algumas informações que só são exibidas na forma de relatório, mas a janela de impressão não aparece de forma alguma. Segue minha última tentativa de implementar essa função:

            <div id="divConfirmar" class="center">
                <input type="button" class="bt" id="confirmar" value="Confirmar">
                <input type="button" class="bt" id="cancelar" value="Cancelar">                
                <input type="button" class="bt" id="impressao" onclick="window.print()" value="Imprimir">                
            </div>


O beforeprint:

window.onbeforeprint = (e) => {
  print();
};


Eu sou novato em programação Web, então peço perdão por qualquer eventual erro de iniciante que eu possa ter cometido. Agradeço a atenção.
Responder

Posts

30/05/2020

Giuliano

Bom dia à todos,

Sou novo no aqui no forum então se eu violar alguma regra peço perdão já com antecedência. Dei uma pesquisada no assunto e não achei nenhum tópico que estivesse acontecendo o mesmo problema que o meu, que é o seguinte:

Tenho um formulário HTTP de dados, onde o usuário preencherá todos que achar necessário, irá salvar esses dados em um banco e, após isso, pressionar Ctrl + P pra imprimir a tela em forma de relatório.

Isso atualmente funciona, onde eu uso css pra "transformar" o meu formulário de dados em um relatório. O meu problema seria o seguinte, eu queria por essa função de impressão automática logo após ele confirmar os dados, ou mesmo um botão "Imprimir" que abriria a tela padrão de impressão dos navegadores que abrem através desse comando (Ctrl + P).

Dei uma pesquisada e achei a função "window.print()" em javascript para fazer essa função, porém não consigo fazer esse comando funcionar de forma alguma. Eu tentei por ele em uma função no javascript chamada em um evento de um botão, em um link, ou mesmo no evento "onclick" dele mesmo. Ele chama o meu evento "onbeforeprint" que alimenta algumas informações que só são exibidas na forma de relatório, mas a janela de impressão não aparece de forma alguma. Segue minha última tentativa de implementar essa função:

            <div id="divConfirmar" class="center">
                <input type="button" class="bt" id="confirmar" value="Confirmar">
                <input type="button" class="bt" id="cancelar" value="Cancelar">                
                <input type="button" class="bt" id="impressao" onclick="window.print()" value="Imprimir">                
            </div>


O beforeprint:

window.onbeforeprint = (e) => {
  print();
};


Eu sou novato em programação Web, então peço perdão por qualquer eventual erro de iniciante que eu possa ter cometido. Agradeço a atenção.


Bom dia, testei apenas a parte dos botões e em meu navegador está funcionando usando a função window.print() dentro do onclick.

Algumas coisas que pode estar acontecendo, é algum programa estar bloqueando o JS ou algo do gênero. Abra seu programa no navegador, vai em inspecionar, e abre o console, veja se aparece algum erro ao clicar no botão de imprimir.

Tente rodar em um navegador diferente, para ver se funciona.

E por fim, outra solução, você ao receber os dados do usuário, pode atribuir do código html a uma variável, usando .write do JS. E ao clicar no botão, ele pega as informações da variável para imprimir.
Responder

16/06/2020

Rafael

Bom dia à todos,

Sou novo no aqui no forum então se eu violar alguma regra peço perdão já com antecedência. Dei uma pesquisada no assunto e não achei nenhum tópico que estivesse acontecendo o mesmo problema que o meu, que é o seguinte:

Tenho um formulário HTTP de dados, onde o usuário preencherá todos que achar necessário, irá salvar esses dados em um banco e, após isso, pressionar Ctrl + P pra imprimir a tela em forma de relatório.

Isso atualmente funciona, onde eu uso css pra "transformar" o meu formulário de dados em um relatório. O meu problema seria o seguinte, eu queria por essa função de impressão automática logo após ele confirmar os dados, ou mesmo um botão "Imprimir" que abriria a tela padrão de impressão dos navegadores que abrem através desse comando (Ctrl + P).

Dei uma pesquisada e achei a função "window.print()" em javascript para fazer essa função, porém não consigo fazer esse comando funcionar de forma alguma. Eu tentei por ele em uma função no javascript chamada em um evento de um botão, em um link, ou mesmo no evento "onclick" dele mesmo. Ele chama o meu evento "onbeforeprint" que alimenta algumas informações que só são exibidas na forma de relatório, mas a janela de impressão não aparece de forma alguma. Segue minha última tentativa de implementar essa função:

            <div id="divConfirmar" class="center">
                <input type="button" class="bt" id="confirmar" value="Confirmar">
                <input type="button" class="bt" id="cancelar" value="Cancelar">                
                <input type="button" class="bt" id="impressao" onclick="window.print()" value="Imprimir">                
            </div>


O beforeprint:

window.onbeforeprint = (e) => {
  print();
};


Eu sou novato em programação Web, então peço perdão por qualquer eventual erro de iniciante que eu possa ter cometido. Agradeço a atenção.


Bom dia, testei apenas a parte dos botões e em meu navegador está funcionando usando a função window.print() dentro do onclick.

Algumas coisas que pode estar acontecendo, é algum programa estar bloqueando o JS ou algo do gênero. Abra seu programa no navegador, vai em inspecionar, e abre o console, veja se aparece algum erro ao clicar no botão de imprimir.

Tente rodar em um navegador diferente, para ver se funciona.

E por fim, outra solução, você ao receber os dados do usuário, pode atribuir do código html a uma variável, usando .write do JS. E ao clicar no botão, ele pega as informações da variável para imprimir.


Bom dia, Giuliano.

Agradeço a resposta e peço desculpas pela demora. Resolvi o problema, acontece que eu não podia criar uma função chamada print(). Deve ser a nativa do próprio javascript para impressão, pois foi só mudar o nome para "imprimir()" que passou a funcionar.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar