Ir ao conteúdo

Posts recomendados

Postado

Olá,

 

Existe alguma função ou comando C++ que mande um arquivo .txt para porta da impressora padrão do windows?

Por exemplo, tenho um arquivo "texto.txt", eu quero que o programa receba o caminho e nome do arquivo e simplesmente imprima em uma impressora usb, é possível fazer isto?

 

Quem puder me ajudar agradeço muito.

 

Obrigado!

  • Curtir 1
Postado

O c++ não tem suporte nativo a impressoras, o que você poderia fazer é usar a função system do C++ para executar um programa que imprima um arquivo de texto via linha de comando por Ex: Notepad.

 

Depois do texto criado pelo c++, imprimir usando o comando system("notepad  /p arquivo txt") dentro do próprio programa c++.

 

 

 

 

  • Curtir 2
Postado

 Obrigado @Benjamin Breeg , era exatamente isso que eu tava buscando. Porém quando executo o comando de imprimir o arquivo .txt o programa faz o que tem que fazer, só que na hora de imprimir o windows informa que a impressora não está disponível, sendo que se eu abrir o arquivo e mandar imprimir por lá vai certinho. Sabe o que pode se?

  • Curtir 1
Postado

Cara aqui eu testei usando Windows 7 e deu certo. Da uma olhada nisso:

 

http://www.ehow.com.br/opções-linha-comando-bloco-notas-lista_7089/

 

O programinha que usei para teste é esse:

#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    ofstream file;
    file.open("impressao.txt");
    file<<"usando a impressora no C++";
    file.close();
    system("notepad /p impressao.txt");
}

 

  • Curtir 2
Postado

Este comando vai imprimir na impressora padrão, se você tiver mais de 1 impressora na lista de "Dispositivos e Impressoras" do seu Windows, e uma impressora que não está conectada ao seu computador estiver selecionada como impressora padrão, vai dar erro indicando que a impressora não está disponível.

 

Uma outra maneira seria usando o parâmetro /pt e indicando a impressora a ser usada.

 

Ex:

notepad /pt "texto.txt" "nome da impressora"

 

  • Curtir 1
Postado

Valeu @Benjamin Breeg , consegui. Eu estava tentando imprimir antes de fechar o arquivo, ai dava erro.

Só que estou gerando um qrcode no meu programa e estou gravando agora em um arquivo .html, não estou conseguindo imprimir novamente, eu até consigo fazer o meu programa abrir o html, mas não consigo mandar imprimir.

 

Meu código para abrir o html (funciona perfeitamente):

#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;

int main () {
  ofstream file;
    file.open("impressao.html");
    file<<"usando a impressora no C++";
    file.close();
    system("explorer impressao.html");

  
  return 0;
}

Código que estou usando para tentar imprimir (somente abre uma pasta do windows explorer):

#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;

int main () {
  ofstream file;
    file.open("impressao.html");
    file<<"usando a impressora no C++";
    file.close();
    system("explorer /p impressao.html");

  
  return 0;
}

Sabe me dizer outra maneira de imprimir um arquivo .html?

 

Obrigado mesmo pela ajuda.

  • Curtir 1
Postado

Acho que para fazer isso de forma mais eficiente ou não, o ideal mesmo seria aprender as funções da WinAPI para controlar diretamente os serviços de impressão do Windows.

 

Tentei fazer algo aqui usando ShellExecute, ate funciona mas ele abre a janelinha de configuração da impressora antes de imprimir, deve ter como tirar isso mas só estudando mesmo a parte da WinAPI que controla a impressão.

 

https://msdn.microsoft.com/en-us/library/ff686799(v=vs.85).aspx

 

#include <windows.h>
int main()
{
    LPCTSTR teste = "teste.html";
    ShellExecute(NULL, "print", teste, NULL, NULL, SW_SHOWNORMAL);
    system("PAUSE");
}

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...