Ir ao conteúdo
  • Cadastre-se

C++ Comando C++ para imprimir arquivo txt na impressora


Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

 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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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