[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Entrada por puerto paralelo en /dev/parport0.





El sáb, 1 de mar de 2025, 20:07, Carlos Villiere <cvilliere2017@gmail.com> escribió:
Hola Jose!!
Haber si entiendo la cuestión, desde una computadora envías un archivo y quieres que la otra (la que está en lugar de la impresora) lo procese o haga cualquier otra cosa como ser almacenarlo en una carpeta. Si es así, lo que te sugiero es que montes un BBS entre ambas, siendo la computadora el servidor y la que está en lugar de la impresora el cliente, y desde esta bajas en archivo de tu interés sea texto o un ejecutable o cualquier otro.
Existos
Saludos

El sáb, 1 mar 2025 a las 5:42, Camaleón (<noelamac@gmail.com>) escribió:
El 2025-02-28 a las 18:58 +0100, Jose Ab bA escribió:

(Corrijo el top-posting y el formato de cita...)

¿Qué cliente de correo usas? ;-(

> El 2025-02-27 a las 11:04 +0100, Jose Ab bA escribió:
>
>> > Buenos dias amig@s!
>> >
>> > A ver, que siempre acudo a la lista con algo raro.
>> >
>> > Tengo una maquina (el servidor) que por el puerto paralelo me envia
>> > listados a una impresora.
>> >
>> > Quiero reemplazar la impresora por una CPU (el cliente) y que esta reciba
>> > la informacion como si fuese, o simulase ser, la impresora.
>>
>> (...)
>
>> Hum... el objetivo no me queda claro :-?
>
>> Una cosa es conectar dos equipos punto a punto a través del puerto
>> paralelo y otra cosa es qué hacer (o cómo gestionar) con los datos (la
>> información) que se recibe.
>
>> ¿Quieres guardarlos en bruto?
>> ¿Imprimirlos?
>> ¿Generar un archivo (raw, PDF, PS...)?
>
>> En princpio, y para lo que «intuyo» que buscas, me viene a la cabeza
>> PLIP y CUPS pero mejor si aclaras o amplías un poco más lo que quieres
>> hacer von ese equipo que reemplaza a la impresora.
>
> Buenas tardes Camelon y Cia!
>>
> La idea basica es:
>>
> 1. Quitar una impresora que esta conectada a una cpu mediante su
> puerto y cablle paralelo/Centronics... Que es de agujas y de cuando
> mariacastaña!
> 2. Poner en su lugar un equipo (lo que llamo cpu o cliente).
> 3. Recopilar la informacion que le entre al equipo por el puerto
> fisico paralelo (lo que serian los listados que deberia imprimir la
> impresora).
> 4. Transformar esos listados (datos) en archivos pdfs (a ser posible),
> para almacenarlos.
>
> Expresado de otra manera:

> Convertir la impresora fisica en una impresora digital.
> Que almacene los listados y que se puedan consultar de manera digital,
> reimprimir, etc..

> Si los datos solo se pueden recopilar en modo raw, pues tendria que
> transformalos.
> Pero si directamente puedo generar pdf's, o al menos txt's, mucho,
> pero que mucho mejor!

Pues sigo sin ver para qué quieres comunicar / conectar dos ordenadores
con un cable de impresora :-?

A ver, en el equipo que quieres usar para reemplazar a la impresora,
instala CUPS, un script o un controlador de impresora avanzado que te
permita almacenar en archivo en lugar de madarlo a la impresora física y
lo que sea que quieras imprimir, que lo guarde como archivo... PS, PDF,
texto plano, formato en bruto (raw). Lo que más te guste.

Hoy en día no le veo mayor complejidad a esa configiración que suele
venir integrada en la mayoría de aplicaciones (Firefox, LibreOffice, etc.).

Saludos,

--
Camaleón
Hola te copio una respuesta de una IA, deepseek, no lo chequee porque estoy sin pc:
Tu proyecto consiste en convertir una impresora de agujas conectada a través de un puerto paralelo en una impresora digital que genere archivos PDF o TXT a partir de los datos que recibe. Aquí te dejo una guía paso a paso para lograrlo:

---

### **1. Eliminar la impresora física y conectar el equipo cliente**
- Desconecta la impresora de agujas del puerto paralelo.
- Conecta el equipo cliente (que corre Debian) al mismo puerto paralelo. Asegúrate de que el puerto paralelo esté correctamente configurado y reconocido por el sistema.

---

### **2. Recopilar los datos del puerto paralelo**
El puerto paralelo en Linux se maneja a través del dispositivo `/dev/parport0` o `/dev/lp0`. Para leer los datos que llegan al puerto, puedes usar herramientas como `ppdev` o `parport`.

#### **Pasos:**
1. **Instalar herramientas necesarias**:
   ```bash
   sudo apt update
   sudo apt install ppautils
   ```

2. **Leer datos del puerto paralelo**:
   Puedes usar un script en Python o un programa en C para leer los datos. Aquí te dejo un ejemplo en Python usando la librería `pyparallel`:
   ```bash
   sudo apt install python3-pip
   pip3 install pyparallel
   ```

   Ejemplo de código en Python:
   ```python
   import parallel

   # Configura el puerto paralelo
   p = parallel.Parallel()

   # Lee datos del puerto
   while True:
       data = "" # Lee los datos del puerto
       if data:
           print(f"Datos recibidos: {data}")
           # Aquí puedes procesar los datos para convertirlos en PDF o TXT
   ```

   Si no encuentras la librería `pyparallel`, puedes usar acceso directo al dispositivo `/dev/parport0` con permisos de superusuario.

---

### **3. Transformar los datos en archivos PDF o TXT**
Los datos que recibes del puerto paralelo pueden estar en formato RAW (bytes sin procesar). Dependiendo del formato, puedes convertirlos en texto plano o directamente en PDF.

#### **Opción 1: Convertir a TXT**
Si los datos son texto plano, puedes escribirlos directamente en un archivo `.txt`.

Ejemplo en Python:
```python
with open("listado.txt", "a") as f:
    f.write(data.decode("utf-8")) # Decodifica los bytes a texto
```

#### **Opción 2: Convertir a PDF**
Para generar archivos PDF, puedes usar librerías como `reportlab` o `fpdf`.

Instala `reportlab`:
```bash
pip3 install reportlab
```

Ejemplo de código para generar un PDF:
```python
from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas

def create_pdf(data, filename="listado.pdf"):
    c = canvas.Canvas(filename, pagesize=A4)
    text = c.beginText(40, 800) # Posición inicial del texto
    text.setFont("Helvetica", 12)
    
    # Añade los datos al PDF
    for line in data.decode("utf-8").split("\n"):
        text.textLine(line)
    
    c.drawText(text)
    c.save()

# Ejemplo de uso
create_pdf(data)
```

---

### **4. Automatizar el proceso**
Puedes crear un servicio en Debian para que el script se ejecute automáticamente al iniciar el sistema.

1. Crea un archivo de servicio en `/etc/systemd/system/impresora-digital.service`:
   ```ini
   [Unit]
   Description=Servicio para convertir datos de puerto paralelo a PDF
   After=network.target

   [Service]
   ExecStart=/usr/bin/python3 /ruta/al/script.py
   Restart=always
   User=root

   [Install]
   WantedBy=multi-user.target
   ```

2. Habilita y arranca el servicio:
   ```bash
   sudo systemctl enable impresora-digital.service
   sudo systemctl start impresora-digital.service
   ```

---

### **5. Almacenar y consultar los archivos**
- Guarda los archivos PDF o TXT en una carpeta específica.
- Puedes usar un servidor web (como Apache o Nginx) para acceder a los archivos desde otros dispositivos en la red.

Instala Apache:
```bash
sudo apt install apache2
```

Coloca los archivos en `/var/www/html` para que estén accesibles.

---

### **Consideraciones adicionales**
- **Formato de los datos**: Si los datos no son texto plano, necesitarás decodificarlos. Por ejemplo, si son comandos de impresora (PCL, PostScript), necesitarás una librería específica para interpretarlos.
- **Pruebas**: Asegúrate de probar el sistema con datos reales para verificar que todo funcione correctamente.

---

Con esto, habrás convertido tu impresora de agujas en una impresora digital que genera archivos PDF o TXT. ¡Buena suerte con tu proyecto!


Reply to: