Imprimir um arquivo através de outro computador por uma conexão remota

A ideia é que o computador 1 em sua casa, ao realizar uma conexão, consiga utilizar a impressora do computador 2 que está em seu trabalho. a partir dai, através de um programa do nosso trabalho, poderá imprimir os pedidos de sua casa, pois ao clicar em imprimir vai aparecer a impressora remota…

Tem como? Citei JAVA por ter mais contato, mas se souberem em outra linguagem, ou até web, pode passar que eu tento. Se não, eu tenho que ficar vendo os pedidos dele e imprimindo manualmente, dessa forma ele conseguiria conectar ao meu computador e imprimir, desde já agradeço!

Sim, é só você fazer 2 sistemas que troquem mensagens entre si.
O sistema instalado na empresa recebe os arquivos do sistema da sua casa e envia para a a impressora.

Acredito que seria mais ou menos assim: É um exemplo bem basicão.

  1. Conectar ao computador remoto: Você pode usar a classe Socket para se conectar ao computador remoto por sua conexão de rede e porta apropriada.
  2. Enviar o arquivo para o computador remoto: Você pode usar a classe OutputStream para enviar o conteúdo do arquivo a ser impresso para o computador remoto.
  3. Configurar a impressora no computador remoto: Você precisará configurar a impressora no computador remoto para imprimir o arquivo recebido.
  4. Enviar um comando de impressão para a impressora: Você pode usar a classe PrintWriter para enviar um comando de impressão para a impressora no computador remoto.
import java.io.*;
import java.net.*;

public class RemotePrinter {
    public static void main(String[] args) {
        String hostname = "hostname"; // substitua pelo nome do computador remoto
        int port = 1234; // substitua pela porta apropriada
        String filename = "file.pdf"; // substitua pelo nome do arquivo a ser impresso

        try (Socket socket = new Socket(hostname, port);
             OutputStream output = socket.getOutputStream();
             PrintWriter writer = new PrintWriter(output)) {

            // enviar o arquivo para o computador remoto
            File file = new File(filename);
            FileInputStream fileInput = new FileInputStream(file);
            byte[] buffer = new byte[1024];
            int bytesRead;
            while ((bytesRead = fileInput.read(buffer)) != -1) {
                output.write(buffer, 0, bytesRead);
            }

            // configurar a impressora no computador remoto
            writer.println("SET PRINTER " + "printer_name"); // substitua pelo nome da impressora

            // enviar um comando de impressão para a impressora
            writer.println("PRINT " + filename);

            writer.flush();
            System.out.println("Arquivo impresso com sucesso!");

        } catch (UnknownHostException ex) {
            System.err.println("Computador remoto não encontrado: " + ex.getMessage());
        } catch (IOException ex) {
            System.err.println("Erro de entrada/saída: " + ex.getMessage());
        }
    }
}

Substituir hostname , port , filename e printer_name pelos valores apropriados para o seu caso

Isso não vai funcionar.

Você só está escrevendo comandos do MSDOS em um OutputStream, ou seja, só está enviando uma String para o código cliente do computador remoto.

Tem que enviar o conteúdo do arquivo para o código cliente do computador remoto e esse código cliente tem que conectar com a impressora e enviar o arquivo.

Então, a ideia seria imprimir direto do programa, ele não gera um arquivo (que a gente salve no caso), ele já envia direto para a impressora:

foto

Dai ficaria a impressora no lugar desse do One Note, sei que tem como conectar pela mesma rede, mas queria em outra rede… Quem sabe se conectar pelo IP do computador não consegue compartilhar a impressora?

Cara, não inventa. Usa algum programa específico pra isso como TeamViewer ou mesmo a assistência remota do Windows. Impressora da problema localmente, imagina ficar mandando trabalhos para uma impressora remota onde você não tem ideia do que está acontecendo, pois está longe de onde vc está. É só parar para pensar um pouco que dá para notar que essa ideia é uma baita de uma furada. Expor uma impressora pra fora da intranet não parece ser uma ideia boa também.

Kkkk, eu já pensei em usar esses programa de compartilhar tela, mas dai eu poderia estar usando o PC aqui e acabar 2 mexendo, não ia dar
Mas enfim, vou continuar no manual mesmo… obrigado

Existem programas que simulam uma impressora e direcionam a impressão para um arquivo pdf. Não sei se resolve o problema, mas parece menos problemático do que fazer a impressão remotamente.